quickoauth
← Guides

Claude vs ChatGPT vs Grok: MCP connector differences

The exact configuration differences between the three MCP clients: callback URLs, DCR vs CIMD, where the connector UI lives, plan requirements, and what each one probes, so one server can satisfy all three.

multi-client · updated 2026-08-22


All three clients speak the same core protocol: remote MCP over Streamable HTTP, OAuth 2.1 with PKCE, RFC 9728 protected-resource discovery, so a correctly built server works with all of them. But the details differ enough to break a connection if you hardcode assumptions. Here’s what differs, and what to build so one server handles all three.

The differences at a glance

Claude ChatGPT Grok
Where connectors live Customize → Connectors (moved from Settings) Settings → Connectors (+ Developer mode for custom) grok.com/connectors
Plan needed for custom MCP Pro/Max (and Team/Enterprise) Plus/Pro/Business with Developer mode enabled Paid tier
Client registration DCR (RFC 7591), registers itself CIMD preferred, DCR fallback DCR
OAuth callback URL https://claude.ai/api/mcp/auth_callback and https://claude.com/api/mcp/auth_callback https://chatgpt.com/connector_platform_oauth_redirect https://grok.com/connectors area (do not hardcode); accept what it registers
Manual client ID/secret Optional (Advanced settings); blank for DCR Via developer connector form Via connector form
Transport Streamable HTTP (SSE-framed) Streamable HTTP Streamable HTTP

Claude

Connectors moved to Customize → Connectors (the old Settings page now just redirects). Add → Add custom connector takes a name and your MCP URL; OAuth client ID/secret are optional under Advanced settings and should be left blank so Claude self-registers via DCR. Full screenshot walkthrough: connect a custom connector in Claude.

Claude registers two callback hosts, both claude.ai and claude.com variants of /api/mcp/auth_callback. Allowlist both.

ChatGPT

ChatGPT prefers CIMD (Client ID Metadata Documents): instead of registering a client and getting an ID back, it presents a URL that is its client identity, which your authorization server fetches. If your server doesn’t support CIMD, ChatGPT falls back to standard DCR. Its callback is https://chatgpt.com/connector_platform_oauth_redirect.

Custom MCP connectors in ChatGPT require Developer mode to be enabled in settings; without it, only the pre-built directory connectors appear. This is the most common “why can’t I add my server” cause on ChatGPT.

For CIMD support on your authorization server, the providers we tested expose a flag: Auth0 (client_id_metadata_document_supported) and Stytch (Enable CIMD toggle) both have it. See the Auth0 and Stytch guides.

Grok

Grok connectors live at grok.com/connectors (shown below).

Grok connectors landing page

The load-bearing rule for Grok: do not hardcode its callback URL. Grok’s redirect URI has changed and may differ by surface, so use the allow-what-registers pattern: during DCR, store exactly the redirect_uris the client sends and validate against those at /authorize, rather than maintaining a hardcoded per-client callback list. That single pattern also future-proofs you against Claude and ChatGPT changing their callbacks.

Make one server work for all three

Build your /register (DCR) endpoint to accept and store whatever redirect URIs the client presents, validating their hosts against an allowlist (claude.ai, claude.com, chatgpt.com, openai.com, grok.com, x.ai), then at /authorize validate the requested redirect_uri exactly against what that client registered. Don’t hardcode any single callback. Support CIMD if your provider offers it (ChatGPT), fall back to DCR (all three). Everything else is shared protocol.

Debug first-connection differences with logs

When one client connects and another doesn’t, the fastest diagnosis is to log every request during the first connection of each client: the logs are the authoritative record of what that specific client actually does (which discovery documents it fetches, whether it registers or presents a CIMD URL, what redirect URI it sends). Providers and clients change behavior over time; your logs are the only source that’s never out of date.

Next steps

  1. Build the allow-what-registers DCR endpoint once, then verify per client with the connector checklist: four curls, three times.
  2. Wire all three against one server with one server, three connectors.
  3. Add the client-specific connector with the Claude walkthrough, and grab the ready-made ChatGPT and Grok prompts from the library.

If a specific client fails where others succeed, debugging connector failures isolates the diverging step.

Metadata

Commit
c6eb99c
Browser
Current Time
Dimensions
Source
guides
Last Updated
2026-08-22