M
modelcontextprotocol/rust-sdk
The official Rust SDK for the Model Context Protocol
在 GitHub 查看 ↗链接已于 2026-11-12 核查 · HTTP 200 · 打开的是厂商自己的官网
安装与配置
客户端配置(取自该仓库的安装命令)
{
"mcpServers": {
"modelcontextprotocol-rust-sdk": {
"command": "npx",
"args": ["@modelcontextprotocol/inspector"]
}
}
}解析自我们于 2026-11-05 抓取的该仓库 README;我们未执行过。
command/args 来自仓库写明的安装命令;不确定时请以该项目 README 为准。
VS Code(.vscode/mcp.json —— 键名是 servers)
{
"servers": {
"modelcontextprotocol-rust-sdk": {
"command": "npx",
"args": ["@modelcontextprotocol/inspector"]
}
}
}VS Code 顶层键是 <code>servers</code>,其余与上面那份相同。
Claude Code(命令行)
claude mcp add --transport stdio modelcontextprotocol-rust-sdk -- npx @modelcontextprotocol/inspector
Claude Code 不收 JSON 文件,用这条命令直接加。
配置项的键名以你的客户端为准:客户端与 CLI
- 来源明细
- 收录自 abordage/awesome-mcp 榜单(我们从中收集的条目之一) · 条目类型:MCP 服务
- 收录与活跃
- 收录于 2026-11-05 · 最近见到 2026-11-14 · 共见到 10 次 · 被 10 个来源列出
- 评分构成
- 综合分 1,003 · 10 个来源 · mcp
- 安装
npx @modelcontextprotocol/inspector
常见问题(答案都来自我们的记录)
怎么安装?
该仓库给出的安装命令是
npx @modelcontextprotocol/inspector。我们的记录里它是仓库自己提供的;不保证在你的客户端上直接可用。它适合谁 / 用来做什么?
我们把它归在这些标签下: MCP 服务。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
我们收录于 2026-11-05;最近见到 2026-11-14。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。
# RMCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
An official Rust Model Context Protocol SDK implementation with tokio async runtime.
> Migrating to 3.x? See the migration guide for breaking changes and upgrade instructions.
This repository contains the following crates:
rmcp: The core crate providing the RMCP protocol implementation - see rmcp
rmcp-macros: A procedural macro crate for generating RMCP tool implementations - see rmcp-macros
This SDK implements the stable MCP 2026-07-28 specification while
remaining fully compatible with the 2025-11-25 release and earlier
versions. Features introduced in 2026-07-28 — server discovery & negotiation,
transport-neutral subscriptions, long-running tasks, response caching,
multi-round-trip requests, and standard HTTP routing headers — are documented
below. For the full MCP specification, see
modelcontextprotocol.io.
## Table of Contents
Usage
Tools
Resources
Prompts
Sampling
Elicitation
Roots
Logging
Completions
Notifications
Subscriptions
Multi-Round-Trip Requests
Tasks
Caching
Standard HTTP Headers
Stateless Streamable HTTP
Transports
Pagination
Capability & Protocol Version Negotiation
JSON Schema 2020-12
Examples
OAuth Support
Related Resources
Related Projects
Development
## Usage
### Import the crate
Add the latest published version with cargo:
sh
cargo add rmcp --features server
Or use the dev channel:
sh
cargo add rmcp --features server --git https://github.com/modelcontextprotocol/rust-sdk --branch main
### Third Dependencies
Basic dependencies:
tokio
serde
Json Schema generation (version 2020-12):
schemars
### Build a Client
Start a client
rust, ignore
use rmcp::{ServiceExt, transport::{TokioChildProcess, ConfigureCommandExt}};
use tokio::process::Command;
#[tokio::main]
async fn main() -> Result > {
let client = ().serve(TokioChildProcess::new(Command::new("npx").configure(|cmd| {
cmd.arg("-y").arg("@modelcontextprotocol/server-everything");
}))?).await?;
Ok(())
### Client lifecycle modes
serve() uses the legacy MCP lifecycle: the client sends initialize, receives
the negotiated server information, and then sends notifications/initialized.
Use ClientServiceExt::servewithlifecycle to
select another lifecycle explicitly:
rust, ignore
use rmcp::{ClientLifecycleMode, ClientServiceExt, ProtocolVersion, model::ClientConfig};
// Start directly with server/discover and include client metadata on every request.
let client = ClientConfig::default()
.servewithlifecycle(
transport,
ClientLifecycleMode::Discover {
preferredversions: vec![ProtocolVersion::V20260728],
},
.await?;
// Or probe the discover lifecycle and fall back when a legacy server reports
// that server/discover is not implemented or does not respond within 10 seconds.
let client = ClientConfig::default()
.servewithlifecycle(
transport,
ClientLifecycleMode::Auto {
preferredversions: vec![ProtocolVersion::V20260728],
legacyversion: Some(ProtocolVersion::V20251125),
},
.await?;
ClientLifecycleMode::Initialize is equivalent to the existing serve() behavior.
Discover startup does not send notifications/initialized; discovery completes
startup, and each subsequent request carries its protocol version, client
information, and capabilities in meta.
### Build a Server
Build a transport
rust, ignore
use tokio::io::{stdin, stdout};
> Migrating to 3.x? See the migration guide for breaking changes and upgrade instructions.
This repository contains the following crates:
rmcp: The core crate providing the RMCP protocol implementation - see rmcp
rmcp-macros: A procedural macro crate for generating RMCP tool implementations - see rmcp-macros
This SDK implements the stable MCP 2026-07-28 specification while
remaining fully compatible with the 2025-11-25 release and earlier
versions. Features introduced in 2026-07-28 — server discovery & negotiation,
transport-neutral subscriptions, long-running tasks, response caching,
multi-round-trip requests, and standard HTTP routing headers — are documented
below. For the full MCP specification, see
modelcontextprotocol.io.
## Table of Contents
Usage
Tools
Resources
Prompts
Sampling
Elicitation
Roots
Logging
Completions
Notifications
Subscriptions
Multi-Round-Trip Requests
Tasks
Caching
Standard HTTP Headers
Stateless Streamable HTTP
Transports
Pagination
Capability & Protocol Version Negotiation
JSON Schema 2020-12
Examples
OAuth Support
Related Resources
Related Projects
Development
## Usage
### Import the crate
Add the latest published version with cargo:
sh
cargo add rmcp --features server
Or use the dev channel:
sh
cargo add rmcp --features server --git https://github.com/modelcontextprotocol/rust-sdk --branch main
### Third Dependencies
Basic dependencies:
tokio
serde
Json Schema generation (version 2020-12):
schemars
### Build a Client
Start a client
rust, ignore
use rmcp::{ServiceExt, transport::{TokioChildProcess, ConfigureCommandExt}};
use tokio::process::Command;
#[tokio::main]
async fn main() -> Result > {
let client = ().serve(TokioChildProcess::new(Command::new("npx").configure(|cmd| {
cmd.arg("-y").arg("@modelcontextprotocol/server-everything");
}))?).await?;
Ok(())
### Client lifecycle modes
serve() uses the legacy MCP lifecycle: the client sends initialize, receives
the negotiated server information, and then sends notifications/initialized.
Use ClientServiceExt::servewithlifecycle to
select another lifecycle explicitly:
rust, ignore
use rmcp::{ClientLifecycleMode, ClientServiceExt, ProtocolVersion, model::ClientConfig};
// Start directly with server/discover and include client metadata on every request.
let client = ClientConfig::default()
.servewithlifecycle(
transport,
ClientLifecycleMode::Discover {
preferredversions: vec![ProtocolVersion::V20260728],
},
.await?;
// Or probe the discover lifecycle and fall back when a legacy server reports
// that server/discover is not implemented or does not respond within 10 seconds.
let client = ClientConfig::default()
.servewithlifecycle(
transport,
ClientLifecycleMode::Auto {
preferredversions: vec![ProtocolVersion::V20260728],
legacyversion: Some(ProtocolVersion::V20251125),
},
.await?;
ClientLifecycleMode::Initialize is equivalent to the existing serve() behavior.
Discover startup does not send notifications/initialized; discovery completes
startup, and each subsequent request carries its protocol version, client
information, and capabilities in meta.
### Build a Server
Build a transport
rust, ignore
use tokio::io::{stdin, stdout};
收录徽章(可选)
想把收录标记放进 README 就复制这行,可选,不影响收录。
[](https://anclum.com/zh/s/modelcontextprotocol-rust-sdk/)
- 来源
- awesome · https://github.com/modelcontextprotocol/rust-sdk
- 按领域浏览
- MCP 服务
- 收录来源
- 10 个独立来源
- 收录于
- 今天
同类推荐
所属领域与标签
每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。