* docs: add prose documentation for core features to meet conformance * docs: remove static coverage badge and svg * docs: rewrite Chinese README to match current English README |
||
|---|---|---|
| .. | ||
| README.zh-cn.md | ||
RMCP
一个基于 tokio 异步运行时的官方 Rust Model Context Protocol SDK 实现。
本仓库包含以下 crate:
- rmcp:实现 RMCP 协议的核心库 - 详见 rmcp
- rmcp-macros:用于生成 RMCP 工具实现的过程宏库 - 详见 rmcp-macros
使用
导入
rmcp = { version = "0.16.0", features = ["server"] }
## 或使用最新开发版本
rmcp = { git = "https://github.com/modelcontextprotocol/rust-sdk", branch = "main" }
第三方依赖
基本依赖:
构建客户端
启动客户端
use rmcp::{ServiceExt, transport::{TokioChildProcess, ConfigureCommandExt}};
use tokio::process::Command;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = ().serve(TokioChildProcess::new(Command::new("npx").configure(|cmd| {
cmd.arg("-y").arg("@modelcontextprotocol/server-everything");
}))?).await?;
Ok(())
}
构建服务端
构建传输层
use tokio::io::{stdin, stdout};
let transport = (stdin(), stdout());
启动服务端
// 此调用将完成初始化过程
let server = service.serve(transport).await?;
与服务端交互
服务端初始化完成后,你可以发送请求或通知:
// 请求
let roots = server.list_roots().await?;
// 或发送通知
server.notify_cancelled(...).await?;
等待服务停止
let quit_reason = server.waiting().await?;
// 或将其取消
let quit_reason = server.cancel().await?;
示例
查看 examples。
功能文档
查看 docs/FEATURES.md 了解核心 MCP 功能的详细文档:资源、提示词、采样、根目录、日志、补全、通知和订阅。
OAuth 支持
查看 OAuth 支持 了解详情。
相关资源
相关项目
扩展 rmcp
- rmcp-actix-web - 基于
actix_web的rmcp后端 - rmcp-openapi - 将 OpenAPI 定义的端点转换为 MCP 工具
基于 rmcp 构建
- goose - 一个超越代码建议的开源、可扩展 AI 智能体
- apollo-mcp-server - 通过 Apollo GraphOS 将 AI 智能体连接到 GraphQL API 的 MCP 服务
- rustfs-mcp - 为 AI/LLM 集成提供 S3 兼容对象存储操作的高性能 MCP 服务
- containerd-mcp-server - 基于 containerd 实现的 MCP 服务
- rmcp-openapi-server - 将 OpenAPI 定义的端点暴露为 MCP 工具的高性能 MCP 服务
- nvim-mcp - 与 Neovim 交互的 MCP 服务
- terminator - AI 驱动的桌面自动化 MCP 服务,支持跨平台,成功率超过 95%
- stakpak-agent - 安全加固的 DevOps 终端智能体,支持 MCP over mTLS、流式传输、密钥令牌化和异步任务管理
- video-transcriber-mcp-rs - 使用 whisper.cpp 从 1000+ 平台转录视频的高性能 MCP 服务
- NexusCore MCP - 具有 Frida 集成和隐蔽脱壳功能的高级恶意软件分析与动态检测 MCP 服务
- spreadsheet-mcp - 面向 LLM 智能体的高效 Token 使用的电子表格分析 MCP 服务,支持自动区域检测、重新计算、截图和编辑
- hyper-mcp - 通过 WebAssembly (WASM) 插件扩展功能的快速、安全的 MCP 服务
- rudof-mcp - RDF 验证和数据处理 MCP 服务,支持 ShEx/SHACL 验证、SPARQL 查询和格式转换。支持 stdio 和 Streamable HTTP 传输,具备完整的 MCP 功能(工具、提示词、资源、日志、补全、任务)
开发
贡献指南
查看 docs/CONTRIBUTE.MD 获取贡献提示。
使用 Dev Container
如果你想使用 Dev Container,查看 docs/DEVCONTAINER.md 获取开发指南。