rs docsrs mcp
一种模型上下文协议(MCP)服务器 docs.rs -使AI助手能够搜索和获取Rust crate文档。
 ](https://www.npmjs.com/package/rs-docsrs-mcp) 
特性
- 🔍 搜索板条箱:在docs.rs上按名称或关键字搜索Rust板条箱
- 📦 板条箱信息:获取特定板条箱的详细信息
- 📚 文档访问:获取特定模块、结构、函数等的文档
- 📑 模块列表:列出机箱中的所有模块、结构、枚举、函数、特征和宏
- 📖 README访问:检索板条箱README和元数据
- 📋 版本历史记录:列出机箱的所有可用版本
- 🔄 反向依赖关系:查找哪些板条箱依赖于特定板条箱
- 📊 下载统计数据:从crates.io获取下载统计信息
- 🎯 商品搜索:搜索板条箱内的特定物品类型
- 🔗 源链接:获取存储库和源代码链接
- ⚙️ 功能发现:查找机箱功能和配置选项
- 📦 直接依赖关系:获取crate的所有依赖项
- 👥 板条箱所有者:获取板条箱维护人员和所有者
- 🦀 Rustdoc搜索:在所有板条箱中搜索符号或类型
- 📅 发布历史:获取包含日期的板条箱发布历史记录
- 🔍 特性实现:查找一个trait的所有实现
- 💻 源代码:查看任何项目的源代码
- 🏷️ 关键词/分类:获取crate关键字和类别
- 📄 许可证信息:获取机箱许可证信息
- ⚖️ 版本比较:比较两个版本之间的项目
安装
通过npm全局安装:
npm install -g rs-docsrs-mcp或者与npx一起使用:
npx rs-docsrs-mcp使用Claude Desktop
添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"docsrs": {
"command": "npx",
"args": ["-y", "rs-docsrs-mcp"]
}
}
}如果全局安装:
{
"mcpServers": {
"docsrs": {
"command": "rs-docsrs-mcp"
}
}
}可用工具
1. docs_rs_search
在docs.rs上搜索板条箱。
参数:
query(字符串,必填):要搜索的板条箱名称或关键字limit(数字,可选):最大结果数(1-50,默认值:10)
例子:
{
"query": "tokio",
"limit": 5
}2. docs_rs_crate_home
获取特定机箱的主页信息。
参数:
crate(字符串,必填):板条箱名称
例子:
{
"crate": "tokio"
}3. docs_rs_get_doc
获取机箱中特定路径的文档。
参数:
crate(字符串,必填):板条箱名称version(字符串,可选):版本(默认:“latest”)path(字符串,可选):文档路径(例如,“tokio/runtime/index.html”)
示例:
{
"crate": "tokio",
"version": "latest",
"path": "tokio/runtime/struct.Runtime.html"
}{
"crate": "serde",
"path": "serde/trait.Serialize.html"
}4. docs_rs_list_modules
列出机箱中的所有模块和项目。
参数:
crate(字符串,必填):板条箱名称version(字符串,可选):版本(默认:“latest”)
例子:
{
"crate": "tokio",
"version": "1.35.0"
}退货:
modules:带说明的模块列表structs:结构列表enums:枚举列表functions:功能列表traits:特征列表macros:宏列表
5. docs_rs_get_readme
获取板条箱的README和元数据。
参数:
crate(字符串,必填):板条箱名称version(字符串,可选):版本(默认:“latest”)
例子:
{
"crate": "tokio"
}6. docs_rs_list_versions
列出机箱的所有可用版本。
参数:
crate(字符串,必填):板条箱名称
例子:
{
"crate": "tokio"
}退货:
versions:版本字符串数组(降序排列)latest_url:最新版本文档的URL
7. docs_rs_get_reverse_deps
获取反向依赖关系(哪些crate依赖于此crate)。
参数:
crate(字符串,必填):板条箱名称
例子:
{
"crate": "tokio"
}8. docs_rs_get_downloads
从crates.io获取板条箱的下载统计数据。
参数:
crate(字符串,必填):板条箱名称
例子:
{
"crate": "tokio"
}退货:
downloads:对象all(总计)和recent下载计数latest_version:最新版本号created_at,updated_at:时间戳
9. docs_rs_search_items
在板条箱内搜索特定的物品类型。
参数:
crate(字符串,必填):板条箱名称version(字符串,可选):版本(默认:“latest”)item_type(字符串,可选):要筛选的项类型(mod、struct、enum、fn、trait、宏、类型、常量)
例子:
{
"crate": "tokio",
"item_type": "trait"
}退货:
items:包含名称、种类、描述和路径的项数组
10. docs_rs_get_source_link
获取crate的源代码链接和存储库信息。
参数:
crate(字符串,必填):板条箱名称version(字符串,可选):版本(默认:“latest”)
例子:
{
"crate": "serde"
}退货:
repository:GitHub/GitLab存储库URLsource_url:直接源代码链接download_url:板条箱下载URL
11. docs_rs_get_features
获取机箱功能和配置选项。
参数:
crate(字符串,必填):板条箱名称version(字符串,可选):版本(默认:“latest”)
例子:
{
"crate": "tokio",
"version": "1.35.0"
}退货:
features:要素名称数组has_features:布尔值,指示是否找到特征
12. docs_rs_get_dependencies
获取crate的直接依赖关系。
参数:
crate(字符串,必填):板条箱名称version(字符串,可选):版本(默认:“latest”)
例子:
{
"crate": "tokio",
"version": "1.35.0"
}13. docs_rs_get_owners
从crates.io获取板条箱所有者和维护人员。
参数:
crate(字符串,必填):板条箱名称
例子:
{
"crate": "serde"
}14. docs_rs_search_rustdoc
在板条箱中搜索rustdoc以查找符号或类型。
参数:
query(字符串,必填):搜索符号或类型查询limit(数字,可选):最大结果(默认值:10)
例子:
{
"query": "Runtime",
"limit": 5
}15. docs_rs_get_releases
获取包含日期的板条箱发布历史记录。
参数:
crate(字符串,必填):板条箱名称limit(数字,可选):最大释放量(默认值:20)
例子:
{
"crate": "tokio",
"limit": 10
}16. docs_rs_get_trait_impls
在crate中查找trait的所有实现。
参数:
crate(字符串,必填):板条箱名称trait_name(字符串,可选):要搜索的特征的名称version(字符串,可选):版本(默认:“latest”)
例子:
{
"crate": "tokio",
"trait_name": "Future"
}17. docs_rs_get_source_code
获取特定项目的源代码。
参数:
crate(字符串,必填):板条箱名称version(字符串,可选):版本(默认:“latest”)path(字符串,必填):项目的文档路径
例子:
{
"crate": "serde",
"version": "latest",
"path": "serde/ser/trait.Serialize.html"
}18. docs_rs_get_keywords
从crates.io获取crate关键字和类别。
参数:
crate(字符串,必填):板条箱名称
例子:
{
"crate": "actix-web"
}19. docs_rs_get_license
获取机箱许可证信息。
参数:
crate(字符串,必填):板条箱名称
例子:
{
"crate": "tokio"
}20. docs_rs_compare_versions
比较板条箱的两个版本。
参数:
crate(字符串,必填):板条箱名称version1(string,必填):要比较的第一个版本version2(string,必填):要比较的第二个版本
例子:
{
"crate": "tokio",
"version1": "1.30.0",
"version2": "1.35.0"
}退货:
version1_items:版本1的项目计数version2_items:版本2的项目计数comparison:每种项目类型的差异
查询示例
配置后,您可以询问Claude:
- “搜索HTTP客户端板条箱”
- “显示tokio运行时文档”
- “列出serde机箱中的所有模块”
- “获取actix web的README”
- “tokio中有哪些结构?”
发展
克隆存储库:
git clone https://github.com/lazhenyi/rs-docsrs-mcp.git
cd rs-docsrs-mcp
npm install在本地运行:
npm start需求
- Node.js>=20.0.0
运作原理
此MCP服务器从docs.rs中抓取文档,以提供有关Rust crates的结构化信息。它使用:
- 再见:用于HTML解析
- 节点获取:对于HTTP请求
- @模型上下文协议/sdk:用于MCP协议实施
- zod:用于参数验证
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
链接
支持
如果您遇到任何问题或有疑问,请 打开一个问题 在GitHub上。
