Skip to content

Support crates.io as a package registry type #1055

@Wolfe-Jam

Description

@Wolfe-Jam

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, and mcpb. 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:

GET https://crates.io/api/v1/crates/{name}/{version}

This returns package metadata including repository URL, which can be cross-referenced with server.json fields.

For mcpName verification, Cargo.toml supports [package.metadata] for custom fields:

[package.metadata]
mcpName = "io.github.username/server-name"

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

  • ~1,800 MCP-related crates on crates.io
  • Major Rust MCP SDKs: rmcp (official, 1.1+), rust-mcp-sdk (87k downloads)
  • Rust MCP servers growing fast — same trajectory npm MCP servers had 6 months ago

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions