Prerequisites
- An MCP server published as an npm package. The registry hosts metadata only, never the artifact.
- A GitHub account, for the simplest auth. DNS auth is available if you want the server namespaced under your domain instead of io.github.
- The mcp-publisher CLI, installed from the GitHub releases or with brew install mcp-publisher.
Publish it
- 1Add "mcpName": "io.github.<owner>/<server>" to package.json. With GitHub auth the name must start with io.github.<owner>/.
- 2Build and npm publish --access public. Verify the package page loads.
- 3Run mcp-publisher init in the project. It writes a server.json with name, description, repository, version and the packages block (registryType npm, identifier, version, transport).
- 4Make server.json name match mcpName exactly, and bump both versions together.
- 5Run mcp-publisher login github and complete the device code flow.
- 6Run mcp-publisher publish. Confirm with the registry search API.
Confirm the listing
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.<owner>/<server>"
Remote servers and automation
- The registry supports remote servers: declare the streamable HTTP URL in server.json so clients that prefer hosted MCP can skip the npm package.
- Publish from GitHub Actions on every release so the registry version never lags the npm version.
- Registry validation fails when the package is missing mcpName, and permission errors mean the namespace does not match the auth method.
The directories that read the registry
Community directories (Smithery, Glama, mcp.so, PulseMCP and the rest) index the registry and GitHub. Most let you claim or enrich a listing: add a logo, a one-line description in the words your buyer uses and a link to your connect guide. Ten minutes each, and they are what a search for "<your category> MCP" returns.
The registry is in preview. Expect the occasional breaking change or data reset, and keep the publish step in CI so a reset costs one workflow run.
Vendor docs this guide is checked against
- Registry quickstartmodelcontextprotocol.io/registry/quickstart
- Registry repo and CLIgithub.com/modelcontextprotocol/registry
- Introducing the MCP Registryblog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/