All posts
MCP education··5 min read

Make your SaaS usable from Claude, Cursor and ChatGPT — with one MCP URL

One Streamable HTTP MCP endpoint with OAuth discovery serves Claude, Cursor and ChatGPT alike — only the last-mile packaging differs. This is the practical per-client playbook: what your customer clicks in each client, the one-click Cursor deep link format, and the CDN/CORS traps that block AI-client traffic.

⌘
Command+K team
Platform engineering

Your customers spend their day inside AI tools now. The question isn't whether they'll ask an assistant to use your product — it's whether your product answers. Here's the practical, per-client playbook for making one MCP endpoint usable from all three major clients.

Works with Claude Cursor ChatGPT VS Code— verified with real clients

One endpoint, three doors

Everything below is the same server: a Streamable HTTP MCP endpoint with OAuth 2.1 discovery, per-customer auth, and typed tools. Only the last-mile packaging differs.

Claude (web & desktop)

  1. Customer: Settings → Connectors → Add custom connector → paste your MCP URL.
  2. Claude probes the endpoint, reads OAuth discovery metadata, registers itself (DCR), and opens your hosted connect screen.
  3. Customer authenticates with their own account; tools appear in the composer.

Watch out for: your CDN's AI-bot rules (Claude's traffic is honestly labelled and gets blocked by default configs) and CORS preflight headers — details in our real-client debugging writeup.

Cursor

  • One click: a cursor://anysphere.cursor-deeplink/mcp/install link with the base64-encoded server config — put it on your connect page's success screen so the token is already embedded.
  • Config file: an entry in ~/.cursor/mcp.json for teams that manage dotfiles.
  • Agent mode then lists your tools next to Cursor's own.

ChatGPT

  1. Customer enables connector development (Settings → Connectors → developer mode).
  2. Create connector → paste the MCP URL → choose OAuth.
  3. ChatGPT walks the same discovery + hosted connect flow and imports the tools.

Everyone else

VS Code (.vscode/mcp.json), MCP Inspector, and custom agents all take the raw URL + token. Keep that fallback visible — the long tail of MCP clients is growing monthly.

The distribution kit, generated

Command+K generates all of this per deployment: the Claude connector URL, the Cursor deep link and config, VS Code config, and a hosted connect page your customers land on. Publish yours →

Wiring up all three clients is the mechanics. Getting found in the first place — directory listings, a dedicated page, the announcement loop — is the other half of the job.

FAQ

How do customers add my product to Claude?
Give them one MCP URL. In Claude (web or desktop): Settings → Connectors → Add custom connector → paste the URL. Claude discovers the OAuth flow automatically, opens your hosted connect screen, and imports your tools. Verified with Claude's production clients.
How do customers add my product to Cursor?
Two ways: a one-click cursor:// deep link (with the server config embedded) from your connect page, or an entry in ~/.cursor/mcp.json with your MCP URL. Both are generated for you by the Command+K dashboard.
How do customers add my product to ChatGPT?
ChatGPT supports custom MCP connectors (developer mode / connectors settings): create a connector, paste the MCP URL, choose OAuth — ChatGPT opens the hosted connect screen and imports the tools, verified with the real client.
Do I need to build something different per client?
No — that's the point of MCP. One spec-compliant Streamable HTTP endpoint with OAuth discovery serves Claude, Cursor, ChatGPT and VS Code alike. The per-client differences (deep links, config files, connector settings) are packaging, not server code.

Keep reading

Go deeper