rustdoc mcp
A. 模型上下文协议(MCP) 服务器,为您的项目依赖关系提供对Rust文档的实时访问。
它允许LLM查询crate文档、搜索项目,并检索结构、函数、特征等的详细文档,所有这些都是通过利用 cargo rustdoc的JSON输出格式。
特性
- 依赖关系发现:列出当前项目中的所有依赖项。
- 按需文档:根据需要使用夜间工具链为板条箱生成文档。
- 搜索:在可用文档中进行模糊搜索。
- 模块探索:浏览模块中的项目。
- 详细文档:检索任何项目的完整Markdown文档。
先决条件
- Rust Nightly工具链:此服务器依赖于来自的实验JSON输出
rustdoc,目前仅在夜间提供。
rustup toolchain install nightly安装
来源
- 克隆存储库:
git clone https://github.com/KevinT3Hu/rustdoc-mcp.git
cd rustdoc-mcp- 构建项目:
cargo build --release二进制文件将在 target/release/rustdoc-mcp.
用法
与Claude Desktop集成
将服务器添加到Claude Desktop配置文件(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上)。
替换 /path/to/rustdoc-mcp 使用构建二进制文件的实际路径。
{
"mcpServers": {
"rustdoc": {
"command": "/path/to/rustdoc-mcp/target/release/rustdoc-mcp",
"args": [
"start",
"--cwd",
"/path/to/your/rust/project"
]
}
}
}*注: --cwd 参数是可选的。如果省略,则默认为流程的当前工作目录,但建议指定目标项目路径。*
可用工具
当服务器运行时,LLM可以使用以下工具:
list_deps:列出当前项目中可用的所有依赖项。list_crate_items:列出特定板条箱的根项目(例如。,std,tokio).search_docs:对与查询匹配的项目执行模糊搜索。get_module:返回特定模块路径中公共项的摘要。get_docs:返回特定项目路径的完整markdown文档(例如。,std::vec::Vec).
工作原理
- 服务器检查
Cargo.toml查找目标项目的依赖关系。 - 当要求为板条箱提供文档时,它会运行
cargo +nightly rustdoc生成JSON文档。 - JSON在内存中缓存和索引,以便快速检索。
- 针对此索引处理查询以返回Markdown格式的文档。
故障排除
- 日志:服务器将日志写入
/tmp/rustdoc-mcp/server.log。如果遇到问题,请检查此文件。要获取更详细的日志,请设置RUST_LOG启动服务器前的环境变量:
export RUST_LOG=debug- 编译错误:由于服务器正在运行
cargo rustdoc,确保您的项目成功编译。
许可证
此项目根据GNU较宽松通用公共许可证v3.0获得许可-请参阅 许可证 文件以获取详细信息。
