Sponsored by Deepsite.site

Bookworm

Created By
dcdpr9 months ago
MCP server for Rust documentation
Content

Bookworm

A collection of tools to work with docs.rs documentation.

Crates

wrm_dl

Download the documentation for a crate from docs.rs and store it in a local directory.

It comes both as a library and a binary, you can run it locally using:

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

wrm_index

Index locally stored crate documentation into a SQLite database.

It comes both as a library and a binary, you can run it locally using:

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

wrm_query

Query the documentation for a crate, using a locally stored version of the crate documentation, and the index database.

wrm_docs

Fetch details from locally cached docs.rs documentation.

wrm_mcp

A model context protocol server to serve the documentation for a crate.

Run it locally using:

cargo run --bin wrm-mcp

Adding the server to your MCP client depends on the client, but the following example works for Claude.ai:

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

Tools

The following tools are available to an LLM with MCP client capabilities:

Get a list of crates matching the given query.

The returned list contains a list of URIs for each crate to fetch additional crate information.

crate_search_items

Get a list of items matching the given query.

Each item type contains the following information:

  • Item Path (e.g. serde_json::value::Value)
  • Item Type (e.g. enum)
  • Type Signature
  • Documentation
  • Related Resource URIs
crate_search_src (TODO)

Search all the crate's source code for a given query.

Each item contains the URI of the source code file, the line number, and the contents of the matched line, including any optional context surrounding the match.

crate_resource

Once you find a crate (or know the crate name), you can fetch relevant resources through the crate_resource tool. This tool takes a URI to the resource.

The following URIs are supported:

  • crate://{crate_name} - list crate versions
  • crate://{crate_name}/{crate_version} - get metadata
  • crate://{crate_name}/{crate_version}/readme - get readme content
  • crate://{crate_name}/{crate_version}/items - list item resources
  • crate://{crate_name}/{crate_version}/src - list source code resources
  • crate://{crate_name}/{crate_version}/{path} - get item/src resource
crate://{crate_name} - list crate versions

Returns a list of crate versions for the given crate name.

Each item in the list contains the following information:

  • Version
  • Release Date
  • MSRV
  • Downloads
  • Publisher
crate://{crate_name}/{crate_version} - get crate metadata

The following metadata is returned:

  • Name
  • Version
  • Release Date
  • Description
  • Homepage
  • Repository
  • License
  • URIs:
    • Readme (e.g. crate://serde_json/1.0.85/readme)
    • Crate Item (e.g. crate://serde_json/1.0.85/items)
    • Source code (e.g. crate://serde_json/1.0.85/src)
crate://{crate_name}/{crate_version}/readme - get crate readme

Returns the crate README as a string, formatted as Markdown.

crate://{crate_name}/{crate_version}/items - list crate items

Returns a list of items for the given crate version.

An item is a component of a crate. There are several kinds of items:

  • Modules
  • Function definitions
  • Type definitions
  • Struct definitions
  • Enumeration definitions
  • Trait definitions
  • Implementations

Use search_crate_items to search for specific items.

crate://{crate_name}/{crate_version}/src - list crate source code resources

Returns a list of source code resources for the given crate version.

For Example:

<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>

Use search_crate_src to search all the crate's source code.

crate://{crate_name}/{crate_version}/{crate_resource_path} - get crate resource

Returns the content of the resource at the given path.

Url Templating
  • {crate_name} is the exact name of the crate.
  • {crate_version} is either a (partial) semver compatible version number, or latest for the latest published crate version.
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Serper MCP ServerA Serper MCP Server
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
DeepChatYour AI Partner on Desktop
Playwright McpPlaywright MCP server
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Tavily Mcp
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
CursorThe AI Code Editor
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
ChatWiseThe second fastest AI chatbot™
WindsurfThe new purpose-built IDE to harness magic
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Amap Maps高德地图官方 MCP Server