MCP Authentication
The Perspective MCP server supports two authentication mechanisms depending on how you connect.
HTTP endpoint — OAuth2 Bearer token
When you connect via the remote HTTP endpoint (POST https://api.perspective.co/mcp), every request must include a valid OAuth2 Bearer token:
Authorization: Bearer <token>
The server validates the token against the Auth0 JWKS endpoint. It checks:
- The token is signed with RS256 and issued by the configured Auth0 tenant.
- The token audience matches the Perspective API.
- The token's
https://perspective.co/user_metadataclaim contains a validcompanyIdandsubscriptionId.
If validation fails the server responds with 401 Unauthorized and a WWW-Authenticate: Bearer header pointing to the OAuth protected-resource metadata document.
OAuth discovery endpoints
The server exposes standard OAuth2 discovery endpoints that MCP clients use to initiate the authorization flow automatically:
GET /.well-known/oauth-protected-resourceGET /.well-known/oauth-authorization-serverGET /oauth/authorizePOST /oauth/register
MCP clients that support dynamic client registration (such as Claude Code) can discover and complete the OAuth flow without manual configuration. For full OAuth documentation see OAuth Overview.
Desktop DXT — API key
When you use the DXT desktop package, Claude Desktop launches the dist/stdio.js binary with your PERSPECTIVE_API_KEY set as an environment variable. The binary forwards this key to the hosted server in the x-perspective-api-key header on every proxied request.
You never handle OAuth manually in the DXT flow — the binary and server take care of authentication once you supply the key.
Getting an API key
See API Keys for how to create and manage API keys in the Perspective app. Only workspace Admins can create API keys.
Summary
| Connection method | Credential type | Where it goes |
|---|---|---|
| Remote HTTP | OAuth2 Bearer token | Authorization: Bearer <token> header |
| Desktop DXT (stdio) | API key (PERSPECTIVE_API_KEY) | x-perspective-api-key header (set by DXT binary) |