README
🚀 CrateDocs MCP 服务器
CrateDocs MCP 服务器遵循 Model Context Protocol (MCP),是一款专为 Rust crate 文档查找打造的工具。它能助力大型语言模型(LLM)查找其不熟悉的 crate 文档,极大提升工作效率。
🚀 快速开始
CrateDocs MCP 服务器是遵循 Model Context Protocol (MCP) 的工具,可用于 Rust crate 文档查找,让大型语言模型能查找不熟悉的 crate 文档。
✨ 主要特性
- 查找 crate 文档:可获取特定 Rust crate 的通用文档。
- 搜索 crate:能根据关键词在 crates.io 上搜索 crate。
- 查找项文档:可获取 crate 中特定项(如结构体、函数、特征)的文档。
📦 安装指南
git clone https://github.com/d6e/cratedocs-mcp.git
cd cratedocs-mcp
cargo build --release
💻 使用示例
基础用法
运行服务器
有多种方式运行文档服务器:
# 以 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
直接测试文档工具
无需启动服务器即可直接从命令行测试文档工具:
# 获取 help 命令帮助
cargo run --bin cratedocs test --tool help
# 查找 crate 文档
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
# 搜索 crate
cargo run --bin cratedocs test --tool search_crates --query logger --limit 5
# 以不同格式输出(Markdown、纯文本、JSON)
cargo run --bin cratedocs test --tool search_crates --query logger --format markdown
cargo run --bin cratedocs test --tool search_crates --query logger --format plain
cargo run --bin cratedocs test --tool search_crates --query logger --format json
# 将输出重定向到文件
cargo run --bin cratedocs test --tool search_crates --query logger --format markdown > output.md
高级用法
lookup_crate 工具
查找特定 crate 的文档。
{
"name": "tokio",
"version": "1.0.0",
"documentation_url": "https://docs.rs/tokio/latest/tokio/",
"description": "A runtime for async tasks built on the Rust programming language."
}
参数说明:
| 参数 | 详情 |
| ---- | ---- |
| --crate-name | 指定要查找的 crate 名称(必填)。 |
| --version | 指定 crate 的版本(可选,默认为最新版本)。 |
search_crates 工具
在 crates.io 上搜索 crate。
[
{
"name": "tokio",
"version": "1.0.0",
"documentation_url": "https://docs.rs/tokio/latest/tokio/",
"description": "A runtime for async tasks built on the Rust programming language."
},
{
"name": "serde",
"version": "1.0.0",
"documentation_url": "https://docs.rs/serde/latest/serde/",
"description": "A library for serializing and deserializing data represented as Rust structs."
}
]
参数说明:
| 参数 | 详情 |
| ---- | ---- |
| --query | 指定搜索关键词(必填)。 |
| --limit | 指定要返回的结果数量(可选,默认为 10)。 |
| --format | 指定输出格式(可选,支持 markdown, plain, 或 json)。 |
lookup_item 工具
查找 crate 中特定项的文档。
{
"name": "tokio",
"version": "1.0.0",
"item_path": "sync::mpsc::Sender",
"documentation_url": "https://docs.rs/tokio/latest/tokio/sync/mpsc/Sender/",
"description": "A message channel type that allows sending messages between tasks."
}
参数说明:
| 参数 | 详情 |
| ---- | ---- |
| --crate-name | 指定 crate 名称(必填)。 |
| --item-path | 指定要查找的项路径(例如,sync::mpsc::Sender)(必填)。 |
| --version | 指定 crate 的版本(可选,默认为最新版本)。 |
🔧 技术细节
- 缓存机制:服务器使用缓存来提高性能,避免重复查找相同的数据。
- 接口:服务器与 docs.rs 和 crates.io 等 API 接口集成,以获取 crate 文档和信息。
- 结果格式:输出结果为 JSON 格式,支持 Markdown、纯文本和 JSON 多种格式。
📚 详细文档
CrateDocs 服务器遵循 Model Context Protocol (MCP),允许它与支持 MCP 的大型语言模型(LLM)客户端集成。这种集成使得 LLM 能够更高效地访问和理解 Rust crate 文档,从而提供更好的代码生成和问题解决能力。
Scan to join WeChat group