Rust文档访问服务

一个通过Model Context Protocol(MCP)为AI助手提供Rust crate文档访问的服务,支持浏览crate结构、阅读详细文档、全文搜索和查询实现等功能。

  • by dmvk
  • Rust
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 dmvk/docsrs-mcp

使用说明

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

版本解析

当您在不指定版本的情况下调用工具时,服务器会自动解析它:

  1. 显式版本 --如果你通过 version,按原样使用
  2. 货锁 --服务器查找 Cargo.lock 在工作目录(和父目录)中,并使用在那里找到的版本
  3. 最新 --如果找不到版本,则从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 查看详细明细。

贡献

  1. 克隆该仓库
  2. 创建要素分支
  3. 确保您的更改通过:
    cargo fmt --all --check
    cargo clippy --all-targets
    cargo test
    
  4. 打开拉取请求

许可证

Apache-2.0--参见 许可证 了解详情。