README
🚀 书虫
书虫是一组用于与 docs.rs 文档协同工作的工具,能够帮助用户下载、索引和查询 crate 文档,还能通过 MCP 服务器为具有 MCP 客户端功能的 LLM 提供相关服务。
✨ 主要特性
- 支持从 docs.rs 下载 crate 文档并本地存储。
- 可将本地存储的 crate 文档索引到 SQLite 数据库。
- 能够利用本地文档和索引数据库进行文档查询。
- 提供 MCP 服务器,方便支持 MCP 客户端的 LLM 使用相关工具。
📦 安装指南
由于文档未提供具体安装步骤,暂无法展示。
💻 使用示例
基础用法
wrm_dl
从 docs.rs 下载 crate 的文档并将其存储在本地目录中。它既作为库又作为二进制文件存在,您可以通过以下方式在本地运行:
cargo run --bin wrm-dl --features cli -- regex
Documentation 成功下载到 /tmp/...
wrm_index
将本地存储的 crate 文档索引到 SQLite 数据库中。它既作为库又作为二进制文件存在,您可以通过以下方式在本地运行:
cargo run --bin wrm-index --features cli -- /tmp/...
文档成功索引到 ./index.sqlite
wrm_mcp
一个 模型上下文协议 服务器,用于提供 crate 的文档。通过以下方式在本地运行:
cargo run --bin wrm-mcp
要将此服务器添加到支持 MCP 客户端,请根据客户端要求操作。例如,对于 Claude.ai,可以使用以下配置:
{
"mcpServers": {
"bookworm": {
"command": "/path/to/wrm-mcp"
}
}
}
高级用法
wrm_query
使用本地存储的 crate 文档和索引数据库查询文档。
wrm_docs
从缓存的 docs.rs 文档中获取详细信息。
工具
具有 MCP 客户端功能的 LLM 可以使用以下工具:
crates_search
获取与给定查询匹配的 crate 列表。返回的列表包含每个 crate 的 URI,用于获取更多 crate 信息。
crate_search_items
获取与给定查询匹配的项目列表。每个项目的类型包含以下信息:
- 项目路径(例如
serde_json::value::Value) - 项目类型(例如
枚举) - 类型签名
- 文档
- 相关资源 URI
crate_search_src (TODO)
搜索 crate 的所有源代码,以给定的查询匹配。每个项目包含以下信息:
- 源代码文件的 URI
- 行号
- 匹配行的内容,包括上下文(如果有)
crate_resource
一旦找到一个 crate(或已知 crate 名称),您可以通过此工具获取该 crate 的资源。通过以下方式在本地运行:
cargo run --bin wrm-mcp
要将此服务器添加到支持 MCP 客户端,请根据客户端要求操作。例如,对于 Claude.ai,可以使用以下配置:
{
"mcpServers": {
"bookworm": {
"command": "/path/to/wrm-mcp"
}
}
}
URL 模板
{crate_name}是 crate 的确切名称。{crate_version}是符合语义化版本控制的(部分)版本号,或latest表示最新发布的 crate 版本。
Scan to join WeChat group