rust-sdk
This is the official Rust implementation of the Model Context Protocol, published as the `rmcp` crate on crates.io on top of the tokio async runtime. The repository has two crates: `rmcp`, the core protocol implementation, and `rmcp-macros`, a procedural macro crate that generates tool implementations. The README says the SDK implements the stable MCP 2026-07-28 specification while staying compatible with 2025-11-25 and earlier, and it points to a migration guide for 3.x breaking changes.
The README is long and works as a feature reference: building clients and servers, tools, resources, prompts, sampling, elicitation, roots, logging, completions, notifications, subscriptions, long-running tasks, caching, pagination, JSON Schema 2020-12 and OAuth support. Transports are chosen with Cargo features: stdio, a child-process client transport, streamable HTTP for server (a Tower service you can mount on an axum-style router) and client (built on reqwest), and an in-process worker transport for testing. To start, run `cargo add rmcp --features server`.
Features
Why choose it
Trade-offs
Maintenance check
- Last commit
- 2026-10-26
- Commits, last 90 days
- 100+
- Releases, last 90 days
- 30
- Latest release
- rmcp-v3.8.0 (2026-10-26)
- Open issues
- 70
- Recent issues with at least one comment
- 19/19
Oldest week on the left; the latest four weeks are orange. Source: GitHub commit activity.
Status rule: archived on GitHub = Archived; last commit within 90 days = Active; 91 to 365 days = Slowing; older = Stale. All figures come from the GitHub API on the date shown.
Most discussed open issues
- #1092 #[tool] async method fails to compile (FnOnce not general enough) when its call tree uses |x: &T| async move {} closures (e.g. stream::iter(5 comments · 2026-07-30
- #388 Feature request: native Rate Limiting (MCP spec compliance)5 comments · 2025-08-25
- #1373 Streamable HTTP client: update the stored endpoint URI after a 3084 comments · 2026-10-16
- #1389 reqwest Streamable HTTP client matches response Content-Type by case-sensitive prefix2 comments · 2026-10-23
- #1374 outputSchema is generated for the deserialize contract; tool results are serialised2 comments · 2026-10-17
Issue titles are quoted from GitHub. Open the link to check whether a problem still applies to the version you use.
Compatibility
Quick start
Use cases
Alternatives
Comments
No comments yet. Be the first!