项目简介

Rust Crate 文档 MCP 服务器是一个轻量级的后端服务,旨在通过简单的 HTTP API,为大型语言模型(LLM)客户端提供 Rust 语言 crate 的文档信息。该服务可以根据 crate 名称,从 docs.rs 网站抓取并返回结构化的文档内容,方便 LLM 理解和利用 Rust 生态中的各种库和工具。

主要功能点

  • 文档查询: 提供 'lookup_crate_docs' 工具,允许 LLM 客户端通过指定 crate 名称查询其官方文档。
  • JSON API: 使用 JSON 格式进行请求和响应,易于集成到各种 LLM 应用中。
  • HTTP 协议: 基于标准的 HTTP 协议进行通信,方便部署和使用。
  • 可配置端口: 服务器端口可通过环境变量灵活配置。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/Opensource-telegraphs-org/rust-docs-mcp
    cd rust-docs-mcp
  2. 配置环境变量: 复制 '.env.example' 文件为 '.env',并根据需要修改端口号('PORT')。默认端口为 '6666'。

    cp .env.example .env
    # 编辑 .env 文件,例如修改端口为 7777
  3. 编译项目: 确保已安装 Rust 和 Cargo,然后执行以下命令编译项目:

    cargo build --release

服务器配置

对于 MCP 客户端,需要配置连接到此 MCP 服务器的相关信息。以下是一个典型的 JSON 格式配置示例,用于连接到 Rust Crate 文档 MCP 服务器:

{
  "serverName": "rust-docs-server",
  "command": "lookup_crate_docs",
  "args": {
    "crate_name": "要查询的crate名称 (可选,默认为 tokio)"
  }
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义,用于在客户端标识该服务器。例如 '"rust-docs-server"'。
  • 'command': 指定要调用的工具命令,固定为 '"lookup_crate_docs"',用于查询 crate 文档。
  • 'args': 命令参数,JSON 对象格式。
    • 'crate_name': (可选) 要查询文档的 Rust crate 名称。如果不提供,默认查询 'tokio' crate 的文档。

MCP 客户端需要将上述配置信息与其自身的功能集成,以便在需要查询 Rust crate 文档时,能够调用 'lookup_crate_docs' 工具并获取结果。 例如,在 Windsurf IDE 中,可以在 Cascade 面板中使用 'Use the lookup_crate_docs tool to get documentation for "crate_name".' 指令来触发文档查询。

基本使用方法

  1. 启动服务器: 在项目根目录下,运行编译后的服务器程序:

    ./target/release/rust-docs-mcp-server

    或使用 'cargo run' 命令在开发模式下启动。

  2. 发送请求 (以 curl 为例): 使用 POST 请求访问服务器的 '/mcp' 端点,并发送 JSON 格式的请求体。

    • 查询 'tokio' crate 文档 (默认):

      curl -X POST http://localhost:7777/mcp \
        -H "Content-Type: application/json" \
        -d '{"command": "lookup_crate_docs"}'
    • 查询指定 crate (例如 'serde') 文档:

      curl -X POST http://localhost:7777/mcp \
        -H "Content-Type: application/json" \
        -d '{"command": "lookup_crate_docs", "args": {"crate_name": "serde"}}'

    服务器将返回包含 crate 文档内容的 JSON 响应。

信息

分类

开发者工具