You can list one remote MCP server in both directories, but you submit it twice, in two different ways. OpenAI wants a plugin ZIP, a verified identity, a domain token, all three hint annotations on every tool, and five positive plus three negative test cases. Anthropic wants a form at claude.ai/directory/manage, a title and a read or write hint on every tool, a test account, and at least three example prompts.
Build the server once so it passes the stricter rule on each point. Then the two submissions are mostly paperwork. We read every rule below on OpenAI’s and Anthropic’s own docs on 2026-10-14.
Who this is for: a team that already runs a remote MCP server, or is about to, and wants it listed where ChatGPT and Claude users can find it. Who should look elsewhere: if only your own staff will use the server, you don’t need a listing. Add it as a custom connector instead. OpenAI says the same: “For private or workspace-only use, use a custom MCP server connection instead” (OpenAI review requirements). If you’re still deciding whether you need a server or a ChatGPT plugin at all, read ChatGPT app vs MCP server vs Custom GPT first.
Most guides that rank for this question cover one directory. We found none that puts both side by side, and several still describe OpenAI’s old submission form, which a plugin ZIP replaced.
The two reviews side by side
| ChatGPT and Codex plugin directory (OpenAI) | Claude Connectors Directory (Anthropic) | |
|---|---|---|
| Where you submit | Plugins page in the OpenAI Platform dashboard | claude.ai/directory/manage, then MCP connector |
| What you upload | A plugin ZIP (plugin.json, mcp.json, icons, optional skills), then you connect the server | The server URL. Tools sync from the live server |
| Who can submit | Organization owners, or members with “Apps Management Write" | "Anyone on a paid Claude plan”: Pro, Max, Team, or Enterprise. On Team and Enterprise, an Owner |
| Identity | ”individual or business verification”. Unverified names are rejected | Company name, website, and a contact. Policy asks for “verified contact information” |
| Domain proof | A plain-text token at /.well-known/openai-apps-challenge | No file or DNS challenge in the portal steps. Policy says you must “own or control” the endpoint and domain |
| Transport | A “stable, public HTTPS endpoint” | Remote over HTTPS. Policy: servers “should support the Streamable HTTP transport” |
| Auth | None, OAuth, or mixed. No API key flow in the portal | OAuth 2.0, a custom connection, or none |
| Tool hints | readOnlyHint, destructiveHint, openWorldHint as explicit booleans on every tool | A title, plus readOnlyHint or destructiveHint, on every tool |
| Tool names | Unique, plain, ideally a verb such as get_order_status | 64 characters or fewer |
| Test material | ”Five positive test cases”, “Three negative test cases”, and a video walkthrough | A test account and “at least three working examples of prompts” |
| Reviewer login | Must work “without MFA approval, email or SMS codes, magic links" | "credentials for a fully populated account” |
| Listing text | Name and subtitle 30 characters each, description up to 4,000 | Name up to 100, one-liner up to 200, description up to 2,000, 1 to 5 categories |
| Required URLs | Website, support, privacy policy, and terms of service | Documentation, privacy policy, and a support contact |
| Screenshots | ”Screenshots are no longer shown in the Directory” | MCP Apps with UI only: 3 to 5 PNGs, at least 1,000 px wide |
| What review is | Automated checks, then people. No published timeline | Automated scan, then listed as Community by default. Some get a slower Verified review |
| After launch | OpenAI “scans your hosted MCP server daily”. New tools wait for checks | ”initial and ongoing reviews”. You get a health and usage dashboard |
| Not accepted | Selling digital goods, ads, “Trial or demo plugins”, projects with EU data residency | Moving money, AI image, video, or audio generation, ads |
Sources, all opened 2026-10-14: OpenAI’s submission guide, review requirements, and plugin guidelines. Anthropic’s publish page, connector submission page, connector review checklist, and Software Directory Policy.
The biggest differences, in their words
OpenAI asks for more proof up front. You verify who you are, prove the domain, and hand over a test script: “Include the scenario, user prompt, expected tools, and expected result. Run each case using the test account before submitting.” The three negative cases are prompts “where the plugin should not act”. You also record a video of the cases.
Anthropic lists first and checks deeper later. “Anthropic scans your submission automatically for policy compliance and, by default, lists it as a Community connector with no action from you.” Some listings then get escalated: “Verified review, which is higher touch and slower, and in which reviewers run a functional test of each tool” (review checklist).
OpenAI’s hints are stricter. It wants all three as booleans: “Set readOnlyHint, destructiveHint, and openWorldHint to explicit boolean values (true or false) in each tool’s annotations object.” Anthropic needs the title and the read or write hint, because “These determine auto-permissions in Claude. Read-only tools can run without per-call confirmation, and destructive tools always prompt.”
Anthropic bans catch-all tools outright. “A single tool that accepts both safe HTTP methods … and unsafe methods … is rejected. Don’t ship a catch-all api_request tool with a method parameter.” OpenAI says the same thing more broadly: “Expose each model-callable operation as a separate tool.”
OpenAI cares about what your tools return. Tool responses must “return only data that is directly relevant to the user’s request”. The guidelines name “session IDs, trace IDs, request IDs, timestamps, or logging metadata” as things to leave out unless they are “strictly required to fulfill the user’s query.” Its top rejection reasons include a reviewer who can’t log in, test cases that don’t match, and “user-related data types that are not disclosed in your privacy policy” (review requirements).
One tool definition that passes both
Write every tool to the stricter rule on each side: a title for Anthropic, all three hints for OpenAI, a short verb name, and an output with no ids or timings the user didn’t ask for. This is a real tool from our public server at https://dawloom.com/mcp, trimmed:
{
"name": "list_supported_formats",
"title": "List convertible document formats",
"description": "List every file extension convert_document accepts, with the maximum file size. Call this when you need to check a format before converting.",
"inputSchema": { "type": "object", "properties": {} },
"outputSchema": {
"type": "object",
"properties": {
"formats": { "type": "array", "items": { "type": "string" } },
"max_file_size_bytes": { "type": "number" }
},
"required": ["formats", "max_file_size_bytes"]
},
"annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false }
}
openWorldHint is false here because the tool only reads a fixed list. OpenAI’s rule: “A tool confined to a bounded private account, workspace, or catalog may use false.” Our other tool, convert_document, fetches any URL the user gives it, so it sets openWorldHint: true.
For the OpenAI plugin, the same server goes in the package’s mcp.json. OpenAI’s own example uses this shape:
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
"mcpServers": {
"dawloom": { "type": "streamable-http", "url": "https://dawloom.com/mcp" }
}
}
Anthropic needs no file. You paste the URL and the portal reads the tools.
A preflight check you can run on your server
We wrote a small script that checks the parts of both reviews you can see from outside: HTTPS, a Streamable HTTP handshake, every tool’s name length, title, and hints, catch-all tools, output fields that look like ids or timings, OpenAI’s challenge path, and whether your listing URLs load. It’s one file for Node 22 or later, with no dependencies: submit-mcp-server-to-chatgpt-and-claude-preflight.mjs.
node submit-mcp-server-to-chatgpt-and-claude-preflight.mjs https://dawloom.com/mcp \
--privacy https://dawloom.com/privacy/ --terms https://dawloom.com/terms/ \
--support https://dawloom.com/contact/ --docs https://dawloom.com/developers/
This is the real output for our own server on 2026-10-14, trimmed to the rows that matter:
Area Check OpenAI Claude Note
server Public HTTPS URL pass pass
server Streamable HTTP initialize pass pass protocol 2025-06-18, application/json
tool convert_document Title pass pass
tool convert_document readOnly, destructive, openWorld hints set pass pass true/false/true
tool convert_document No internal ids or telemetry in output warn warn check: duration_ms
tool list_supported_formats readOnly, destructive, openWorld hints set pass pass true/false/false
listing OpenAI domain challenge path warn - HTTP 404 at /.well-known/openai-apps-challenge
listing Terms of service URL FAIL - HTTP 404 https://dawloom.com/terms/
listing Privacy policy URL pass pass HTTP 200
listing Documentation URL pass pass HTTP 200
1 fail, 2 warn.
So our own server isn’t ready for OpenAI yet. We have no terms of service page, which OpenAI lists as required for MCP review. convert_document returns duration_ms, a timing field OpenAI’s rules ask you to leave out unless the user needs it. The challenge path is a warning only: the portal gives you the token when you connect, so a 404 before that is normal.
We also ran the script against a deliberately bad local server with a catch-all api_request tool, a 70-character name, missing hints, and request_id in its output. It flagged all of them, with 10 fails and 5 warnings.
The script can’t judge whether your descriptions are accurate, whether your test cases pass, or whether a reviewer accepts your use case. For a live check of the protocol itself, use our MCP server checker, which the checker post explains.
The use-case rules most people miss
Passing the checks above doesn’t mean approval. Both directories also judge what the server is for.
- OpenAI wants something ChatGPT can’t already do. Plugins “should provide functionality or workflows that are not natively supported by the products’ built-in capabilities.” And: “Trial or demo plugins will not be accepted.”
- Both reject unofficial connectors. OpenAI: “We cannot approve plugins that primarily function as unofficial connectors to third-party services.” Anthropic: “Your server must call your own first-party APIs, or APIs you legitimately proxy. The MCP server domain should match your service.”
- Both reject ads. OpenAI: plugins “must not serve advertisements.” Anthropic does not accept software that “serves advertisements, sponsored content, paid product placements.”
- Anthropic rejects money movement and media generation. Connectors that “Transfer money, cryptocurrency, or other financial assets” or “Generate images, video, or audio through AI models” aren’t accepted. Diagrams and charts are fine.
- OpenAI limits selling. Only physical goods, with checkout on your own site. We cover the money rules in can a ChatGPT app charge users.
The first rule is a real risk for our own server. ChatGPT and Claude both read Word and PDF files on their own, so a document converter may not count as something the product “can’t already do”. We haven’t submitted dawloom.com/mcp to either directory yet.
How long review takes
Neither company publishes a timeline. OpenAI says “Review timelines may vary” and asks you not to request a faster review. Anthropic says “Review time isn’t fixed.”
The only numbers we found are crowdsourced on reviewtimes.fyi, which publishes no method. On 2026-10-14 it tracked 32 ChatGPT plugin submissions: 5 approvals with a median of 8 days, 6 rejections with a median of 3 days, and 13 still waiting. For Claude it tracked 12 connector submissions, with 5 approvals at a median of 0 days and 6 still waiting (Claude page). These samples are tiny. Treat them as a hint, not a forecast.
The order we’d do it in
- Make the server pass the table above: titles, all three hints, separate read and write tools, no ids or timings in output, and Streamable HTTP over HTTPS.
- If tools touch a user’s data, add OAuth. Our OAuth 2.1 guide for MCP servers covers it. Make a reviewer account with sample data and no MFA.
- Publish a privacy policy, terms of service, support page, and docs page. One page per URL is enough.
- Run the preflight script and fix every fail.
- Submit to Claude first. It has fewer steps, and the Community listing comes from an automated scan.
- Write the five positive and three negative test cases, record the video, build the plugin ZIP, verify your identity, and submit to OpenAI.
- After launch, keep the published tool schemas working. OpenAI holds changed tools until they pass checks and keeps serving the old definition, so “Keep your server compatible with the live definition while an update is held.”
One more OpenAI rule to plan for: “The MCP server origin (scheme, hostname, or port) can’t change between versions.” Pick the final hostname before you submit. Our MCP server hosting guide covers where to run it.
FAQ
How do I submit an MCP server to the Claude connectors directory?
Open claude.ai/directory/manage from a paid Claude account, select Submit new, and choose MCP connector. Paste your https:// URL, let the tools sync, then fill in the listing, use cases, company, auth, data handling, test account, and seven policy acknowledgments.
Can the same MCP server be listed in ChatGPT and Claude?
Yes. Both directories take a remote MCP server over HTTPS, and both read standard MCP tool annotations. You submit twice: a plugin ZIP to OpenAI and a portal form to Anthropic. Write each tool to the stricter rule on both sides.
Do I need OAuth to get listed?
Only if your tools act on a user’s account. Anthropic asks for OAuth 2.0 in that case and allows no auth “for public data”. OpenAI’s portal supports no auth, OAuth, or a mix, and has no API key flow.
Why was my ChatGPT plugin rejected?
OpenAI’s most common reasons are a reviewer who can’t connect or log in, test cases that don’t produce the expected result, data returned that your privacy policy doesn’t disclose, and hint annotations that don’t match what a tool does (review requirements).
Does Anthropic need test prompts like OpenAI’s eight test cases?
Anthropic’s policy asks for “at least three working examples of prompts or use cases” and a test account with sample data. It doesn’t ask for negative cases or a video.
Our public server at https://dawloom.com/mcp is documented on the developer portal if you want to see a small one first. If you want a server built to pass both reviews, see how we scope MCP servers.