Repository navigation
Support crates.io as a package registry type #1055
Description
Activity
Good idea. Rust is a gap worth closing, crates.io is a legitimate ecosystem. The process for adding a new package registry type is documented at
docs/contributing/add-package-registry.md, and happy to review a PR. Tagginghelp wanted.Thanks Rado — appreciated.
I'll take this on, following the contributing docs, targeting a PR in ~2 weeks (schema + openapi + cargo validator + publish-cargo.md).
rust-faf-mcp is on hand as the first real-world test case when it lands.If the spec moves while I work on it, happy to coordinate.
- added 5 commits that reference this issue
on Apr 26, 2026 +1 — happy to offer perfetto-mcp-rs (repo) as a second real-world test case alongside
rust-faf-mcponce cargo support lands.Concrete shape we'd register:
{ "name": "io.github.tooluse-labs/perfetto-mcp-rs", "description": "MCP server for Perfetto trace analysis (PerfettoSQL queries on .perfetto-trace / .pftrace files)", "repository": { "url": "https://github.com/tooluse-labs/perfetto-mcp-rs", "source": "github" }, "version": "0.13.0", "packages": [ { "registryType": "cargo", "identifier": "perfetto-mcp-rs", "version": "0.13.0", "transport": { "type": "stdio" } } ] }Verification via
[package.metadata] mcpName = "..."in Cargo.toml as proposed reads clean — no extra step beyondcargo publish. Already on Trusted Publishing viarust-lang/crates-io-auth-action@v1so the cargo→registry path is mature on the publishing side.Will plumb the
mcpNamemetadata field as soon as the cargo validator merges. Happy to provide CI logs /cargo metadataoutput if useful for the validator design.(Edit 2026-04-30: repo moved from
0xZOne/perfetto-mcp-rstotooluse-labs/perfetto-mcp-rsand bumped to v0.13.0 since the original comment.)@0xZOne — appreciated, and
perfetto-mcp-rsis a great second case. Two independent real-world Rust servers (yours +rust-faf-mcp) is exactly the validation surface this needs. Good to hear the[package.metadata] mcpNameapproach reads clean on your side too — that's the verification path #1207 implements. I'll take you up on thecargo metadata/ CI-logs offer if the validator design needs it.Quick status for anyone landing here: #1207 is implemented and green — cargo validator + tests (177 lines),
server.schema.json+ OpenAPI + docs updated, constants wired in. CI passing (Build/Lint/Validate + Tests), mergeable, no conflicts. Review-ready since mid-May.@rdimitrov — whenever you have review bandwidth, it's ready for a pass. The case is a little stronger now: two real servers lined up to register the moment it lands (
rust-faf-mcp+perfetto-mcp-rs), against the ~1,800 MCP-related crates already on crates.io. Happy to adjust anything to fit the validator design — no rush, just flagging it's green and waiting.- added a commit that references this issue
on Jun 1, 2026 @0xZOne — quick update on PR #1207 (the cargo registry-type validator you offered
perfetto-mcp-rsas a test case for):Review-addressed, live test green against
rust-faf-mcp v0.3.1. Mergeable, awaiting maintainer review.Cargo-specific gotcha worth knowing before any version bump: crates.io strips HTML comments during README rendering (unlike PyPI/NuGet). The
<!-- mcp-name: ... -->hidden form doesn't work — the token must be visible markdown text. PR #1207's package-types.mdx documents this; the rust-faf-mcp v0.3.1 README is a working reference.No rush — flagging ahead so you don't burn a release on the hidden form.
- added a commit that references this issue
on Jun 3, 2026
Summary
Request to add
"registryType": "cargo"(or"crates") support to the MCP Registry, enabling Rust-based MCP servers published on crates.io to be listed.Context
The registry currently supports 5 package types:
npm,pypi,nuget,oci, andmcpb. There is no path for Rust crates published on crates.io.Meanwhile, crates.io has ~1,800 MCP-related packages — a significant and growing ecosystem with no direct route to the official registry.
Proposed server.json
{ "packages": [ { "registryType": "cargo", "identifier": "rust-faf-mcp", "version": "0.2.2", "transport": { "type": "stdio" } } ] }Verification approach
Similar to npm/PyPI — the registry could validate against the crates.io API:
This returns package metadata including repository URL, which can be cross-referenced with
server.jsonfields.For
mcpNameverification, Cargo.toml supports[package.metadata]for custom fields:Use case
I maintain 5 MCP servers across npm (3), PyPI (1), and crates.io (1). The Rust server (rust-faf-mcp) is the only one that can't be listed via its native package registry. Currently the workaround is MCPB binary packaging, but native crates.io support would be cleaner and consistent with how npm/PyPI are handled.
Ecosystem size
rmcp(official, 1.1+),rust-mcp-sdk(87k downloads)