Rust Docs Server

Obtém documentação de crates Rust do docs.rs usando a API JSON do rustdoc.

Documentação

Servidor MCP do Docs.rs

License: Apache 2.0

Um servidor Model Context Protocol (MCP) para buscar documentação de crates Rust em docs.rs

Recursos • Começando • Ferramentas • Contribuindo • Agradecimentos • Licença

Recursos

  • Encontrar Novos Crates - Pesquise crates por nome exato, correspondência parcial ou consulta difusa para descobrir bibliotecas relevantes
  • Inspecionar Símbolos de Crates - Inspecione structs, traits, funções e qualquer outro símbolo dentro de um crate
  • Revisar Resumos de Crates - Obtenha uma visão geral do crate com sua estrutura e superfície de API pública
  • Ler Documentação Completa - Leia a documentação em nível de crate

Começando

Usando Executáveis Pré-compilados

Baixe a versão mais recente para sua plataforma na página de Releases:

Linux

  • x64/AMD64 (GLIBC): mcp-docsrs-linux-x64 - Para Ubuntu, Debian, Fedora, etc.
  • ARM64 (GLIBC): mcp-docsrs-linux-arm64 - Para sistemas ARM64, AWS Graviton
  • x64/AMD64 (MUSL): mcp-docsrs-linux-x64-musl - Para Alpine Linux, contêineres Docker (requer libstdc++)
  • ARM64 (MUSL): mcp-docsrs-linux-arm64-musl - Para Alpine em ARM64, contêineres mínimos (requer libstdc++)

macOS

  • Intel: mcp-docsrs-darwin-x64 - Para Macs baseados em Intel
  • Apple Silicon: mcp-docsrs-darwin-arm64 - Para Macs da série M

Windows

  • x64: mcp-docsrs-windows-x64.exe - Para Windows de 64 bits

Usando Docker

Baixe e execute a imagem multi-arquitetura mais recente (suporta x64 e 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

Tags disponíveis:

  • latest - Última versão estável (multi-arquitetura)
  • v1.0.0 - Versão específica (multi-arquitetura)

Configuração do MCP

ClienteComando
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
OpenCodeExecute opencode mcp add, escolha um servidor MCP local e aponte para path/to/mcp-docsrs.
VS CodeAbra a Paleta de Comandos (Cmd/Ctrl+Shift+P) → MCP: Add Server → escolha Workspace ou User → Command (stdio) → digite path/to/mcp-docsrs.
CursorAbra Configurações (Cmd/Ctrl+Shift+J) → Tools & Integrations → New MCP Server → escolha um servidor local/stdio → digite path/to/mcp-docsrs.

Após adicionar o servidor, reinicie o cliente se ele não descobrir as ferramentas imediatamente.

Configuração

Configure o servidor usando variáveis de ambiente ou argumentos de linha de comando:

VariávelFlag CLIPadrãoDescrição
CACHE_TTL--cache-ttl3600000Tempo de vida do cache em milissegundos
MAX_CACHE_SIZE--max-cache-size100Número máximo de entradas em cache
REQUEST_TIMEOUT--request-timeout30000Tempo limite de solicitação HTTP em milissegundos
DB_PATH--db-path:memory:Caminho para o arquivo de banco de dados SQLite

Ferramentas

O servidor expõe quatro ferramentas MCP:

Crate

crate_lookup

Recupera uma visão geral do crate com sua estrutura e superfície de API pública do docs.rs.

ParâmetroTipoObrigatórioDescrição
crateNamestringSimNome do crate Rust a ser inspecionado
versionstringNãoVersão específica ou intervalo semver, por exemplo "1.0.0" ou "~4"
targetstringNãoPlataforma alvo, por exemplo "i686-pc-windows-msvc"
formatVersionnumberNãoVersão do formato JSON do Rustdoc
{
  "tool": "crate_lookup",
  "arguments": {
    "crateName": "tokio",
    "version": "1.48.0"
  }
}

crate_docs

Recupera a página de documentação em nível de crate do docs.rs.

ParâmetroTipoObrigatórioDescrição
crateNamestringSimNome do crate Rust a ser inspecionado
versionstringNãoVersão específica ou intervalo semver, por exemplo "1.0.0" ou "~4"
targetstringNãoPlataforma alvo, por exemplo "i686-pc-windows-msvc"
formatVersionnumberNãoVersão do formato JSON do Rustdoc
{
  "tool": "crate_docs",
  "arguments": {
    "crateName": "serde"
  }
}

crate_find

Pesquisa crates.io por crates correspondentes e retorna resultados classificados usando correspondência difusa e parcial de nomes.

ParâmetroTipoObrigatórioDescrição
querystringSimConsulta de pesquisa para nomes de crates
limitnumberNãoNúmero máximo de resultados a retornar. Padrão: 10
{
  "tool": "crate_find",
  "arguments": {
    "query": "rustdoc json",
    "limit": 5
  }
}

Symbol

symbol_lookup

Recupera metadados estruturados de símbolo para um símbolo dentro de um crate.

ParâmetroTipoObrigatórioDescrição
crateNamestringSimNome do crate Rust
symbolTypestringSimTipo de símbolo do Rustdoc, por exemplo "struct", "function" ou "trait"
symbolnamestringSimNome ou caminho do símbolo, por exemplo "runtime::Runtime" ou "spawn"
versionstringNãoVersão específica ou intervalo semver
targetstringNãoPlataforma alvo
{
  "tool": "symbol_lookup",
  "arguments": {
    "crateName": "tokio",
    "symbolType": "struct",
    "symbolname": "runtime::Runtime"
  }
}

symbol_docs

Recupera o corpo completo da documentação para um símbolo dentro de um crate.

ParâmetroTipoObrigatórioDescrição
crateNamestringSimNome do crate Rust
symbolTypestringSimTipo de símbolo do Rustdoc, por exemplo "struct", "function" ou "trait"
symbolnamestringSimNome ou caminho do símbolo, por exemplo "runtime::Runtime" ou "spawn"
versionstringNãoVersão específica ou intervalo semver
targetstringNãoPlataforma alvo
{
  "tool": "symbol_docs",
  "arguments": {
    "crateName": "tokio",
    "symbolType": "struct",
    "symbolname": "runtime::Runtime"
  }
}

Contribuindo

Agradecimentos

  • docs.rs por fornecer a API de documentação Rust
  • Model Context Protocol pela especificação MCP
  • A comunidade Rust pelos excelentes padrões de documentação

Licença

Este projeto é licenciado sob a Apache License 2.0. Veja LICENSE para o texto da licença e NOTICE para detalhes de atribuição.


Feito com ❤️ para a comunidade Rust

Reportar Bug • Solicitar Recurso