docsrs-mcp
   
一个MCP服务器,允许AI助手从以下位置访问Rust crate文档 docs.rs.将其指向任何板条箱,并获取完整的API文档、类型签名、特征impl和搜索-所有这些都通过 模型上下文协议.
特性
- 浏览机箱结构 --列出任何机箱中的模块、类型、函数和其他项目
- 阅读详细文档 --获取完整的文档、类型签名、结构字段和枚举变量
- 跨项目搜索 --通过模糊匹配对项目名称和文档注释进行全文搜索
- 探索实施方案 --查找任何类型的trait实现和固有方法
- 自动版本解析 --检测项目中的版本
Cargo.lock,或回退到最新 - 广泛的格式兼容性 --通过自动规范化处理rustdoc JSON格式版本53–57+
工具
| 工具 | 说明 |
|---|---|
lookup_crate_items | 列出机箱或模块中的项目——使用此选项探索机箱结构 |
lookup_item | 获取特定项目的详细文档,包括签名、字段和方法 |
search_crate | 在项目名称和文档中进行全文搜索 |
lookup_impl_block | 查找类型的trait实现和固有方法 |
所有工具均接受 crate_name (必填)以及 version (可选,自动解析)。
安装
从crates.io安装:
cargo install docsrs-mcp或者从源代码构建:
git clone https://github.com/dmvk/docsrs-mcp.git
cd docsrs-mcp
cargo build --release二进制文件将位于 target/release/docsrs-mcp.
配置
克劳德桌面
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"rust-docs": {
"command": "/path/to/docsrs-mcp"
}
}
}克劳德代码
claude mcp add rust-docs /path/to/docsrs-mcp通用MCP客户端
服务器使用 stdio传输 --启动二进制文件并通过stdin/stdout进行通信。日志将转到stderr。
环境变量
| 变量 | 描述 |
|---|---|
RUST_LOG | 日志级过滤器(例如。 debug, info, trace).违约: info |
版本解析
当您在不指定版本的情况下调用工具时,服务器会自动解析它:
- 显式版本 --如果你通过
version,按原样使用 - 货锁 --服务器查找
Cargo.lock在工作目录(和父目录)中,并使用在那里找到的版本 - 最新 --如果找不到版本,则从docs.rs获取最新版本
这意味着,如果从项目目录运行服务器,它会自动使用项目所依赖的相同机箱版本。
用法示例
“什么类型的 serde 板条箱出口?"呼叫 lookup_crate_items 随着 crate_name: "serde" 列出顶级项目。
“给我看文档 tokio::sync::Mutex"呼叫 lookup_item 随着 crate_name: "tokio" 和 item_path: "sync::Mutex".
“搜索 reqwest 与Cookie相关的任何内容”呼叫 search_crate 随着 crate_name: "reqwest" 和 query: "cookies".
“什么特质 Vec 实施?"呼叫 lookup_impl_block 随着 crate_name: "std" 和 item_path: "vec::Vec".
建筑
docs.rs ──HTTP──► fetcher ──► parser ──► index ──► render ──► MCP response
(zstd) (items) (search) (markdown)看 docs/architecture.md 查看详细明细。
贡献
- 克隆该仓库
- 创建要素分支
- 确保您的更改通过:
cargo fmt --all --check
cargo clippy --all-targets
cargo test- 打开拉取请求
许可证
Apache-2.0--参见 许可证 了解详情。
