MCP
Authentication
An MCP client inherits exactly the identity it authenticates as — and can only do what that identity can. There are two flows, by client type.
Connector (OAuth)
Claude.ai, Claude Desktop, and ChatGPT authorize over OAuth — add the server URL and approve the connection in your browser. There's no key to manage. The connection inherits the role and company of whoever authorized it.
API key
Claude Code, Cursor, VS Code, Codex, and any headless or CI client send a scoped key as a bearer token: Authorization: Bearer <api-key>. Create one in Settings → API Keys; the key carries its own scopes. stdio-only clients bridge through mcp-remote.
Permissions
Either way, the assistant can only do what that identity can — a connector inherits your role and company, a key carries the scopes you granted it. Use a separate key per client, so revoking one doesn't break the rest.
Errors
401403