Skip to content

🦀 MCP Docs.rs Tool - AI-powered tool for browsing Rust crate documentation on docs.rs | 基于 MCP 的 Rust crate 文档浏览工具

Notifications You must be signed in to change notification settings

shuakami/mcp-docsrs

Repository files navigation

Docs.rs MCP 工具

ISC License Node.js TypeScript Docs.rs

English Version (README-EN.md)

这是什么

这是一个基于 MCP (Model Context Protocol) 的 Docs.rs 工具,它能让 AI 模型在不离开开发环境的情况下,深度访问 Rust Crate 的文档。

简单来说,它让 AI 助手能够成为一个专业的 Rust 开发伙伴,帮助你执行各种文档查询操作,如搜索 crate、检查 API 定义、查看功能标志、获取代码示例等,从而极大地提升了编码和学习效率。

支持的功能 (点击展开)
  • Crate 搜索: 在 crates.io 上按名称搜索 crate。
  • Crate 信息查询: 获取特定 crate 的元数据、模块列表和最新版本信息。
  • Feature Flag 列表: 展示一个 crate 所有的可用功能标志 (feature flags)。
  • Crate 内全局搜索: 在指定 crate 的所有文档中进行高效的全文搜索。
  • 全面的 API 定义查看: 不仅能获取函数、结构体的定义,还完美支持对复杂类型别名FFI 类型以及标准库 (std, core, alloc) 的查询。
  • 准确的代码示例获取: 查找并展示特定 API 的使用示例,同样支持标准库。
功能特点 (点击展开)

以下是 Docs.rs MCP 工具的一些核心特点:

  • 沉浸式文档体验:所有操作都在编辑器内完成,无需跳转浏览器,保持开发流程的连贯性。
  • 高效的内部搜索与查找: 通过在内存中解析 all.html 构建搜索索引,实现了对 crate 内部文档的快速、准确的全局搜索,并能完美处理类型别名、重导出等复杂情况
  • 广泛的兼容性: 经过大量测试,确保了对 docs.rs 上绝大多数库的稳定支持,包括对标准库的特殊适配。
  • 智能缓存机制:对 API 请求和解析后的数据进行缓存,显著提升重复查询的速度。
  • 分页支持:对于模块、搜索结果等长列表,支持分页浏览,避免信息过载。
  • Markdown 格式化输出:将原始的 HTML 文档转换为格式优美的 Markdown,提升了代码片段和文档的可读性
  • 稳定可靠:通过直接与 crates.io 和 docs.rs 交互,确保获取的信息是最新的官方文档。

通过简单的自然语言指令,AI 可以帮助你完成上述所有操作,成为你学习和使用 Rust 生态库的得力助手。

快速上手

0. 环境准备

如果你之前没有使用过 Node.js (点击展开)
  1. 安装 Node.js 和 npm

    • 访问 Node.js 官网
    • 下载并安装 LTS(长期支持)版本(推荐 18.x 或更高版本)
    • 安装时选择默认选项即可,安装包会同时安装 Node.js 和 npm
  2. 安装 pnpm(推荐)

    • 本项目使用 pnpm 进行包管理,它能更高效地管理依赖。
    • 打开命令提示符(CMD)或 PowerShell,输入以下命令进行安装:
      npm install -g pnpm
  3. 验证安装

    • 安装完成后,打开新的终端窗口
    • 输入以下命令确认安装成功:
      node --version
      pnpm --version
    • 如果显示版本号,则表示安装成功
  4. 安装 Git(如果尚未安装)

    • 访问 Git 官网
    • 下载并安装 Git
    • 安装时使用默认选项即可

1. 克隆并安装

git clone https://github.com/shuakami/mcp-docsrs.git
cd mcp-docsrs
pnpm install

2. 构建项目

pnpm build

3. 添加到 Cursor MCP 配置

根据你的操作系统,按照以下步骤配置 MCP:

Windows 配置 (点击展开)
  1. 在 Cursor 中,打开或创建 MCP 配置文件:C:\\Users\\你的用户名\\.cursor\\mcp.json

    • 注意:请将 你的用户名 替换为你的 Windows 用户名
  2. 添加或修改配置如下:

{
  "mcpServers": {
    "docsrs-mcp": {
      "command": "pythonw",
      "args": [
        "run_mcp.py"
      ],
      "cwd": "C:/Users/你的用户名/mcp-docsrs"
    }
  }
}

⚠️ 请注意:

  • 你的用户名 替换为你的 Windows 用户名
  • 确保 cwd 路径正确指向你克隆的项目目录
  • 不要删除克隆的文件夹,这会导致 MCP 无法正常工作
macOS 配置 (点击展开)
  1. 在 Cursor 中,打开或创建 MCP 配置文件:/Users/你的用户名/.cursor/mcp.json

    • 注意:请将 你的用户名 替换为你的 macOS 用户名
  2. 添加或修改配置如下:

{
  "mcpServers": {
    "docsrs-mcp": {
      "command": "python",
      "args": [
        "run_mcp.py"
      ],
      "cwd": "/Users/你的用户名/mcp-docsrs"
    }
  }
}

⚠️ 请注意:

  • 你的用户名 替换为你的 macOS 用户名
  • 确保 cwd 路径正确指向你克隆的项目目录
  • 不要删除克隆的文件夹,这会导致 MCP 无法正常工作
Linux 配置 (点击展开)
  1. 在 Cursor 中,打开或创建 MCP 配置文件:/home/你的用户名/.cursor/mcp.json

    • 注意:请将 你的用户名 替换为你的 Linux 用户名
  2. 添加或修改配置如下:

{
  "mcpServers": {
    "docsrs-mcp": {
      "command": "python",
      "args": [
        "run_mcp.py"
      ],
      "cwd": "/home/你的用户名/mcp-docsrs"
    }
  }
}

⚠️ 请注意:

  • 你的用户名 替换为你的 Linux 用户名
  • 确保 cwd 路径正确指向你克隆的项目目录
  • 不要删除克隆的文件夹,这会导致 MCP 无法正常工作

4. 启动服务

配置好之后,重启 Cursor 编辑器,它会自动启动 MCP 服务。然后你就可以开始使用了。

使用示例 (点击展开)

你可以要求 AI 执行以下操作:

  • "帮我搜索一个叫 tokio 的 Rust crate"
  • "看看 tokio 这个 crate 的信息和模块列表"
  • "列出 serde 这个 crate 的所有 feature flags"
  • "在 russh crate 的文档里搜索 server"
  • "给我看看 tokio::sync::Mutex 的 API 文档"
  • "有 tokio::fs::File 的使用例子吗?"

工作原理

技术实现细节 (点击展开)

本工具基于 MCP (Model Context Protocol) 标准实现,作为 AI 模型与 Docs.rs 服务之间的桥梁。它通过模拟浏览器行为来获取和解析文档数据。

主要技术组件包括:

  • HTTP 客户端: 使用 axios 发送网络请求到 crates.iodocs.rs
  • HTML 解析器: 使用 cheerio 在服务器端解析返回的 HTML 文档,提取所需信息。
  • 数据校验: 使用 Zod 对工具的输入参数进行严格的类型校验和验证。
  • 内存搜索引擎: 对于“Crate 内搜索”功能,工具会下载目标 crate 的 all.html 文件,在内存中解析并构建一个可供搜索的条目索引,以实现高效的即时搜索。
  • 缓存层: 实现了一个可配置的内存缓存(默认10分钟),用于缓存网络请求和解析结果,避免对同一资源进行重复请求,提升响应速度。
  • Markdown 转换: 使用 turndown 将解析出的 HTML 内容转换为 AI 更易于理解和呈现的 Markdown 格式。

许可证

ISC


如果这个项目对你有帮助,欢迎给个 Star ⭐️ (。♥‿♥。)

About

🦀 MCP Docs.rs Tool - AI-powered tool for browsing Rust crate documentation on docs.rs | 基于 MCP 的 Rust crate 文档浏览工具

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published