Rust Docs Server
Obtiene documentación de crates de Rust desde docs.rs usando la API JSON de rustdoc.
Documentación
Servidor MCP de Docs.rs
Un servidor de Model Context Protocol (MCP) para obtener documentación de crates de Rust desde docs.rs
Características • Primeros pasos • Herramientas • Contribuciones • Agradecimientos • Licencia
Características
- Encontrar nuevos crates - Busca crates por nombre exacto, coincidencia parcial o consulta difusa para descubrir bibliotecas relevantes
- Inspeccionar símbolos de crates - Inspecciona structs, traits, funciones y cualquier otro símbolo dentro de un crate
- Revisar resúmenes de crates - Obtén una vista general del crate con su estructura y superficie de API pública
- Leer documentación completa - Lee documentación a nivel de crate
Primeros pasos
Usando ejecutables precompilados
Descarga la última versión para tu plataforma desde la página de Lanzamientos:
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, contenedores Docker (requiere libstdc++) - ARM64 (MUSL):
mcp-docsrs-linux-arm64-musl- Para Alpine en ARM64, contenedores mínimos (requiere libstdc++)
macOS
- Intel:
mcp-docsrs-darwin-x64- Para Macs con procesador Intel - Apple Silicon:
mcp-docsrs-darwin-arm64- Para Macs con procesador M-series
Windows
- x64:
mcp-docsrs-windows-x64.exe- Para Windows de 64 bits
Usando Docker
Extrae y ejecuta la imagen multi-arquitectura más reciente (compatible con x64 y 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
Etiquetas disponibles:
latest- Última versión estable (multi-arquitectura)v1.0.0- Versión específica (multi-arquitectura)
Configuración de 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 | Ejecuta opencode mcp add, elige un servidor MCP local y luego apúntalo a path/to/mcp-docsrs. |
| VS Code | Abre la Paleta de Comandos (Cmd/Ctrl+Shift+P) → MCP: Add Server → elige Workspace o User → Command (stdio) → introduce path/to/mcp-docsrs. |
| Cursor | Abre Configuración (Cmd/Ctrl+Shift+J) → Tools & Integrations → New MCP Server → elige un servidor local/stdio → introduce path/to/mcp-docsrs. |
Después de añadir el servidor, reinicia el cliente si no descubre las herramientas inmediatamente.
Configuración
Configura el servidor usando variables de entorno o argumentos de línea de comandos:
| Variable | Indicador CLI | Predeterminado | Descripción |
|---|---|---|---|
CACHE_TTL | --cache-ttl | 3600000 | Tiempo de vida de caché en milisegundos |
MAX_CACHE_SIZE | --max-cache-size | 100 | Número máximo de entradas en caché |
REQUEST_TIMEOUT | --request-timeout | 30000 | Tiempo de espera de solicitudes HTTP en milisegundos |
DB_PATH | --db-path | :memory: | Ruta al archivo de base de datos SQLite |
Herramientas
El servidor expone cuatro herramientas MCP:
Crate
crate_lookup
Recupera una vista general del crate con su estructura y superficie de API pública desde docs.rs.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
crateName | string | Sí | Nombre del crate de Rust a inspeccionar |
version | string | No | Versión específica o rango semver, por ejemplo "1.0.0" o "~4" |
target | string | No | Plataforma objetivo, por ejemplo "i686-pc-windows-msvc" |
formatVersion | number | No | Versión del formato JSON de Rustdoc |
{
"tool": "crate_lookup",
"arguments": {
"crateName": "tokio",
"version": "1.48.0"
}
}
crate_docs
Recupera la página de documentación a nivel de crate desde docs.rs.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
crateName | string | Sí | Nombre del crate de Rust a inspeccionar |
version | string | No | Versión específica o rango semver, por ejemplo "1.0.0" o "~4" |
target | string | No | Plataforma objetivo, por ejemplo "i686-pc-windows-msvc" |
formatVersion | number | No | Versión del formato JSON de Rustdoc |
{
"tool": "crate_docs",
"arguments": {
"crateName": "serde"
}
}
crate_find
Busca en crates.io crates coincidentes y devuelve resultados clasificados usando coincidencia difusa y parcial de nombres.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
query | string | Sí | Consulta de búsqueda para nombres de crates |
limit | number | No | Número máximo de resultados a devolver. Predeterminado a 10 |
{
"tool": "crate_find",
"arguments": {
"query": "rustdoc json",
"limit": 5
}
}
Symbol
symbol_lookup
Recupera metadatos estructurados de símbolo para un símbolo dentro de un crate.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
crateName | string | Sí | Nombre del crate de Rust |
symbolType | string | Sí | Tipo de símbolo de Rustdoc, por ejemplo "struct", "function" o "trait" |
symbolname | string | Sí | Nombre o ruta del símbolo, por ejemplo "runtime::Runtime" o "spawn" |
version | string | No | Versión específica o rango semver |
target | string | No | Plataforma objetivo |
{
"tool": "symbol_lookup",
"arguments": {
"crateName": "tokio",
"symbolType": "struct",
"symbolname": "runtime::Runtime"
}
}
symbol_docs
Recupera el cuerpo completo de documentación para un símbolo dentro de un crate.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
crateName | string | Sí | Nombre del crate de Rust |
symbolType | string | Sí | Tipo de símbolo de Rustdoc, por ejemplo "struct", "function" o "trait" |
symbolname | string | Sí | Nombre o ruta del símbolo, por ejemplo "runtime::Runtime" o "spawn" |
version | string | No | Versión específica o rango semver |
target | string | No | Plataforma objetivo |
{
"tool": "symbol_docs",
"arguments": {
"crateName": "tokio",
"symbolType": "struct",
"symbolname": "runtime::Runtime"
}
}
Contribuciones
- Consulta CONTRIBUTING.md.
- Consulta TESTING.md.
Agradecimientos
- docs.rs por proporcionar la API de documentación de Rust
- Model Context Protocol por la especificación de MCP
- La comunidad de Rust por sus excelentes estándares de documentación
Licencia
Este proyecto está licenciado bajo la Licencia Apache 2.0. Consulta LICENSE para el texto de la licencia y NOTICE para detalles de atribución.
Hecho con ❤️ para la comunidad de Rust