Report · 29 September 2026
Approved for Claude isn’t ready for ChatGPT
We checked every remote server in Claude’s connector directory, all 3,286 of them already approved by Anthropic, against the reasons ChatGPT has rejected submissions. Of the 3,185 that answered, 22% would hit at least one known blocker. Count ChatGPT’s support-page rule and it’s 76%.
What we found
| Servers | Finding |
|---|---|
| 16% 505 of 3,185 | advertise Encrypted ClientHello in DNS TLS-inspecting review proxies reset these connections with nothing in the server’s logs. It cost Stacktree three ChatGPT rejections before we traced it. 490 of the 505 are community-tier listings. Fix: Turn ECH off for the MCP host (on Cloudflare it’s a zone setting). |
| 69% 2,261 of 3,283 | give an email address, not a web page, for support Claude accepts an email. ChatGPT’s form asks for a support URL. Fix: Put a /support page up with your email on it. |
| 18% 102 of 564 | leave at least one tool without explicit safety hints ChatGPT asks you to justify readOnlyHint, destructiveHint and openWorldHint on every tool and flags missing ones. Fix: Set all three to true or false on every tool. |
| 16% 92 of 562 | crash or return a non-standard error for a method they don’t implement ChatGPT’s tool scan probes server/discover. In our submissions, a crash there stopped the scan. Fix: Answer unknown methods with JSON-RPC error -32601 at HTTP 200. |
| 39% 221 of 562 | stop working when the URL has a trailing slash Reviewers paste URLs by hand. A 404 reads as “unable to connect”. Fix: Serve /mcp/ as well as /mcp. |
| 55% 313 of 564 | declare no outputSchema on at least one tool OpenAI recommends structured output on every tool during review. Fix: Declare outputSchema and return matching structuredContent. |
| 21% 118 of 564 | tell the model what to do inside a tool description Anthropic’s submission form asks you to confirm descriptions contain no instructions for the model. Naming a sibling tool isn’t counted here. Fix: Describe what the tool does, as facts. |
| 9% 52 of 564 | have tools without a human-readable title Clients fall back to the raw name, and reviewers ask for titles on new submissions. Fix: Add title to each tool. |
| 4% 145 of 3,283 | link a privacy policy that doesn’t load Every store requires one that works. Fix: Fix the link in your listing. |
| 3% 92 of 3,283 | have a name longer than ChatGPT’s 30 characters ChatGPT’s display name field stops at 30. Fix: Pick a shorter name for that store. |
Check yours
Paste your server’s URL into the server check. It runs the same checks, takes under a minute and stores nothing. From a terminal, npx mcplane preflight --url https://your-server/mcp adds the TLS 1.2 handshake, tools behind sign-in and your plugin repo.
How we checked
On 29 September we read Anthropic’s public directory feed, the one claude.ai/directory uses, and connected to each of the 3,286 remote servers it lists the way a store’s scanner does. That meant no sign-in, no client registration, about 20 requests per server, six servers at a time, with a user agent linking to the tool. 3,185 answered. 564 list their tools without sign-in, and we checked all 6,527 of those tools. Tools behind sign-in weren’t seen, so the tool rows cover those 564 servers only.
The checks are mcplane’s, which is open source. Two of them come from our own ChatGPT rejections rather than OpenAI’s documentation: the ECH check and the unknown-method probe. We left out checks the feed can’t answer fairly: icons (the feed doesn’t carry them), ChatGPT’s domain challenge (a Claude connector has no reason to serve it) and OAuth metadata (some servers use API keys instead).
We publish counts only. No server is named here, and the per-server results aren’t shared. The first pass also showed two of our own checks were too eager: they flagged descriptions that mention a sibling tool, and product prices as upsells. We fixed both and recounted before publishing.