Get Your MCP Server Into the ChatGPT Apps Directory
How to submit a remote MCP server to OpenAI's directory for ChatGPT and Codex, which its docs call the plugin directory: who can submit, the tool hints and auth it checks, the test cases, and what gets a submission rejected.
You submit a remote MCP server to OpenAI's directory at platform.openai.com/plugins, choosing With MCP for a server with a public HTTPS endpoint [1]. OpenAI's documentation calls it the plugin directory, one directory shared by ChatGPT and Codex, and describes no separate apps directory [1][2]. So if you are looking for the ChatGPT apps directory to list a server in, this is where it goes.
Everything below is checked against OpenAI's plugin documentation on 20 October 2026 [1][2][3]. The process has changed more than once, so if a guide shows a different screen, compare its date.
TL;DR:
- Who can submit: organization owners, or members with the Apps Management Write role, and the organization needs individual or business verification [1].
- Every tool needs all three hints set explicitly:
readOnlyHint,destructiveHintandopenWorldHint, eachtrueorfalse[2]. - Sign-in must be none, OAuth, or a mix. The portal does not support API keys or bearer tokens a user types in [1].
- Review needs exactly five positive and three negative test cases, a demo video, and a reviewer account that works without MFA or emailed codes [1].
- No pricing in the listing: no plans, trials, discounts or promotions in titles or descriptions [2].
Before you open the portal
- A stable, public HTTPS endpoint [1]. A local or desktop-only server follows a separate guide [1].
- A verified developer identity. The directory shows the name tied to it [1].
- Listing URLs, all HTTPS: website, support, privacy policy and terms of service [1]. The privacy policy has to cover what personal data you collect, why, who receives it, how long you keep it, and the controls users have [2].
- A square icon and logo, at least 48 by 48 pixels, PNG, JPEG, WebP or SVG, up to 5 MiB each [1].
- A reviewer account with sample data, not a real user's, that signs in without MFA, email or SMS codes, magic links or a private network [1].
Set the three tool hints honestly
OpenAI checks every tool for explicit values, and a missing one is a submission error [2][3]:
readOnlyHintistruewhen the tool only retrieves, computes or previews. It isfalsewhen the tool changes anything, saves something, queues work, or sends a message or file.destructiveHintistruewhen the tool deletes, overwrites, cancels, revokes access, or sends something irreversible. It isfalsefor read-only tools and for writes that destroy nothing.openWorldHintistruewhen the tool reaches public or open-ended things, like web search or arbitrary destinations. It isfalsewhen the tool stays inside a bounded private account, workspace or catalog, even one hosted elsewhere.
Being able to undo an action does not make it non-destructive on its own [2]. And the hints are labels, not permissions: they replace none of your authentication, scope checks or input validation [2].
Sign-in: what the portal accepts
The portal supports no authentication, OAuth, or a mix of unauthenticated and OAuth tools [1]. For OAuth it can register itself three ways: a client you registered in advance, Dynamic Client Registration, or a Client ID Metadata Document [1]. A client secret goes into the portal, never into the manifest, which rejects it [1].
That covers most guarded MCP servers already. In our registry census we read the authorization server metadata of 169 servers that asked for credentials: 162 offered Dynamic Client Registration and 33 accepted Client ID Metadata Documents [4]. A server whose only gate is an API key is the one that does not fit: the portal has no field for it, and OpenAI asks you to contact them [1].
Packaging and review
- The upload is a ZIP with a manifest carrying
name,version,description,authorand aninterfaceblock: display name, a short description of 30 characters or fewer, a long description, developer name and one category [1][3]. Keep secrets out of it [1]. - Prove you own the domain by serving a challenge token as plain text at
/.well-known/openai-apps-challengeon the MCP host or an eligible parent domain. Return only the token, not JSON [1]. - Test cases: exactly five positive cases, each naming the tools it should trigger and the expected behavior, and three negative cases the app should not trigger on [1].
- A demo video of those cases, at a URL a reviewer can open [1].
- Reviewer credentials go in the dashboard's review details, not in the ZIP [1].
Only one review can be active per plugin, feedback arrives by email, and you appeal a rejection by replying to that email [1]. OpenAI does not publish a review time [1].
What gets a submission rejected
From OpenAI's plugin guidelines [2]:
- Pricing or promotion in the listing: subscriptions, free trials, discounts, or comparisons with other products.
- A name that just adds "MCP", "MCP Server" or "Plugin" to a company or product name, or one that is overly generic.
- Tool descriptions that are empty, vague, or do not match what the tool does, or that push the model toward or away from other plugins.
- Prohibited categories, including money or crypto transfers, gambling and adult content, and selling digital goods, subscriptions or credits through the plugin.
- Advertising: a plugin must not serve ads or exist mainly to advertise.
- An unofficial connector to someone else's service.
After approval
You choose when to publish [1]. OpenAI scans your server daily after that: changed tools go live once automated checks pass, while new tools stay unavailable until they are approved [1]. Changes to the listing text still need a new ZIP and review [1].
Check the public half first
The portal scans your production URL from OpenAI's side. Our MCP connection test makes the same kind of outside call first and shows what comes back: a full handshake with the tool list and whether each tool has a description, a 401 from a server guarding itself, or the exact reason it failed. To try the server inside ChatGPT before you submit, see add an MCP server to ChatGPT.
A directory listing puts your server in front of people browsing ChatGPT and Codex. A launch week puts it in front of people watching what shipped this week. Submit it to MCP Hunter: it is free, a person reviews every submission, and when we can reach your server the listing shows what it returned, with the date we asked.