Rust Docs Server

Fetches Rust crate documentation from docs.rs using the rustdoc JSON API.

Docs.rs MCP Server

License: Apache 2.0

A Model Context Protocol (MCP) server for fetching Rust crate documentation from docs.rs

FeaturesGetting StartedToolsContributingAcknowledgmentsLicense

Features

  • Find New Crates - Search crates by exact name, partial match, or fuzzy query to discover relevant libraries
  • Inspect Crate Symbols - Inspect structs, traits, functions, and any other symbol inside a crate
  • Review Crate Summaries - Get a crate overview with its structure and public API surface
  • Read Full Documentation - Read crate-level documentation

Getting Started

Using Pre-built Executables

Download the latest release for your platform from the Releases page:

Linux

  • x64/AMD64 (GLIBC): mcp-docsrs-linux-x64 - For Ubuntu, Debian, Fedora, etc.
  • ARM64 (GLIBC): mcp-docsrs-linux-arm64 - For ARM64 systems, AWS Graviton
  • x64/AMD64 (MUSL): mcp-docsrs-linux-x64-musl - For Alpine Linux, Docker containers (requires libstdc++)
  • ARM64 (MUSL): mcp-docsrs-linux-arm64-musl - For Alpine on ARM64, minimal containers (requires libstdc++)

macOS

  • Intel: mcp-docsrs-darwin-x64 - For Intel-based Macs
  • Apple Silicon: mcp-docsrs-darwin-arm64 - For M-series Macs

Windows

  • x64: mcp-docsrs-windows-x64.exe - For 64-bit Windows

Using Docker

Pull and run the latest multi-arch image (supports both x64 and ARM64):

# Pull the latest image
docker pull ghcr.io/vexxvakan/mcp-docsrs:latest

# Run the server
docker run --rm -i ghcr.io/vexxvakan/mcp-docsrs:latest

# Run with custom configuration
docker run --rm -i ghcr.io/vexxvakan/mcp-docsrs:latest \
  --cache-ttl 7200000 --max-cache-size 200

Available tags:

  • latest - Latest stable release (multi-arch)
  • v1.0.0 - Specific version (multi-arch)

MCP Setup

ClientCommand
Codexcodex mcp add docsrs -- path/to/mcp-docsrs
Claude Codeclaude mcp add --transport stdio docsrs -- path/to/mcp-docsrs
Gemini CLIgemini mcp add -s user docsrs path/to/mcp-docsrs
OpenCodeRun opencode mcp add, choose a local MCP server, then point it at path/to/mcp-docsrs.
VS CodeOpen Command Palette (Cmd/Ctrl+Shift+P) → MCP: Add Server → choose Workspace or UserCommand (stdio) → enter path/to/mcp-docsrs.
CursorOpen Settings (Cmd/Ctrl+Shift+J) → Tools & IntegrationsNew MCP Server → choose a local/stdio server → enter path/to/mcp-docsrs.

After adding the server, restart the client if it does not discover the tools immediately.

Configuration

Configure the server using environment variables or command-line arguments:

VariableCLI FlagDefaultDescription
CACHE_TTL--cache-ttl3600000Cache time-to-live in milliseconds
MAX_CACHE_SIZE--max-cache-size100Maximum number of cached entries
REQUEST_TIMEOUT--request-timeout30000HTTP request timeout in milliseconds
DB_PATH--db-path:memory:Path to SQLite database file

Tools

The server exposes four MCP tools:

Crate

crate_lookup

Retrieves a crate overview with its structure and public API surface from docs.rs.

ParameterTypeRequiredDescription
crateNamestringYesName of the Rust crate to inspect
versionstringNoSpecific version or semver range, for example "1.0.0" or "~4"
targetstringNoTarget platform, for example "i686-pc-windows-msvc"
formatVersionnumberNoRustdoc JSON format version
{
  "tool": "crate_lookup",
  "arguments": {
    "crateName": "tokio",
    "version": "1.48.0"
  }
}

crate_docs

Retrieves the crate-level documentation page from docs.rs.

ParameterTypeRequiredDescription
crateNamestringYesName of the Rust crate to inspect
versionstringNoSpecific version or semver range, for example "1.0.0" or "~4"
targetstringNoTarget platform, for example "i686-pc-windows-msvc"
formatVersionnumberNoRustdoc JSON format version
{
  "tool": "crate_docs",
  "arguments": {
    "crateName": "serde"
  }
}

crate_find

Searches crates.io for matching crates and returns ranked results using fuzzy and partial name matching.

ParameterTypeRequiredDescription
querystringYesSearch query for crate names
limitnumberNoMaximum number of results to return. Defaults to 10
{
  "tool": "crate_find",
  "arguments": {
    "query": "rustdoc json",
    "limit": 5
  }
}

Symbol

lookup_symbol

Retrieves documentation for one symbol inside a crate. By default the response includes a preview of the docs. Set expandDocs to true to return the full documentation text.

ParameterTypeRequiredDescription
crateNamestringYesName of the Rust crate
symbolTypestringYesRustdoc symbol type, for example "struct", "function", or "trait"
symbolnamestringYesSymbol name or path, for example "runtime::Runtime" or "spawn"
expandDocsbooleanNoWhen true, return the full documentation text instead of the preview
versionstringNoSpecific version or semver range
targetstringNoTarget platform
{
  "tool": "lookup_symbol",
  "arguments": {
    "crateName": "tokio",
    "symbolType": "struct",
    "symbolname": "runtime::Runtime"
  }
}

Contributing

Acknowledgments

  • docs.rs for providing the Rust documentation API
  • Model Context Protocol for the MCP specification
  • The Rust community for excellent documentation standards

License

This project is licensed under the Apache License 2.0. See LICENSE for the license text and NOTICE for attribution details.


Made with ❤️ for the Rust community

Report BugRequest Feature

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension