使用说明

项目简介

现代AI代码助手在理解代码结构和语法方面表现出色,但在快速发展的库和框架(如Rust生态)的具体细节上常常遇到困难。rust-docs-mcp-server通过提供一个针对特定Rust crate的、最新的知识来源来解决这个问题。它作为一个MCP服务器运行,为LLM代码助手提供 'query_rust_docs' 工具,使其能够在编写与特定crate相关的代码之前,查询该crate的最新文档,从而提高代码生成的准确性和相关性。

主要功能点

  • 定向文档支持: 每个服务器实例专注于一个特定的Rust crate。
  • 特性支持: 允许为文档生成指定所需的crate features。
  • 语义搜索: 使用OpenAI的 'text-embedding-3-small' 模型进行语义搜索,找到与问题最相关的文档部分。
  • LLM总结: 利用OpenAI的 'gpt-4o-mini-2024-07-18' 模型,仅基于检索到的文档上下文生成简洁的答案。
  • 缓存: 缓存生成的文档内容和embeddings,加速后续启动。
  • MCP集成: 作为标准的MCP服务器通过stdio运行,暴露工具和资源。

安装步骤

推荐从 GitHub Releases页面 下载预编译的二进制文件。

  1. 访问 Releases页面
  2. 下载适用于您系统的压缩包 ('.zip' for Windows, '.tar.gz' for Linux/macOS)。
  3. 解压 'rustdocs_mcp_server' (或 'rustdocs_mcp_server.exe') 二进制文件。
  4. 将该二进制文件放置在系统 'PATH' 环境变量包含的目录中 (例如, '/usr/local/bin', '~/bin')。

或者,您也可以选择从源代码构建,具体步骤请参考仓库README。

服务器配置

MCP客户端需要配置MCP服务器的启动命令及其参数才能连接。以下是配置示例(JSON格式):

{
  "mcpServers": {
    "rust-docs-crate-name": {  // 服务器名称,可以自定义
      "command": "rustdocs_mcp_server", // 启动命令,如果 rustdocs_mcp_server 不在 PATH 中,请使用完整路径
      "args": [
        "crate_name@version_req" // 目标 crate 的 Package ID Specification,例如 "serde@^1.0" 或 "tokio"
        // 可以添加 "-F" 或 "--features" 参数来指定 crate features,例如 "-F", "runtime-tokio-hyper-rustls"
      ],
      "env": {
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE" // 您的 OpenAI API 密钥,请替换为实际密钥
      },
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

配置参数说明:

  • 'server name': 服务器实例的名称,客户端用于标识和管理不同的MCP服务器连接,可以自定义。
  • 'command': 启动 'rustdocs_mcp_server' 服务器的命令。如果 'rustdocs_mcp_server' 二进制文件不在系统的 'PATH' 环境变量中,请使用该二进制文件的绝对路径
  • 'args': 传递给 'rustdocs_mcp_server' 命令的参数,用于指定目标 Rust crate 及其版本和 features。
    • 第一个参数是 Package ID Specification,指定要查询文档的 Rust crate。格式为 '"crate_name"' 或 '"crate_name@version_req"',例如 '"serde"' 或 '"[email protected]"'。
    • 可选参数 '-F' 或 '--features' 用于指定需要启用的 crate features。例如 '"-F", "feature1,feature2"'。
  • 'env': 设置服务器运行所需的环境变量。
    • 'OPENAI_API_KEY': 必须配置,用于OpenAI API的密钥,用于生成embeddings和LLM摘要。请替换 '"YOUR_OPENAI_API_KEY_HERE"' 为您实际的 OpenAI API 密钥。
  • 'disabled': 布尔值,用于启用或禁用此服务器配置。设置为 'false' 表示启用。
  • 'alwaysAllow': 数组,用于配置始终允许的操作,通常留空即可。

请根据您使用的MCP客户端 (例如 Roo Code, Claude Desktop) 的具体配置方法,将以上配置信息填入。

基本使用方法

  1. 启动服务器: 在命令行中使用配置中指定的 'command' 和 'args' 启动 'rustdocs_mcp_server'。首次启动时,服务器会下载 crate 文档并生成 embeddings,可能需要一些时间。建议在添加到 MCP 客户端之前,先在命令行运行一次,等待缓存生成完毕。
  2. 配置MCP客户端: 在您的MCP客户端中,按照上述 服务器配置 部分的说明,配置 'rustdocs_mcp_server' 连接。
  3. 使用 'query_rust_docs' 工具: 在您的LLM应用或代码助手中,当需要查询特定 Rust crate 的文档时,调用 'query_rust_docs' 工具,并提供您的问题作为参数。服务器将返回从该 crate 文档中检索到的答案。

例如,在MCP客户端中调用 'query_rust_docs' 工具的请求可能如下所示:

{
  "jsonrpc": "2.0",
  "method": "callTool",
  "params": {
    "tool_name": "query_rust_docs",
    "arguments": {
      "question": "如何在 reqwest 中发起一个简单的 GET 请求?"
    }
  },
  "id": 1
}

服务器将返回包含答案的 JSON-RPC 响应。

信息

分类

开发者工具