Review times
← Docker MCP Catalog
Rejection library

Why Docker MCP Catalog submissions get rejected

What Docker has said when it turned Docker MCP Catalog submissions down, what causes each reason, and how to fix it before you submit.

4 reasons
4 rejections reported, 0 with a reason
rejections came back in a median of 1 day

How rejections arriveSubmissions are pull requests to docker/mcp-registry. A maintainer said on 8 August that the catalog is “no longer accepting new mcp server entries”. A maintainer closing a pull request is the rejection, often with no comment.

Free, nothing stored. From a terminal: npx mcplane preflight --url https://your-server/mcp (mcplane docs).

At a glance

ReasonApplies toReportsCaught by
Plugin repository problemClaude Plugins, Cursor Marketplace, Grok Plugins, Gemini CLI Extensions, Docker MCP Catalog–mcplane CLI
Duplicate submissionGrok Plugins, Docker MCP Catalog–By hand
Not accepting submissionsDocker MCP Catalog, Cursor Marketplace–By hand
No reason givenChatGPT Plugins, Claude Plugins, Grok Plugins, Docker MCP Catalog, Gemini CLI Extensions, Cursor Marketplace–By hand

Plugin package

Applies to Claude Plugins · Cursor Marketplace · Grok Plugins · Gemini CLI Extensions · Docker MCP Catalog

What reviewers and the rules say

“looks like there’s a failure in the CI job that ran, you’ll need to fix that first”
Docker MCP Catalog · A Docker maintainer on a pull request
“(MIT or Apache 2 are great, GPL is not).”
Docker MCP Catalog · Docker’s contributing guide
“Put a README of at least 40 words in the plugin folder”
Claude Plugins · Anthropic’s plugin checklist (blocks if missing)
“main, v1.2.3, and abbreviated SHAs are rejected by the validator.”
Grok Plugins · xAI’s contributing guide

Stores that take plugins read them from a public GitHub repository at a pinned commit, and validate it before anyone reviews it. A private repository, a missing manifest, README or licence, a branch instead of a commit, or a failing CI run leaves nothing to review. Gemini CLI’s gallery skips a repository that fails validation without saying so.

How to fix it

  • Host the plugin in its own public GitHub repository. A private monorepo can’t be pinned.
  • Claude: add .claude-plugin/plugin.json, a README of at least 40 words and a LICENSE, then run claude plugin validate --strict.
  • Don’t leave a SKILL.md at the root beside a skills/ folder. Claude loads it as a single-skill plugin and hides the rest.
  • Grok: pin a full 40-character commit SHA, not main or a tag.
  • Docker: use a licence that lets people run the server, such as MIT or Apache 2.0, and get CI green before asking for review.
  • Gemini CLI: put gemini-extension.json at the root and add the gemini-cli-extension topic.

Caught by

Applies to Grok Plugins · Docker MCP Catalog

What reviewers and the rules say

“Not already in the catalog; not a parallel entry for an existing plugin”
Grok Plugins · xAI’s contributing guide, review checklist

Stores that take pull requests close one that adds something already in the catalog, or a second one for the same plugin. Updates go through the existing entry.

How to fix it

  • Search the catalog and the open pull requests before you add an entry.
  • To update a listed Grok plugin, bump its pinned commit instead of adding a new entry.
  • Close your own older pull request when you open a replacement.

Caught by

No script can see this one. A server check rules out the mechanical causes first.

The store itself

Applies to Docker MCP Catalog · Cursor Marketplace

What reviewers and the rules say

“We’re actually no longer accepting new mcp server entries”
Docker MCP Catalog · A Docker maintainer on a pull request, 8 August 2026
“We keep the marketplace curated. We work directly with plugin authors we trust, and every submission goes through our internal review process.”
Cursor Marketplace · Cursor’s marketplace security page

Some stores stop taking new entries without closing the door. A Docker maintainer said so on 8 August, quoted above; since then 639 more pull requests adding a server have been opened, and none has been merged (counted on 1 October). Cursor curates its marketplace and works directly with plugin authors it trusts.

How to fix it

  • Read the latest maintainer comments in the queue before you open a pull request.
  • Ask on your pull request whether it will be reviewed at all.
  • List the server where intake is open, such as the official MCP Registry, which takes entries through its own CLI.

Caught by

No script can see this one. A server check rules out the mechanical causes first.

Applies to ChatGPT Plugins · Claude Plugins · Grok Plugins · Docker MCP Catalog · Gemini CLI Extensions · Cursor Marketplace

What reviewers and the rules say

The rejection email said “Please see the details below:”, followed by nothing.
ChatGPT Plugins · A developer on the OpenAI developer forum (paraphrased)
The submission portal only shows “Rejected” with no notes.
Claude Plugins · A developer in Anthropic’s plugin issue tracker (paraphrased)

Some reviews end without an explanation. ChatGPT rejection emails have arrived with an empty details section, Claude’s old plugin portal showed “Rejected” with no notes, Grok and Docker maintainers often close pull requests without a comment, Gemini CLI’s crawler skips repositories silently, and Cursor’s publish form sends no confirmation.

How to fix it

  • ChatGPT: reply to the rejection email with your case ID and ask for the specific finding.
  • On a pull request, ask what would make it acceptable.
  • Rule out the mechanical causes with a server check before you resubmit.

Of the 6 pull requests maintainers closed in the Grok and Docker queues we track, none had a comment saying why (checked 1 October).

Caught by

No script can see this one. A server check rules out the mechanical causes first.

How this is counted

Reports count rejected submissions where the developer picked the reason, or wrote a note that names it. So far 4 rejections have been reported for Docker MCP Catalog, and 0 say why. Pull requests closed in the Grok and Docker queues count as rejections, but carry no reason.

The reasons themselves come from rejection emails developers have shared, public posts, the stores’ own docs and our own submissions. Each check is open source in mcplane, and the server check runs the ones marked “Server check”. Tool checks need tools that list without sign-in; for a server behind sign-in, run mcplane with --token.

Rejected?

Add it with the reason. The next developer sees it here, and the store’s review times include it.

Add your rejection

Already reported it as waiting? Open your private link and mark it rejected; the reason is on the same form.