BusinessMCP

Getting started

The MCP Registry: What It Is & How to Publish to It

The official MCP registry is the ecosystem’s shared metadata layer — one place servers publish who they are and where to find them, with namespaces tied to verified identity. Here’s what it is, how it differs from the directories built on top of it, and how to get your server listed.

By the BusinessMCP team10 min readAugust 15, 2026
The MCP Registry: What It Is & How to Publish to It — illustrated overview

Key takeaways

  • The official MCP registry (registry.modelcontextprotocol.io) is a centralized metadata catalog for public MCP servers, backed by Anthropic, GitHub, PulseMCP and Microsoft — it hosts pointers to servers, not the code itself.
  • It launched in preview in September 2025 and remains in preview, so expect the occasional breaking change or data reset before general availability.
  • Servers are described in a standardized server.json and published under reverse-DNS namespaces (io.github.you/server or com.yourdomain/server) verified through GitHub or DNS ownership.
  • The registry is deliberately unopinionated: it’s consumed by downstream aggregators and marketplaces that add curation, ratings and search — including our own directory (you can [publish your server to our marketplace](/guides/publish-to-marketplace) directly).
  • Publishing is free and open to any publicly installable or publicly reachable server; private, internal-only servers belong in a self-hosted registry instead.

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:

The core of a server.json record
FieldWhat it holdsExample
nameThe server’s unique reverse-DNS nameio.github.acme/weather
descriptionA short summary of what the server does“Current weather and forecasts by city”
packages / remotesWhere to get it: package name, or a remote URLnpm:weather-mcp, or an HTTPS endpoint
runtime hintsHow to launch it: args, environment variablescommand args, required env keys
versionThe published version this record describes1.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:

A server creator publishes a server.json to the official registry
The registry stores unopinionated metadata under the verified namespace
Downstream aggregators (directories, marketplaces) pull that metadata periodically
They add curation: search, categories, ratings, examples, safety notes
End users and MCP clients discover servers through those richer surfaces

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:

  1. 1Ship your server somewhere public — publish the package, or stand up the remote endpoint. The registry needs something real to point at.
  2. 2Write your server.json — name (under a namespace you can verify), description, package or remote location, and runtime hints.
  3. 3Verify your namespace — prove ownership of the GitHub account or domain in the name, via the registry’s publishing tooling.
  4. 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.

BM

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