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 Desktop, Cursor, and mcp-remote. The two types must not be used interchangeably.

Generating an MCP Access Token

Via the Prizm UI

1

Open Access Tokens

Navigate to Settings → Organization → Access Tokens and click Add token.
2

Configure the token

Set:
  • Key alias — a descriptive name, for example claude-desktop-mcp
  • Generated for — select MCP
  • Expiry — choose an appropriate expiration date
  • Tools — select at least one MCP tool (required for MCP tokens)
3

Copy the token

After creating the token, use the copy action from the table. For MCP tokens, copy returns the full mcpServers JSON config — not a bare JWT.

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

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 Tokens UI or API

Client Integration

1

Copy the mcpServers config

From Settings → Organization → Access Tokens, 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

Restart your MCP client and confirm that only the tools included in the token’s scope appear in the tools list.

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.