mcp-docsrs
Documentation
Docs.rs MCP Server
>A Model Context Protocol (MCP) server for fetching Rust crate documentation from docs.rs
Features • Getting Started • Tools • Contributing • Acknowledgments • License
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 200Available tags:
- `latest` - Latest stable release (multi-arch)
- `v1.0.0` - Specific version (multi-arch)
MCP Setup
| Client | Command |
|---|---|
| Codex | `codex mcp add docsrs -- path/to/mcp-docsrs` |
| Claude Code | `claude mcp add --transport stdio docsrs -- path/to/mcp-docsrs` |
| Gemini CLI | `gemini mcp add -s user docsrs path/to/mcp-docsrs` |
| OpenCode | Run `opencode mcp add`, choose a local MCP server, then point it at `path/to/mcp-docsrs`. |
| VS Code | Open Command Palette (`Cmd/Ctrl+Shift+P`) → `MCP: Add Server` → choose `Workspace` or `User` → `Command (stdio)` → enter `path/to/mcp-docsrs`. |
| Cursor | Open Settings (`Cmd/Ctrl+Shift+J`) → `Tools & Integrations` → `New 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:
| Variable | CLI Flag | Default | Description |
|---|---|---|---|
| `CACHE_TTL` | `--cache-ttl` | 3600000 | Cache time-to-live in milliseconds |
| `MAX_CACHE_SIZE` | `--max-cache-size` | 100 | Maximum number of cached entries |
| `REQUEST_TIMEOUT` | `--request-timeout` | 30000 | HTTP 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| `crateName` | string | Yes | Name of the Rust crate to inspect |
| `version` | string | No | Specific version or semver range, for example `"1.0.0"` or `"~4"` |
| `target` | string | No | Target platform, for example `"i686-pc-windows-msvc"` |
| `formatVersion` | number | No | Rustdoc JSON format version |
{
"tool": "crate_lookup",
"arguments": {
"crateName": "tokio",
"version": "1.48.0"
}
}`crate_docs`
Retrieves the crate-level documentation page from docs.rs.
| Parameter | Type | Required | Description |
|---|---|---|---|
| `crateName` | string | Yes | Name of the Rust crate to inspect |
| `version` | string | No | Specific version or semver range, for example `"1.0.0"` or `"~4"` |
| `target` | string | No | Target platform, for example `"i686-pc-windows-msvc"` |
| `formatVersion` | number | No | Rustdoc 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| `query` | string | Yes | Search query for crate names |
| `limit` | number | No | Maximum number of results to return. Defaults to `10` |
{
"tool": "crate_find",
"arguments": {
"query": "rustdoc json",
"limit": 5
}
}Symbol
`symbol_lookup`
Retrieves structured symbol metadata for one symbol inside a crate.
| Parameter | Type | Required | Description |
|---|---|---|---|
| `crateName` | string | Yes | Name of the Rust crate |
| `symbolType` | string | Yes | Rustdoc symbol type, for example `"struct"`, `"function"`, or `"trait"` |
| `symbolname` | string | Yes | Symbol name or path, for example `"runtime::Runtime"` or `"spawn"` |
| `version` | string | No | Specific version or semver range |
| `target` | string | No | Target platform |
{
"tool": "symbol_lookup",
"arguments": {
"crateName": "tokio",
"symbolType": "struct",
"symbolname": "runtime::Runtime"
}
}`symbol_docs`
Retrieves the full documentation body for one symbol inside a crate.
| Parameter | Type | Required | Description |
|---|---|---|---|
| `crateName` | string | Yes | Name of the Rust crate |
| `symbolType` | string | Yes | Rustdoc symbol type, for example `"struct"`, `"function"`, or `"trait"` |
| `symbolname` | string | Yes | Symbol name or path, for example `"runtime::Runtime"` or `"spawn"` |
| `version` | string | No | Specific version or semver range |
| `target` | string | No | Target platform |
{
"tool": "symbol_docs",
"arguments": {
"crateName": "tokio",
"symbolType": "struct",
"symbolname": "runtime::Runtime"
}
}Contributing
- See CONTRIBUTING.md.
- See TESTING.md.
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
Frequently asked questions
What is mcp-docsrs?
mcp-docsrs is a Model Context Protocol (MCP) server listed in the TrackMCP directory.
How do I install mcp-docsrs?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-docsrs open source?
Yes — it is hosted on GitHub at https://github.com/vexxvakan/mcp-docsrs and has 9 stars.
Related MCP tools
Connect an MCP Client that only supports local (stdio) servers to a Remote MCP Server, with auth support: TypeScript-based implementation.
- Discover available MCP servers from our curated registry TypeScript-based implementation.
🍒 Cherry Studio is a desktop client that supports for multiple LLM providers. Built for the Model Context Protocol to enhance AI capabilities.
Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini...
FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, ...
Composio equips your AI agents & LLMs with 100+ high-quality integrations via function calling for the Model Context Protocol. Enhance AI assistants with powerf
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP