Rust文档查询服务

一个基于MCP协议的Rust文档查询服务器,用于为AI助手提供Rust crate的格式化文档内容。

  • by 0xKoda
  • JavaScript
  • 本地部署
  • 47 星标
  • 更新于
在 GitHub 查看 0xKoda/mcp-rust-docs

使用说明

MCP Rust文档服务器

这是一个模型上下文协议(MCP)服务器,它获取并返回Rust crates的文档,为LLM在使用Rust代码时提供必要的上下文。

特性

  • 获取docs.rs上可用的任何Rust crate的文档
  • 剥离HTML并格式化内容以提高可读性
  • 限制响应大小以防止客户端不堪重负
  • 使用最新的MCP SDK(v1.6.1)

安装

# Clone the repository
git https://github.com/0xKoda/mcp-rust-docs.git
cd mcp-rust-docs

# Install dependencies
npm install

先决条件

  • Node.js
  • npm

用法

# Start the server directly
npm start

与AI助手集成

克劳德桌面

将以下内容添加到您的Claude Desktop配置文件中(claude_desktop_config.json):

{
  "mcpServers": {
    "rust-docs": {
      "command": "node",
      "args": ["/absolute/path/to/index.js"]
    }
  }
}

替换 /absolute/path/to/index.js 此存储库中index.js文件的绝对路径。

示例用法

一旦服务器运行并配置了您的AI助手,您就可以提出以下问题:

  • “查找'tokio'板条箱的文档”
  • “‘serde’机箱提供了哪些功能?”
  • “显示'ratatui'的文档”
  • “你能解释一下‘axum’机箱中的主要模块吗?”

AI将使用 lookup_crate_docs 用于获取和显示相关文档的工具。

MCP检验员测试

您可以使用MCP检查器测试此服务器:

npx @modelcontextprotocol/inspector

然后选择“连接到本地服务器”选项,并按照提示进行操作。

运作原理

此服务器实现了一个名为 lookup_crate_docs 即:

  1. 接受Rust机箱名称作为输入(可选,如果没有提供,默认为“tokio”)
  2. 从docs.rs获取文档
  3. 使用HTML-to-text库将HTML转换为纯文本
  4. 如果内容超过8000个字符,则截断内容
  5. 以正确的MCP响应格式返回格式化的文档

SDK实施说明

此服务器使用具有精心构造的导入路径的MCP SDK。如果您正在修改代码,请注意:

  1. SDK需要从特定路径导入(例如。, @modelcontextprotocol/sdk/server/mcp.js)
  2. 我们使用高级McpServer API,而不是低级工具
  3. 工具定义使用Zod进行参数验证
  4. 控制台输出被重定向到stderr,以避免破坏MCP协议
  5. 该工具返回格式正确的MCP响应对象

贡献

欢迎投稿!请随时提交拉取请求。

许可证

麻省理工学院