文档工具集

Bookworm 是一个用于处理 docs.rs 文档的工具集合,包括下载、索引、查询和通过模型上下文协议(MCP)提供文档服务。

  • by dcdpr
  • Rust
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 dcdpr/bookworm

使用说明

书呆子

一系列可供使用的工具 docs.rs 文档。

板条箱

wrm_dl

从以下网址下载板条箱文档 docs.rs 和存储 它位于本地目录中。

它既是库又是二进制文件,您可以使用以下命令在本地运行它:

cargo run --bin wrm-dl --features cli -- regex
Documentation downloaded successfully to /tmp/...

wrm_index

将本地存储的板条箱文档索引到SQLite数据库中。

它既是库又是二进制文件,您可以使用以下命令在本地运行它:

cargo run --bin wrm-index --features cli -- /tmp/...
Documentation indexed successfully to ./index.sqlite

wrm_query

使用本地存储的crate版本查询crate的文档 文档和索引数据库。

wrm_docs

从本地缓存的docs.rs文档中获取详细信息。

wrm_mcp

A. 模型上下文协议 服务器为板条箱提供文档。

使用以下命令在本地运行:

cargo run --bin wrm-mcp

将服务器添加到MCP客户端取决于客户端,但以下内容 示例适用于Claude.ai:

{
  "mcpServers": {
    "bookworm": {
      "command": "/path/to/wrm-mcp"
    }
  }
}

工具

具有MCP客户端功能的LLM可以使用以下工具:

crates_search

获取与给定查询匹配的板条箱列表。

返回的列表包含每个板条箱的URI列表,以获取额外的URI 板条箱信息。

crate_search_items

获取与给定查询匹配的项目列表。

每种项目类型都包含以下信息:

  • 项目路径(例如。 serde_json::value::Value)
  • 项目类型(例如。 enum)
  • 类型签名
  • 文档
  • 相关资源URI
crate_search_src (全部)

搜索给定查询的所有crate源代码。

每个项目都包含源代码文件的URI、行号和 匹配行的内容,包括围绕 比赛。

crate_resource

一旦你找到一个板条箱(或知道板条箱名称),你就可以获取相关资源 通过 crate_resource 工具。此工具获取资源的URI。

支持以下URI:

  • crate://{crate_name} -列出机箱版本
  • crate://{crate_name}/{crate_version} -获取元数据
  • crate://{crate_name}/{crate_version}/readme -获取自述文件内容
  • crate://{crate_name}/{crate_version}/items -列出项目资源
  • crate://{crate_name}/{crate_version}/src -列出源代码资源
  • crate://{crate_name}/{crate_version}/{path} -获取item/src资源
crate://{crate_name} -列出机箱版本

返回给定板条箱名称的板条箱版本列表。

列表中的每个项目都包含以下信息:

  • 版本
  • 发布日期
  • MSRV
  • 下载
  • 出版商
crate://{crate_name}/{crate_version} -获取crate元数据

返回以下元数据:

  • 名字
  • 版本
  • 发布日期
  • 描述
  • 首页
  • 仓库
  • 许可证
  • URI:
    • 自述(例如。 crate://serde_json/1.0.85/readme)
    • 板条箱项目(例如。 crate://serde_json/1.0.85/items)
    • 源代码(例如。 crate://serde_json/1.0.85/src)
crate://{crate_name}/{crate_version}/readme -获取crate自述文件

以字符串形式返回板条箱README,格式为Markdown。

crate://{crate_name}/{crate_version}/items -列出板条箱项目

返回给定机箱版本的项目列表。

物品是板条箱的一个组成部分。有几种项目:

  • 模块
  • 函数定义
  • 类型定义
  • 结构定义
  • 枚举定义
  • 特性定义
  • 实现

使用 search_crate_items 搜索特定项目。

crate://{crate_name}/{crate_version}/src -列出crate源代码资源

返回给定crate版本的源代码资源列表。

例如:

<Resources>
  <Resource uri="crate://serde_json/1.0.85/src/serde_json/lib.rs" />
  <Resource uri="crate://serde_json/1.0.85/src/serde_json/value.rs" />
  <Resource uri="crate://serde_json/1.0.85/src/serde_json/map.rs" />
  <Resource uri="crate://serde_json/1.0.85/src/serde_json/value/mod.rs" />
  ...
</Resources>

使用 search_crate_src 搜索所有crate的源代码。

crate://{crate_name}/{crate_version}/{crate_resource_path} -获取crate资源

返回给定路径上资源的内容。

Url模板
  • {crate_name} 是板条箱的确切名称。
  • {crate_version} 是(部分)与semver兼容的版本号,或 latest 获取最新发布的crate版本。