mcp rustdoc
用于浏览Rust crate文档的MCP服务器。废弃docs.rs,doc.rust-lang.org(std/core/alloc)和crates.io API。零HTTP依赖关系--本机 fetch 只有。
工具
| 工具 | 说明 |
|---|---|
get_crate_metadata | 版本、功能、deps、MSRV、链接 |
get_crate_brief | 元数据+概述+模块+集中模块项在一次调用中 |
lookup_crate_docs | 板条箱概述、版本、部分、再出口 |
get_crate_items | 模块中的项目。按类型和特征门过滤 |
lookup_crate_item | 完整的项目文档:签名、弃用、方法、变体、impls、示例。自动发现模块路径 |
list_methods | 带有签名、弃用和简短文档的struct/enum/trait上的所有方法 |
search_crate | 基于Levenshtein模糊回退的排序符号搜索 |
search_crates | 按关键字搜索crates.io |
get_crate_versions | 所有已发布的版本,包括日期和取消状态 |
get_source_code | 来自docs.rs的原始源代码 |
batch_lookup | 一次调用中的多个项目查找(最多20个) |
get_crate_changelog | GitHub发布了一个crate |
resolve_type | 解析类型路径,如下所示 tokio::sync::Mutex 到其文档 |
所有工具都接受可选 version 参数,并用注释 readOnlyHint: true.
安装
npx -y mcp-rustdoc克劳德代码
claude mcp add mcp-rustdoc -- npx -y mcp-rustdocGemini CLI
{ "mcpServers": { "mcp-rustdoc": { "command": "npx", "args": ["-y", "mcp-rustdoc"] } } }OpenAI Codex命令行界面
codex mcp add mcp-rustdoc -- npx -y mcp-rustdoc克劳德桌面
{ "mcpServers": { "mcp-rustdoc": { "command": "npx", "args": ["-y", "mcp-rustdoc"] } } }参数
每个工具都需要 crateName (字符串,必填)和 version (字符串,可选)。附加参数:
| 工具 | 额外参数 |
|---|---|
get_crate_brief | focusModules --逗号分隔的展开模块 |
get_crate_items | modulePath, itemType, feature |
lookup_crate_item | itemType (必填), itemName (必填), modulePath, includeImpls, includeExamples |
list_methods | itemType (必填), itemName (必填), modulePath |
search_crate | query (必填) |
search_crates | query (必填), page, perPage |
get_source_code | path (必填) |
batch_lookup | items (必填)--数组 { itemType, itemName, modulePath? },最多20 |
get_crate_changelog | count --发布次数(默认值5) |
resolve_type | typePath (必填)-例如。 "tokio::sync::Mutex" |
发展
git clone https://github.com/kieled/mcp-rustdoc.git
cd mcp-rustdoc && npm installbun run dev # run with bun (no build)
npm run build # vite build → dist/index.js
npm run typecheck # tsc --noEmit
npm publish # build + publish建筑
- 服务器说明 --在init上发送给客户端的工作流指南
- Markdown输出 --文档注释将代码块保留为围栏标记,内联代码保留为回溯标记
- 再见 --从rustdoc HTML中提取DOM
- 本地获取 —
AbortController超时,请在5xx上回退重试 - LRU缓存 --500个条目,5分钟TTL,15分钟失效,同时重新验证
- 模糊搜索 --精确>前缀>子字符串评分,Levenshtein在没有匹配的情况下回退
- 自动发现 —
lookup_crate_item通过以下方式查找模块路径all.html,对失误的模糊回退 - 可操作的错误 --每个错误都包含一个恢复提示,建议下一步尝试哪个工具
许可证
麻省理工学院
