返回市场
<中文翻译>
创建文档-mcp

<中文翻译> 创建文档-mcp

作者:d6e57 星标更新:2025-08-30

项目介绍

CrateDocs MCP

这是一个提供Rust包文档查询工具的MCP(模型上下文协议)服务器。它允许LLM(大型语言模型)查询它们不熟悉的Rust包的文档。

功能

  • 查询包文档:获取Rust包的一般文档
  • 搜索包:根据关键词在crates.io上搜索包
  • 查询项目文档:获取包内特定项目的文档(例如,结构体、函数、特征)

安装

git clone https://github.com/d6e/cratedocs-mcp.git
cd cratedocs-mcp
cargo build --release

运行服务器

有多种方式运行文档服务器:

使用统一CLI

统一命令行接口提供了所有服务器模式的子命令:

# 在STDIN/STDOUT模式下运行
cargo run --bin cratedocs stdio

# 在HTTP/SSE模式下运行(默认地址:127.0.0.1:8080)
cargo run --bin cratedocs http

# 在自定义地址的HTTP/SSE模式下运行
cargo run --bin cratedocs http --address 0.0.0.0:3000

# 启用调试日志
cargo run --bin cratedocs http --debug

直接测试文档工具

无需启动服务器即可从命令行直接测试文档工具:

# 获取测试命令的帮助
cargo run --bin cratedocs test --tool help

# 查询包文档
cargo run --bin cratedocs test --tool lookup_crate --crate-name tokio

# 查询项目文档
cargo run --bin cratedocs test --tool lookup_item --crate-name tokio --item-path sync::mpsc::Sender

# 查询特定版本的文档
cargo run --bin cratedocs test --tool lookup_item --crate-name serde --item-path Serialize --version 1.0.147

# 搜索包
cargo run --bin cratedocs test --tool search_crates --query logger --limit 5

# 输出不同格式(markdown、text、json)
cargo run --bin cratedocs test --tool search_crates --query logger --format json
cargo run --bin cratedocs test --tool lookup_crate --crate-name tokio --format text

# 将输出保存到文件
cargo run --bin cratedocs test --tool lookup_crate --crate-name tokio --output tokio-docs.md

默认情况下,HTTP服务器将在http://127.0.0.1:8080/sse监听。

可用工具

服务器提供的工具如下:

1. lookup_crate

检索指定Rust包的文档。

参数:

  • crate_name(必需):要查询的包名
  • version(可选):包的版本(默认为最新版本)

示例:

{
  "name": "lookup_crate",
  "arguments": {
    "crate_name": "tokio",
    "version": "1.28.0"
  }
}

2. search_crates

在crates.io上搜索Rust包。

参数:

  • query(必需):搜索查询
  • limit(可选):返回结果的最大数量(默认为10,最大100)

示例:

{
  "name": "search_crates",
  "arguments": {
    "query": "async runtime",
    "limit": 5
  }
}

3. lookup_item

检索包中特定项目的文档。

参数:

  • crate_name(必需):包名
  • item_path(必需):项目的路径(例如,'std::vec::Vec')
  • version(可选):包的版本(默认为最新版本)

示例:

{
  "name": "lookup_item",
  "arguments": {
    "crate_name": "serde",
    "item_path": "serde::Deserialize",
    "version": "1.0.160"
  }
}

实现说明

  • 服务器包括一个缓存机制,以防止对相同文档进行冗余的API调用
  • 它与docs.rs接口以获取包文档,并与crates.io接口以实现搜索功能
  • 结果以纯文本/HTML内容形式返回,可以由客户端解析并呈现

MCP协议集成

此服务器实现了模型上下文协议(MCP),使其能够轻松地与支持该协议的LLM客户端集成。有关MCP的更多信息,请访问MCP仓库

许可证

MIT许可证