How to submit an MCP server to Official MCP Registry

Publish a server.json with the mcp-publisher tool. It goes live at once, with no human review.

The source of truth. Glama and PulseMCP copy from it.

How
Direct publish
Fits
Local and remote servers
By hand
~30 min
Speed
Live as soon as publish works. No human review.

The steps, by hand

  1. 1

    Pick a name in the form io.github.<your-github-name>/<server>.

  2. 2

    Add proof that you own the package. npm needs "mcpName" in package.json. PyPI needs a line "mcp-name: <name>" in the README. Docker needs a label. A remote-only server needs no proof.

  3. 3

    Publish that package version first. The proof must be inside the published file.

  4. 4

    Write a server.json with the name, a description of 100 characters or fewer, a version, and your package or remote URL.

  5. 5

    Install the mcp-publisher tool and run "mcp-publisher login github".

  6. 6

    Run "mcp-publisher publish". Every change needs a new version number.

What you need

  • A GitHub account (the name becomes io.github.<you>)
  • A published npm, PyPI, NuGet, Cargo or Docker package, or a public HTTPS remote URL
  • Proof of ownership inside the package (mcpName, mcp-name or a label)
  • A description of 100 characters or fewer
  • A new version number for every change

// or skip all of that

Or let ManyCP do it in one click

ManyCP builds the server.json, checks it with the registry, and publishes with your GitHub sign-in. If your package is missing the mcpName proof, it opens a pull request on your own repo to add it.

// more directories