CrateDocs MCP 服务器遵循 Model Context Protocol (MCP),是一款专为 Rust crate 文档查找打造的工具。它能助力大型语言模型(LLM)查找其不熟悉的 crate 文档,极大提升工作效率。
CrateDocs MCP 服务器是遵循 Model Context Protocol (MCP) 的工具,可用于 Rust 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 的版本(可选,默认为最新版本)。 |
CrateDocs 服务器遵循 Model Context Protocol (MCP),允许它与支持 MCP 的大型语言模型(LLM)客户端集成。这种集成使得 LLM 能够更高效地访问和理解 Rust crate 文档,从而提供更好的代码生成和问题解决能力。