# How to submit an MCP server to ChatGPT and Codex plugin directory

By [Jonah Ease](https://manycp.com/about) Published 1 Oct 2026 Last checked 1 Oct 2026

OpenAI's directory for ChatGPT and Codex takes a plugin package, not a form. You upload a ZIP, automated checks read it and scan your MCP server, a review team looks at what passes, and after approval you decide when it goes live[1]. Final submission requires a verified developer or business identity, so that comes first.

## Before anything opens: identity and role

- Pick the organisation and project that will own the plugin. Organisation owners can submit; other members need the `Apps Management Write` role[1].
- Complete individual or business verification in the organisation's general settings. The plugin is shown under the name of the verified identity you choose[1] [3].
- You also need public website, support, privacy policy and terms pages, all on HTTPS, and a demo recording URL[2].

## The ZIP and what the final check enforces

Open the Plugins page, choose to upload a plugin, pick your developer identity and upload the ZIP; a draft opens after validation. Upload checks are looser than the ones at final submission[1] [4].

| Field | Rule |
| --- | --- |
| Display name | Required, one line, 30 characters at most |
| Short description | Required, one line, 30 characters at most |
| Long description | Required, 4,000 characters at most |
| Starter prompts | At most 3, each 128 characters or fewer, no server @mention |
| Compressed ZIP | 100 MB at most |

1 Oct 2026 [2]

## Proving the server is yours

The portal shows a token. Host it as plain text at `/.well-known/openai-apps-challenge` on the MCP host or an allowed parent domain, then connect the server so its tools are scanned. Only one MCP server can be connected per plugin[1].

Check the challenge before you verify the domain

```
curl -s https://mcp.example.com/.well-known/openai-apps-challenge
# the response body must be the exact token from the portal, as plain text:
# not JSON, not a list of tokens
```

## What the reviewers are given

A remote server needs exactly five positive and three negative test cases, release notes and a demo recording. Every tool must carry `readOnlyHint`, `openWorldHint` and `destructiveHint`, each with a written justification. Where sign-in is needed, give a demo account that works at once, without MFA, email or SMS codes[2] [1] [3]. The manifest can carry all of it:

plugin.json, the review and publication keys (shape from the docs)

```
"review": {
  "test_cases": {
    "positive": [ /* exactly five: description, prompt, tools_triggered, expected_behavior */ ],
    "negative": [ /* exactly three: description, prompt */ ]
  },
  "demo_recording_url": "https://example.com/review/demo"
},
"publication": { "countries": ["US", "GB"], "release_notes": "Initial release." }
```

## Error codes, and what clears them

- `annotations_required`, `justification_required`: a tool is missing a hint or its reason[2].
- `scan_required`: the tool scan must be successful and current for the production server[2].
- `domain_verification_required`: the exact token is not at the challenge URL, or Verify Domain did not pass[2].
- `archive_too_large`, `plugin_root_ambiguous`: the ZIP is over 100 MB, or holds more than one plugin root[2].
- A demo account that needs a sign-up step or 2FA is rejected outright[3].

## Who presses what

1. You click Submit for review and tick the policy attestations.
2. Feedback from the review team arrives by email, and you can reply to appeal a rejection.
3. After approval, you click Publish plugin yourself.

That is the whole sequence, done by hand[1]. Anthropic runs a separate review for its own directory; see [the Claude Connectors Directory](https://manycp.com/directories/claude-connectors-directory).

## Current status, 1 Oct 2026

OpenAI's pages state no review time. Its page refers to a previous submission form, and tells anyone who used it to download their existing plugin as a ZIP to continue in the current flow[1].

## Sources

1. [OpenAI: Upload and submit your plugin](https://developers.openai.com/plugins/deploy/submission) · checked 1 Oct 2026
2. [OpenAI: Plugin submission errors](https://developers.openai.com/plugins/deploy/submission-errors) · checked 1 Oct 2026
3. [OpenAI: Plugin guidelines](https://developers.openai.com/plugins/plugin-guidelines) · checked 1 Oct 2026
4. [OpenAI Platform: Plugins page](https://platform.openai.com/plugins) · checked 1 Oct 2026

ManyCP is not affiliated with, endorsed by or sponsored by any directory, Docker, OpenAI, Anthropic or GitHub named here. Names are used to say which service a fact is about.

---

Source: [ManyCP](https://manycp.com/directories/openai-app-directory)
