Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Publishing to the MCP Registry

cadvm ships a server.json describing it for the official MCP Registry — the catalog MCP clients use to discover and install servers. This page is the maintainer checklist to (re)publish it.

The registry hosts metadata only; the runnable artifact must live in a public package registry. cadvm uses the cargo path (crates.io).

Prerequisites

  • A crates.io account + API token (cargo login).
  • A GitHub account (namespace io.github.AdeMBCH/*).
  • The publisher CLI: brew install mcp-publisher.

1. Publish the crates to crates.io

cadvm is a workspace; publish bottom-up so dependencies resolve:

cargo publish -p cadvm-store
cargo publish -p cadvm-core     # after cadvm-store is live
cargo publish -p cadvm          # the binary crate (the MCP server)

Ownership verification: the cadvm crate’s README already carries the visible marker mcp-name: io.github.AdeMBCH/cadvm, which crates.io serves and the registry checks. Keep it intact.

2. Keep versions in sync

The release tag, the workspace version, the crate on crates.io, and the two version fields in server.json must all match (e.g. 0.1.1).

3. Publish to the registry

mcp-publisher login github      # browser OAuth → grants io.github.AdeMBCH/*
mcp-publisher publish           # reads ./server.json

Verify it is listed:

curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=cadvm" | jq .

Optional: publish from CI (OIDC, no browser)

In a release workflow, authenticate with GitHub OIDC instead of a browser:

permissions:
  id-token: write
  contents: read
steps:
  - run: |
      curl -fsSL https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_linux_amd64.tar.gz | tar -xz
      ./mcp-publisher login github-oidc
      ./mcp-publisher publish

(Run this after the crates are published to crates.io for that version.)

Notes

  • Once a version is published it cannot be re-published; bump the version.
  • The registry currently restricts cargo packages to https://crates.io.
  • A no-toolchain MCPB path (prebuilt binary from GitHub Releases) is an alternative for end users without Rust — a possible future addition.