rust-sdk
modelcontextprotocol/rust-sdk加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

如果你给大模型接过工具,八成踩过同一个坑:协议文档写得很清楚,但每次自己撸 JSON-RPC 消息体、自己处理会话、自己做 OAuth 授权、自己管 SSE 重连,代码写完还要祈祷客户端能正常握手。modelcontextprotocol/rust-sdk(crates 上叫 rmcp)就是来解决这件事的——它是 MCP 官方组织维护的 Rust 实现,把 Model Context Protocol 的全部语义沉淀成一套可复用的库。

MCP(Model Context Protocol)本质是一套 JSON-RPC 2.0 协议,规定 AI 应用如何发现并调用外部工具、资源和提示词。规范本身与语言无关,但每种语言都得自己造轮子。rmcp 的定位就是那个"Rust 造好的轮子":
2026-07-28 规范,同时向下兼容 2025-11-25 及更早版本;当前 crate 版本 rmcp 3.8.0。rmcp-macros 过程宏,可用 #[tool] / #[tool_router] 之类注解自动生成工具注册与 JSON Schema。这就好比电气领域的"标准插座":协议是插座规格,rmcp 是已经做好的插头,不用每次自己接线。

这一轮规范更新相当激进,rmcp 3.0 是配套的大版本:
| 新能力 | 说明 |
|---|---|
| 无状态发现 | 移除 initialize 握手,改为 server/discover 协商协议版本 |
| 传输无关订阅 | subscriptions/listen 取代旧的 resources/subscribe |
| 长时间任务 | Tasks 扩展(SEP-2663),长耗时工具调用可返回任务句柄供客户端轮询 |
| 响应缓存 | 服务端下发 ttlMs/cacheScope 缓存提示,客户端自动按 TTL 缓存(SEP-2549) |
| 多轮请求 | MRTR(SEP-2322),tools/call 可返回"需要补充输入"的中间结果 |
| 标准 HTTP 头 | Mcp-Method/Mcp-Name/Mcp-Param-*,让网关无需解析 body 即可路由 |
从 2.x 升级到 3.x 是破坏性变更:会话模型改为无状态、stateful_mode 更名为 legacy_session_mode、最低 Rust 版本抬到 1.88。官方为此专门写了迁移指南 Discussion #969。
MCP 官方有一套 SDK 分级审计(SEP-1730)。仓库里的 ROADMAP.md 显示 Rust SDK 的 Tier 1 要求已全部达成:
2025-11-25 与 2026-07-28 两个版本套件均 100% 通过(30/30 场景)。VERSIONING.md、DEPENDENCY_POLICY.md、ROADMAP.md、SECURITY.md。-D warnings,含逐 feature 的 cargo-hack 校验)、semver-checks、CodeQL、Scorecard、commitlint。仓库共 223 个 Rust 源文件、117 个测试文件,并维护独立的 conformance/ 套件与官方 @modelcontextprotocol/conformance 测试基线对齐。

门槛在 Rust 侧,而不是协议侧:
cargo add rmcp --features server,客户端侧用 --features client。功能全部走 Cargo feature 开关(transport-streamable-http-server、auth、schemars、macros 等),编译期按需裁剪。MyServer.serve(stdio()).await?,继承 ServerHandler 实现 call_tool 即可。examples/ 下的 counter、calculator、memory、oauth、task 等 30+ 个示例。resultType 判别字段、InputRequiredResult 新枚举都要求 handler 返回类型变宽,手写 handler 的用户必须同步改造。2024-11-05 时代的客户端无法直连,需要代理层过渡。serve_stale_on_error 在重新拉取失败时返回过期缓存并包装成 Ok,调用方可能看不到真实错误,需显式关闭。request-state 的 HMAC 封存配置。
MCP 正在成为 AI 工具互联的事实标准,各语言 SDK 的成熟度直接决定了协议的落地速度。官方自维护、多角色、conformance 全绿的 Rust 实现,意味着 Rust 社区可以用类型系统级别的严谨性接入 MCP——这在强调可组合性与长期维护的基础设施型 AI 服务中很关键。它同时也是"SDK 分级审计"这套治理机制的样板:官方用可量化的 conformance 分数约束各家实现,而不是任由生态自由生长。

如果你的团队用 Rust 构建 AI Agent 或 MCP 服务,rmcp 基本是目前最省心的选择:协议细节全覆盖、有官方维护、有迁移文档、有 conformance 保障。唯一需要做足功课的地方是 2.x → 3.x 的升级改造,以及把库嵌入自研框架时合理裁剪 feature 组合以控制编译时间。