项目简介

cargo-doc-mcp 是一个 MCP (Model Context Protocol) 服务器,旨在为大型语言模型(LLM)提供访问 Rust 项目文档的能力。通过此服务器,LLM 可以检索 Rust crate 的文档,查询符号信息,以及搜索文档内容,从而更好地理解和处理 Rust 代码相关的任务。

主要功能点

  • 获取 crate 文档 (get_crate_doc): 获取指定 Rust crate 的主文档页面内容,帮助 LLM 理解 crate 的整体概念和使用方法。例如,当 LLM 遇到 “unresolved import tokio::sync” 这样的问题时,可以使用此工具获取 'tokio' crate 的文档来理解 'tokio::sync' 的上下文。
  • 列出符号 (list_symbols): 列出 crate 文档中所有的符号(如结构体、枚举、trait 等),方便 LLM 探索 crate 的结构和可用类型。这在 LLM 需要实现 trait 或查找特定类型时非常有用。
  • 搜索文档 (search_doc): 在 crate 文档中搜索指定的关键词或符号,帮助 LLM 查找特定的功能、错误信息或使用示例。这可以辅助 LLM 调试编译错误或学习新的 API。
  • 资源访问 (Read Resource): 允许 LLM 通过 'rustdoc://' URI 访问 Rust 文档资源文件,例如直接读取某个文档页面的 Markdown 内容。
  • 文档缓存: 内置文档缓存系统,提升性能,并确保文档在 24 小时内保持更新。

安装步骤

  1. 确保环境: 您的系统需要安装 Node.js (16 或更高版本) 以及 Rust 和 Cargo。
  2. 克隆仓库: 将仓库 'cargo-doc-mcp' 克隆到本地。
  3. 进入目录: 在终端中导航到克隆的仓库目录。
  4. 安装依赖: 运行 'pnpm install' 命令安装项目依赖。
  5. 构建服务器: 运行 'pnpm run build' 命令构建服务器。

服务器配置

要将 'cargo-doc-mcp' 服务器配置到 MCP 客户端,您需要提供服务器的启动命令。以下是一个示例配置,您需要根据实际情况修改 'command' 字段中的路径:

{
  "mcpServers": {
    "docs-rs-mcp": {
      "command": "/absolute/path/to/cargo-doc-mcp/build/index.js" // 将 "/absolute/path/to/cargo-doc-mcp" 替换为 cargo-doc-mcp 仓库在您系统中的绝对路径
    }
  }
}

配置参数说明:

  • 'server name': 'docs-rs-mcp' (服务器名称,用于在 MCP 客户端中标识和引用该服务器)
  • 'command': '/absolute/path/to/cargo-doc-mcp/build/index.js' (MCP 服务器的启动命令,指向构建后的 'index.js' 文件。请务必替换为实际的绝对路径)

基本使用方法

配置完成后,MCP 客户端将能够与 'cargo-doc-mcp' 服务器建立连接。LLM 可以通过以下方式使用服务器提供的功能:

  • 调用工具 (Tools): LLM 可以调用 'get_crate_doc', 'list_symbols', 'search_doc' 等工具,并根据工具的 'inputSchema' 提供相应的参数,例如 'project_path' (Rust 项目的绝对路径) 和 'crate_name' (crate 名称)。服务器将执行相应的操作并返回结果给 LLM。
  • 读取资源 (Resources): LLM 可以使用 'rustdoc://path/to/doc' 格式的 URI 读取 Rust 文档资源。服务器会解析 URI,读取文档内容并返回给 LLM。

例如,在与 LLM 的对话中,如果 LLM 需要了解 'tokio' crate 的文档,它可以调用 'get_crate_doc' 工具,并提供项目路径和 'crate_name: "tokio"' 作为参数。服务器会将 'tokio' crate 的文档内容返回给 LLM,从而帮助 LLM 更好地理解 'tokio' 的使用方法。

调试: 如果遇到问题,可以使用 'pnpm run inspector' 命令启动 MCP Inspector 进行调试。

信息

分类

开发者工具