Part3 Developers

MCP Authentication

Browser-based OAuth — sign in as your Part3 user, no secrets to manage.

The MCP server has a single authentication path: browser-based OAuth that signs you in as your Part3 user. There are no API keys, no client secrets, and no headers to paste. Any signed-in Part3 user can authorize their MCP client through a consent flow.

Access gate — Prime only

MCP access is currently limited to:

  • Project Primes — users who are Prime on at least one project, and
  • Super-duper-admins (SDAs).

Anyone else — org admins, non-Prime contacts, viewers — will see an explicit access-denied page on the consent screen and the OAuth flow will not complete. There is no API-key fallback.

Flow

Run the one-liner for your client (see setup for Claude Code, Claude Desktop, or Cursor). No header, no secret.

Your MCP client opens a browser to /oauth/login on the MCP server. Sign in with your Part3 email and password (Firebase auth).

/oauth/consent lists the access being requested and the account you're signing in as. Approve it to continue. If you're not a Prime or SDA, this page returns access-denied instead.

The MCP server mints an opaque access + refresh token pair and hands them to your client. Subsequent MCP calls auto-refresh the access token in the background — you only re-authenticate every ~90 days.

Token lifecycle

  • Access tokens last 24 hours. Opaque (not a JWT) — looked up by hash on every MCP request.
  • Refresh tokens last 90 days and rotate on every use (RFC 6749 BCP).
  • Reuse detection: if your client ever presents a refresh token that has already been rotated, the entire token family is revoked (OAuth 2.1 §6.1). This protects against stolen-token replay. If it happens to you, remove and re-add the MCP server to reauthenticate.

Internally, the MCP server exchanges your access token for a short-lived proxy-style JWT when calling the Part3 API. You never see this — it's an implementation detail of how MCP forwards tool calls downstream as your user.

How it works

MCP Client                MCP Server                   Part3 API
    |                         |                            |
    | (initial connect)       |                            |
    | Authorization request   |                            |
    |------------------------>|                            |
    |                         |                            |
    |   browser opens         |                            |
    |   /oauth/login          |                            |
    |   (Firebase sign-in)    |                            |
    |   /oauth/consent        |                            |
    |   (Prime gate check)    |                            |
    |                         |                            |
    | access + refresh token  |                            |
    |<------------------------|                            |
    |                         |                            |
    | MCP request             |                            |
    | Bearer access_token     |                            |
    |------------------------>|                            |
    |                         | proxy JWT                  |
    |                         | as web-app user            |
    |                         |--------------------------->|
    |                         |                            |
    |                         |       tool result          |
    |                         |<---------------------------|
    | tool result             |                            |
    |<------------------------|                            |

What tools you'll see

The MCP server enforces your normal Part3 permissions on every call — your role on each org and project decides what you can read or write, identical to the web app. There's no separate MCP permission bit; if you can see a project in the web app, you can use the project tools against it through MCP.

On this page