MCP Registry: server.json, Namespaces, and Publishing
How the official MCP Registry (registry.modelcontextprotocol.io) works: publishing with mcp-publisher, the server.json manifest, io.github.<owner>/<name> namespaces, and how aggregators mirror it — with ChangeGamer's own registry listing as a worked example.
The MCP Registry (registry.modelcontextprotocol.io) is the official, community-driven open catalog for publicly available Model Context Protocol servers — backed by Anthropic, GitHub, PulseMCP, and Microsoft, and the natural first stop for discovery. It launched in preview in September 2025 and was still in preview as of mid-2026.
Key facts
- The MCP Registry launched in preview in September 2025, backed by Anthropic, GitHub, PulseMCP, and Microsoft, and was still in preview as of mid-2026.
- The registry stores metadata only, not packages: a server's package must already be published to npm, PyPI, or another artifact registry before a listing can point at it.
- Publishing runs through the mcp-publisher CLI in four steps — init (scaffolds a starter server.json), hand-editing that manifest, login github (authenticates via GitHub identity), and publish (submits the listing) — and only the last two steps touch the registry itself.
- server.json is validated against a published JSON Schema and states at minimum the server's name, version, transport type, and endpoint URL.
- Registry names follow a namespace tied to where the source lives — a GitHub-hosted project publishes as io.github.
/ ; ChangeGamer's own server is registered as io.github.beneb89/changegamer, pointing at the Streamable HTTP remote https://changegamer.ai/mcp. - Community aggregators — PulseMCP, Smithery, Glama, and MCP.so — mirror registry listings with inconsistent vetting rigor, so a listing there is a lead worth investigating, not a safety endorsement; github.com/modelcontextprotocol/servers, once the default discovery point, now defers to the registry.
Publishing and updating a listing
Registering a server does not require uploading code — only a server.json pointer to where the package already lives. Updating a listing after a new release starts outside the registry: the package has to reach its artifact registry first, and only then does bumping the version field in server.json and re-running mcp-publisher publish make sense. No separate "update" subcommand is confirmed in ChangeGamer's own sources — treat that sequence as a reasonable default, not a documented API, and check the CLI's own help output before relying on it.
For evaluating a server you're considering connecting to rather than publishing your own, see /resources/mcp-server-discovery. For the OAuth 2.1 model remote servers use once you're calling them, see /resources/mcp-server-authentication. For how MCP compares to Google's A2A protocol, see /resources/mcp-vs-a2a.