Cratedocs Mcp

Cratedocs Mcp

🚀 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.rscrates.io 等 API 接口集成,以获取 crate 文档和信息。
  • 结果格式:输出结果为 JSON 格式,支持 Markdown、纯文本和 JSON 多种格式。

📚 详细文档

CrateDocs 服务器遵循 Model Context Protocol (MCP),允许它与支持 MCP 的大型语言模型(LLM)客户端集成。这种集成使得 LLM 能够更高效地访问和理解 Rust crate 文档,从而提供更好的代码生成和问题解决能力。

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 04:09

相似服务问题