What the MCP registry is
The MCP registry is the official, centralized metadata repository for publicly accessible MCP servers, hosted at registry.modelcontextprotocol.io and backed by major ecosystem contributors — Anthropic, GitHub, PulseMCP and Microsoft. Its job is narrow and useful: give server creators one place to publish standardized metadata about their server, and give clients and marketplaces one API to discover what exists.
A crucial distinction up front: the registry hosts metadata, not code. The actual server lives where code always lives — an npm package, a PyPI package, a Docker image, or a remote HTTPS endpoint. The registry stores a standardized record that maps a server’s name and version to *where to get it* and *how to run it*. Think of it as the card catalog, not the library shelves.
This guide is the meta-layer companion to our own MCP server directory; if you want to understand how the ecosystem’s discovery plumbing fits together — and where our directory sits in it — this is the map.
What’s in a server.json
Every registry entry is a standardized server.json record. It’s deliberately minimal — enough to find, identify and install a server, and nothing opinionated on top:
| Field | What it holds | Example |
|---|---|---|
| name | The server’s unique reverse-DNS name | io.github.acme/weather |
| description | A short summary of what the server does | “Current weather and forecasts by city” |
| packages / remotes | Where to get it: package name, or a remote URL | npm:weather-mcp, or an HTTPS endpoint |
| runtime hints | How to launch it: args, environment variables | command args, required env keys |
| version | The published version this record describes | 1.2.0 |
Namespaces: identity you can trust
The registry’s most important trust feature is namespace authentication. Server names use a reverse-DNS format that ties them to a verified identity, and only the proven owner of that identity can publish under it:
- io.github.username/server-name — verified by proving control of that GitHub account.
- com.yourdomain/server-name — verified by proving control of that domain via DNS or an HTTP challenge.
This is what stops a bad actor from publishing a server called io.github.stripe/official and impersonating a trusted vendor: they can’t verify ownership of that namespace, so they can’t claim it. It’s the same principle that makes reverse-DNS package identifiers trustworthy elsewhere, applied to MCP servers.
Registry vs directories vs marketplaces
People conflate the official registry with the many MCP directories and marketplaces, but they occupy different layers of an intentional design. The registry is meant to be consumed by those directories, not directly by end users:
The registry is the neutral source of truth; directories are the opinionated, human-friendly layer on top.
The registry maintainers make this explicit: the metadata is deliberately unopinionated, and downstream aggregators provide curation and additional data such as community ratings. It even defines an OpenAPI spec other registries can implement — a “registry of registries” model where private and public registries share one interface.
That’s precisely the role our MCP server directory plays: we add the curation the registry deliberately omits — real setup guides, example prompts, honest categories, and reviews — on top of open metadata. The two aren’t competitors; the directory is the layer the registry was designed to feed.
How to publish your server
Publishing is open to any server that’s publicly installable (a public npm/PyPI/Docker package) or publicly reachable (a remote server not locked to a private network). The path, at a high level:
- 1Ship your server somewhere public — publish the package, or stand up the remote endpoint. The registry needs something real to point at.
- 2Write your server.json — name (under a namespace you can verify), description, package or remote location, and runtime hints.
- 3Verify your namespace — prove ownership of the GitHub account or domain in the name, via the registry’s publishing tooling.
- 4Publish, then verify the listing — confirm your record resolves through the registry API, and consider testing the server itself with our MCP server tester first so consumers get a clean handshake.
That submission path is /mcp-servers/submit. And a caveat worth repeating: the official registry is still in preview, so its API shapes and tooling may change before general availability — check the official registry documentation for the current publishing flow before you start.
Frequently asked questions
What is the official MCP registry?
It’s the official centralized metadata catalog for public MCP servers, at registry.modelcontextprotocol.io, backed by Anthropic, GitHub, PulseMCP and Microsoft. It stores standardized server.json records that point to where each server lives and how to run it — it hosts metadata, not the server code itself — and it’s consumed mainly by downstream directories and marketplaces.
How do I publish a server to the MCP registry?
Ship your server as a public package or reachable remote endpoint, write a server.json (name under a namespace you control, description, package/remote location, runtime hints), verify ownership of that namespace via GitHub or DNS, then publish through the registry’s tooling. It’s free and open to any publicly installable or publicly accessible server.
What’s the difference between the MCP registry and an MCP directory?
The registry is the neutral, unopinionated source of truth for server metadata, designed to be consumed by other services. Directories and marketplaces sit on top: they pull registry metadata and add curation — search, categories, ratings, setup guides, examples — for human discovery. The registry feeds the directories, not the other way round.
How does the MCP registry prevent impersonation?
Through namespace authentication. Server names use a reverse-DNS format (io.github.user/server or com.domain/server), and only the verified owner of that GitHub account or domain can publish under it, proven via GitHub or DNS challenges. This ties a server’s identity to a real, verifiable owner — though it verifies authorship, not safety.
Can I list a private, internal-only MCP server in the registry?
No. The official registry only accepts servers that are publicly installable or publicly reachable — it explicitly excludes private servers on internal networks or private package registries. For internal servers, the maintainers recommend running your own private registry, which can implement the same OpenAPI interface to work with existing MCP host tooling.
Sources
BusinessMCP Team
Every guide is written from running BusinessMCP on its own platform — the match rates, reply rates, and deliverability lessons are from our own data, not recycled blog folklore. About BusinessMCP
Turn your business into one AI-ready MCP server
Connect your tools, install one tracking script, and expose your unified data to any AI agent through a single secure endpoint.
Get started free