mcpField
B
Bookworm

Bookworm

本地服务
github.com/dcdpr开发工具483 周前更新

关于 Bookworm

Bookworm 是面向 Rust 开发者的 docs.rs 文档工具集,可下载、索引和查询 crate 文档。其 MCP 服务将 crate 搜索、条目和文档资源提供给兼容客户端。

主要功能

  1. 01下载 docs.rs crate 文档
  2. 02将文档索引到 SQLite
  3. 03搜索 crate 与条目
  4. 04读取缓存文档资源

适用场景

  1. 01查找 crate 及其版本信息
  2. 02搜索函数、类型和模块
  3. 03在本地索引中查询文档

MCP 相关

Bookworm 的 MCP 服务向客户端提供 crate 搜索工具和 crate:// 资源,可检索元数据、README、条目及源代码资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Bookworm

一组用于处理 docs.rs 文档的工具。

Crates

wrm_dl

从 docs.rs 下载某个 crate 的文档,并将其存储 在本地目录中。

它同时提供库和二进制程序,你可以在本地运行:

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

将本地存储的 crate 文档编入 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

一个用于提供 crate 文档的 模型上下文协议 服务。

在本地运行:

cargo run --bin wrm-mcp

将服务添加到 MCP 客户端的方式取决于客户端,不过以下示例适用于 Claude.ai:

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

具备 MCP 客户端功能的大模型可以使用以下工具:

crates_search

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

返回的列表包含每个 crate 的 URI,可用于获取更多 crate 信息。

crate_search_items

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

每个条目类型都包含以下信息:

  • 条目路径(例如 serde_json::value::Value)
  • 条目类型(例如 enum)
  • 类型签名
  • 文档
  • 相关资源 URI
crate_search_src(待办)

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

每个条目都包含源代码文件的 URI、行号以及匹配行的内容(包括匹配项周围的可选上下文)。

crate_resource

找到 crate(或知道 crate 名称)后,可以通过 crate_resource 工具获取相关资源。此工具接受资源的 URI。

支持以下 URI:

  • crate://{crate_name} - 列出 crate 版本
  • crate://{crate_name}/{crate_version} - 获取元数据
  • crate://{crate_name}/{crate_version}/readme - 获取 README 内容
  • crate://{crate_name}/{crate_version}/items - 列出条目资源
  • crate://{crate_name}/{crate_version}/src - 列出源代码资源
  • crate://{crate_name}/{crate_version}/{path} - 获取条目/源代码资源
crate://{crate_name} - 列出 crate 版本

返回指定 crate 名称的版本列表。

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

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

返回以下元数据:

  • 名称
  • 版本
  • 发布日期
  • 描述
  • 主页
  • 仓库
  • 许可证
  • URI:
    • README(例如 crate://serde_json/1.0.85/readme)
    • Crate 条目(例如 crate://serde_json/1.0.85/items)
    • 源代码(例如 crate://serde_json/1.0.85/src)
crate://{crate_name}/{crate_version}/readme - 获取 crate README

以 Markdown 格式的字符串返回 crate 的 README。

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

返回指定 crate 版本的条目列表。

条目是 crate 的组成部分。条目有以下几种:

  • 模块
  • 函数定义
  • 类型定义
  • 结构体定义
  • 枚举定义
  • Trait 定义
  • 实现

使用 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 的准确名称。
  • {crate_version} 可以是兼容 semver 的版本号(也可以是不完整版本号),或者使用 latest 表示最新发布的 crate 版本。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。