Finding and publishing servers: the Registry

Model Context Protocol (MCP) · Practical · 9 min

It is how servers are discovered and how you make yours installable by others.

The MCP Registry is the official, community-run catalog of publicly available MCP servers. It is in preview, so its data and API may still change.

It stores metadata, not code. Each entry is a server.json file that says:

  • a unique name in reverse-domain style, such as io.github.ana/notes,
  • where the server lives: a package on npm, PyPI, NuGet, Docker/OCI or similar, or a remote URL,
  • how to run it: transport, arguments, required environment variables (marked secret where relevant).

Ownership is verified. With GitHub login your names must start with io.github.<your-username>/; with your own domain you prove you control it via DNS. For a PyPI package, the registry checks that your package README contains the line mcp-name: <server name> (it may be hidden in an HTML comment).

Publishing uses the official mcp-publisher command-line tool: publish your package to its normal registry first, then mcp-publisher init creates a server.json template, you log in, and mcp-publisher publish uploads it.

The registry is mainly consumed by aggregators: marketplaces and host apps that pull from it, add curation and ratings, and show you servers to install. It does not host private servers; companies can run their own registry using the same open API.

Being listed is not a security review. Check who publishes a server and what access it asks for before installing it.

Example

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "io.github.ana/notes",
  "description": "Search and read team notes.",
  "version": "1.2.0",
  "packages": [
    {
      "registryType": "pypi",
      "identifier": "ana-notes-mcp",
      "version": "1.2.0",
      "transport": { "type": "stdio" },
      "environmentVariables": [
        { "name": "NOTES_API_KEY", "isRequired": true, "isSecret": true }
      ]
    }
  ]
}

Remember

  • The registry stores server.json metadata, not code
  • Names are namespaced and ownership is verified
  • Publish with mcp-publisher init / publish
  • Listed does not mean audited: check the publisher

Check yourself

  1. What does the MCP Registry actually host?

Sign in to answer, see the explanations, and get this lesson back as a quick review later.

Official docs: modelcontextprotocol.io/registry/about