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
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
| Cliente | Comando |
|---|---|
| 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 | Execute opencode mcp add, escolha um servidor MCP local e aponte para path/to/mcp-docsrs. |
| VS Code | Abra a Paleta de Comandos (Cmd/Ctrl+Shift+P) → MCP: Add Server → escolha Workspace ou User → Command (stdio) → digite path/to/mcp-docsrs. |
| Cursor | Abra 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ável | Flag CLI | Padrão | Descrição |
|---|---|---|---|
CACHE_TTL | --cache-ttl | 3600000 | Tempo de vida do cache em milissegundos |
MAX_CACHE_SIZE | --max-cache-size | 100 | Número máximo de entradas em cache |
REQUEST_TIMEOUT | --request-timeout | 30000 | Tempo 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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
crateName | string | Sim | Nome do crate Rust a ser inspecionado |
version | string | Não | Versão específica ou intervalo semver, por exemplo "1.0.0" ou "~4" |
target | string | Não | Plataforma alvo, por exemplo "i686-pc-windows-msvc" |
formatVersion | number | Não | Versã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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
crateName | string | Sim | Nome do crate Rust a ser inspecionado |
version | string | Não | Versão específica ou intervalo semver, por exemplo "1.0.0" ou "~4" |
target | string | Não | Plataforma alvo, por exemplo "i686-pc-windows-msvc" |
formatVersion | number | Não | Versã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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
query | string | Sim | Consulta de pesquisa para nomes de crates |
limit | number | Não | Nú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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
crateName | string | Sim | Nome do crate Rust |
symbolType | string | Sim | Tipo de símbolo do Rustdoc, por exemplo "struct", "function" ou "trait" |
symbolname | string | Sim | Nome ou caminho do símbolo, por exemplo "runtime::Runtime" ou "spawn" |
version | string | Não | Versão específica ou intervalo semver |
target | string | Não | Plataforma 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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
crateName | string | Sim | Nome do crate Rust |
symbolType | string | Sim | Tipo de símbolo do Rustdoc, por exemplo "struct", "function" ou "trait" |
symbolname | string | Sim | Nome ou caminho do símbolo, por exemplo "runtime::Runtime" ou "spawn" |
version | string | Não | Versão específica ou intervalo semver |
target | string | Não | Plataforma alvo |
{
"tool": "symbol_docs",
"arguments": {
"crateName": "tokio",
"symbolType": "struct",
"symbolname": "runtime::Runtime"
}
}
Contribuindo
- Veja CONTRIBUTING.md.
- Veja TESTING.md.
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