## Cargo (Rust) Packages ### Runtime Model
The whole hunk
from line 122, old and new numbered
/
lines
from line 122
122122<!-- mcp-name: io.github.username/azure-devops-mcp -->
123123```
124124
125## Cargo (Rust) Packages
126
127For Cargo packages, the MCP Registry currently supports the official crates.io registry (`https://crates.io`) only.
128
129Cargo packages use `"registryType": "cargo"` in `server.json`. For example:
130
131```json server.json highlight={9} theme={null}
132{
133 "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
134 "name": "io.github.username/widget-mcp",
135 "title": "Widget",
136 "description": "Rust-native MCP server",
137 "version": "0.3.0",
138 "packages": [
139 {
140 "registryType": "cargo",
141 "identifier": "widget-mcp",
142 "version": "0.3.0",
143 "transport": {
144 "type": "stdio"
145 }
146 }
147 ]
148}
149```
150
151### Runtime Model
152
153Cargo's runtime model differs from npm/PyPI/NuGet. `cargo install <crate>` places the compiled binary on PATH at `~/.cargo/bin`, after which MCP clients invoke it directly by name. There is no per-invocation runner equivalent to `npx` (npm), `uvx` (PyPI), or `dnx` (NuGet, .NET 10 SDK Preview 6+) — install is one-time, execution is by binary name. The Cargo example above intentionally omits `runtimeHint` for this reason.
154
155Rust MCP authors have two first-class distribution paths:
156
157* **Cargo (`registryType: cargo`)** — source-distributed via crates.io. End users need the Rust toolchain (`rustup`) to run `cargo install`. Idiomatic for the Rust ecosystem and consistent with how Rust CLIs are typically published.
158* **MCPB (`registryType: mcpb`)** — prebuilt binary distributed via GitHub or GitLab Releases. End users need no toolchain. Right choice if the priority is "no Rust toolchain required."
159
160Both paths are supported; the choice is the author's. Cargo native support exists so Rust authors who prefer source distribution are not forced into the MCPB binary-packaging workaround.
161
162### Ownership Verification
163
164The MCP Registry verifies ownership of Cargo packages by checking for the existence of an `mcp-name: $SERVER_NAME` string in the package README (which is rendered to HTML and served by crates.io's static CDN). The `$SERVER_NAME` portion **MUST** match the server name from `server.json`. For example:
165
166```markdown README.md highlight={5} theme={null}
167# Widget MCP Server
168
169A Rust-native MCP server for widget operations.
170
171- MCP Registry name: `mcp-name: io.github.username/widget-mcp`
172```
173
174**Cargo-specific gotcha:** Unlike PyPI and NuGet (which preserve HTML comments in their README rendering), **crates.io strips HTML comments during markdown→HTML conversion**. The `<!-- mcp-name: ... -->` hidden-comment form that works for PyPI/NuGet **does not work for cargo** — the token will not appear in the rendered HTML the validator inspects. Cargo authors must include the `mcp-name:` token as visible markdown text. A simple bullet in the Links section is the recommended pattern.
175
125176## Docker/OCI Images
126177
127178For Docker/OCI images, the MCP Registry currently supports: