Claude
Claude supports remote MCP connectors with OAuth. JamRelay supports the registration paths Claude currently documents: Dynamic Client Registration (DCR) and pre-configured client credentials.
Claude.ai, Claude Desktop, mobile, and Cowork
For hosted Claude surfaces, the simplest JamRelay setup is DCR:
PUBLIC_BASE_URL=https://mcp.example.com
MCP_OAUTH_OWNER_SECRET=<STRONG_OWNER_SECRET>
MCP_OAUTH_DCR_ENABLED=trueAdd the connector URL:
https://mcp.example.com/mcpClaude discovers JamRelay's protected-resource metadata, authorization-server metadata, and registration endpoint automatically.
Anthropic documents this hosted callback:
https://claude.ai/api/mcp/auth_callbackWith DCR, Claude registers its callback with JamRelay automatically. If you instead use Claude's Advanced settings with a static Client ID and Client Secret, add that callback to the corresponding JamRelay static client.
Claude Code
Claude Code supports automatic OAuth discovery for remote HTTP MCP servers. Add the server, then authenticate from /mcp:
claude mcp add --transport http jamrelay https://mcp.example.com/mcpClaude Code normally uses a local loopback callback on an available port. DCR lets it register that callback automatically, so you do not need to predict the port.
If you need a fixed pre-registered redirect, Claude Code also supports --callback-port together with a static client ID.
Network requirement
Hosted Claude connectors are reached from Anthropic's cloud infrastructure, not directly from the local Claude Desktop process. The remote JamRelay endpoint therefore needs to be publicly reachable over HTTPS.
Verify
What is currently playing on Spotify?Then:
List my Spotify playback devices.