这是一个提供Rust包文档查询工具的MCP(模型上下文协议)服务器。它允许LLM(大型语言模型)查询它们不熟悉的Rust包的文档。
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
无需启动服务器即可从命令行直接测试文档工具:
# 获取测试命令的帮助
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监听。
服务器提供的工具如下:
lookup_crate检索指定Rust包的文档。
参数:
crate_name(必需):要查询的包名version(可选):包的版本(默认为最新版本)示例:
{
"name": "lookup_crate",
"arguments": {
"crate_name": "tokio",
"version": "1.28.0"
}
}
search_crates在crates.io上搜索Rust包。
参数:
query(必需):搜索查询limit(可选):返回结果的最大数量(默认为10,最大100)示例:
{
"name": "search_crates",
"arguments": {
"query": "async runtime",
"limit": 5
}
}
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"
}
}
此服务器实现了模型上下文协议(MCP),使其能够轻松地与支持该协议的LLM客户端集成。有关MCP的更多信息,请访问MCP仓库。
MIT许可证