Add OAuth to a FastMCP server
Point an agent at your FastMCP codebase and have it wire bearer-token auth plus the discovery endpoints MCP clients require.
Claude, ChatGPT, and Grok each probe your MCP server before a connector ever shows a login screen — protected-resource metadata, RFC 8414 discovery, dynamic client registration or CIMD, PKCE, and a DNS pre-flight that fails silently. This site documents the flow from a server that passed, plus the per-client quirks, as guides you can read and prompts you can paste into your agent.
Every guide and prompt here is also served over MCP. Add the endpoint as a custom connector in claude.ai (Settings → Connectors), ChatGPT (developer mode), or Grok (grok.com/connectors) — no auth required — and your agent can search guides and pull prompts directly.
https://quickoauth.com/mcptools: search_guides · get_guide · list_prompts · get_prompt
Want to watch the OAuth flow the guides describe, running for real? Addhttps://quickoauth.com/mcp-auth instead — same tools behind a live discovery + DCR + PKCE flow with a one-click demo login.
Point an agent at your FastMCP codebase and have it wire bearer-token auth plus the discovery endpoints MCP clients require.
Build the thin proxy that owns discovery and DCR on your domain while Auth0 handles login and tokens — accepting Claude, ChatGPT, and Grok as clients.
A systematic run of the seven checks that isolate where an MCP OAuth connection breaks.
The same OAuth 2.1 server can pass Claude, ChatGPT, and Grok connector validation — if your discovery, registration, and redirect handling account for how each client differs.
A verified checklist of every discovery request claude.ai makes when you add a remote MCP server with OAuth, and what each response must contain.
The architecture that got a self-hosted MCP server through claude.ai connector validation: Auth0 for login and tokens, a small proxy for the metadata and DCR endpoints Auth0 does not serve the way MCP clients expect.
Where MCP OAuth connections actually break, ordered by how often they happen, with the test that isolates each one.
No Auth0, no SaaS identity provider — a self-hosted Hydra instance that issues connector tokens, with the DCR response quirk that fails Claude's schema validation and the tiny proxy that fixes it.