项目简介
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 小时内保持更新。
安装步骤
- 确保环境: 您的系统需要安装 Node.js (16 或更高版本) 以及 Rust 和 Cargo。
- 克隆仓库: 将仓库 'cargo-doc-mcp' 克隆到本地。
- 进入目录: 在终端中导航到克隆的仓库目录。
- 安装依赖: 运行 'pnpm install' 命令安装项目依赖。
- 构建服务器: 运行 '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 进行调试。
信息
分类
开发者工具