Skip to main content

Overview

Prizm issues two distinct token types for programmatic access: API access tokens for REST integrations, and MCP access tokens for MCP clients such as Claude, Cursor, and mcp-remote. The two types must not be used interchangeably. MCP access tokens have two authentication types. Choose one when you create the token:

Generating an MCP Access Token

Via the Prizm UI

1

Open Access Tokens

Navigate to Organization → Platform → Token and click the + icon in the Access Token toolbar. Use the ALL, API, and MCP chips to filter the list.
Access Token list with ALL, API and MCP filter chips and columns for key alias, generated for, token type, status, expiry, creator and creation time

Organization → Platform → Token lists your API and MCP access tokens

2

Configure the token

Set:
  • Key Alias — a descriptive name, for example claude-desktop-mcp
  • Generated For — select MCP (the dialog defaults to API)
  • Auth Type — select OAuth (recommended) or JWT
  • Expires On — JWT only. Choose an appropriate expiration date. OAuth clients don’t use an expiry date, because access is governed by OAuth sign-in and refresh
  • Purpose — a short description of what the token is for
  • Available Tools — select at least one MCP tool (required for MCP tokens)
Click Create OAuth Client for an OAuth client, or Create Token for a JWT.
Add Access Token dialog with Key Alias, Generated For, Expires On, Purpose, and Cancel and Create Token buttons

The Add Access Token dialog

3

Copy the token

After creating the token, use the copy action from the table. For an OAuth client, copy returns the MCP URL and the Client ID:
For a JWT, copy returns the full mcpServers JSON config, not a bare JWT.

Change a token’s tool access

The person who creates an MCP token decides which tools it can use. You can update the token’s tool access after it has been generated, so you no longer need to create a new token to widen or narrow its scope. Prizm enforces the updated scope on the next request (see Tool scope enforcement).

Via the API

Use a normal logged-in session or API bearer token for these calls — not the MCP token itself. Step 1 — List available MCP tools (for scoping)
Example response:
Use the name values when populating the token’s tools array. Step 2 — Create the MCP access token
Request body:
The response data.token contains the mcpServers config ready to paste into your client:
Retrieve tokens later

Token Verification

This section applies to JWT tokens. OAuth clients don’t issue a long-lived token that you paste into a config. When generated_for = MCP, the copied value is not a bare JWT — it is the mcpServers config with the JWT embedded in the args string:
Extract the JWT from the args string — it is the value that follows Authorization: Basic. Decode the JWT locally:
Or paste it into jwt.io (decode only — never share secrets in external tools).

Expected JWT claims

If token_type is api_access_token, this is an API token — it will not work as an MCP client credential.

Verification checklist

Before connecting a client, confirm:
  • generated_for is MCP
  • Copied payload contains mcpServers.prizm-ai
  • JWT token_type is mcp_authorization
  • JWT tools matches the tools you selected
  • JWT is not expired (exp is in the future)
  • Token row shows is_active = true in the Access Token list (the Status toggle is on) or in the API

Client Integration

Use this for Claude custom connectors and Claude.ai. First create an OAuth client as described above, and copy the mcp_url and client_id. There is no client secret.
1

Add a custom connector in Claude

In Claude, add a custom MCP connector (a remote MCP server).
2

Enter the Prizm values

Set the server URL to the mcp_url value, which must end with /mcp. Set the OAuth Client ID to the client_id value. Leave the client secret empty.
3

Sign in

Complete the browser sign-in when Claude prompts you (AuthKit).
4

Confirm the connection

Confirm the connector connects and that only the tools you selected appear.

Connect Claude Desktop with a JWT

Use this when you need the Claude Desktop mcpServers setup with mcp-remote.
1

Copy the mcpServers config

From Organization → Platform → Token, copy the MCP token. This returns the full mcpServers JSON.
2

Paste into your MCP client config

For Claude Desktop, open claude_desktop_config.json and paste the mcpServers block. The config already embeds the auth header and points mcp-remote at the Prizm MCP gateway.Prizm AI MCP server path: {{baseUrl}}api/v1/ai_agent/mcp/prizm-ai
3

Restart the client

Fully restart your MCP client and confirm that only the tools included in the token’s scope appear in the tools list.
Treat a JWT like a password. Anyone who has it can call the tools you allowed until it expires or is revoked.

Tool scope enforcement

The Prizm MCP server enforces tool scope at request time using MCPAuthenticationMiddleware:
  • The JWT is verified on every request
  • If the JWT has a tools claim, only those tools are callable or listed
  • Tokens without a tools claim are treated as unrestricted
Calling a tool outside the granted scope returns:

Available MCP Tools

Prizm AI MCP tools (user-facing, token-scoped)

These tools are exposed via Prizm AI MCP and are selectable when creating an MCP access token (GET /api/v1/ai_agent/mcp/tools). The live list may grow — always fetch from the API for the current set.

Metrics MCP tools (service / internal)

A separate FastMCP server in prizm-metrics used by platform pipelines at {{baseUrl}}api/v1/metrics/mcp. These are write-oriented service tools and are not part of a user’s MCP access token scope.

Quick Verification Flow

  1. GET /api/v1/ai_agent/mcp/tools → pick the tool names you need
  2. POST /api/v1/auth/access_token/ with generated_for: "MCP" and your selected tools
  3. Copy data.token.mcpServers from the response
  4. Decode the JWT — confirm token_type = mcp_authorization and tools matches
  5. Paste mcpServers into your MCP client config and restart
  6. Confirm only scoped tools appear in the client
  7. Call an allowed tool → success
  8. Call a disallowed tool → Tool '...' is not permitted for this access token.