elasticsearch-mcp
elasticsearch-mcp
Servidor MCP para Elasticsearch, construido directamente sobre la API REST (sin dependencia de elasticsearch-py, por lo que también funciona contra OpenSearch y clústeres gestionados que solo exponen HTTP).
21 herramientas que cubren consulta, diagnóstico, mapeo y operaciones de clúster. Solo lectura por defecto; toda ruta de escritura está bloqueada.
Instalación
git clone <your-repo> elasticsearch-mcp && cd elasticsearch-mcp
uv sync # or: pip install -e ".[dev]"
cp .env.example .env
pytest -qRelated MCP server: OpenSearch MCP Server
Registro con Claude Code / Claude Desktop
{
"mcpServers": {
"elasticsearch": {
"command": "uv",
"args": ["--directory", "/abs/path/elasticsearch-mcp", "run", "elasticsearch-mcp"],
"env": {
"ES_MCP_HOSTS": "https://es.internal:9200",
"ES_MCP_API_KEY": "base64-encoded-api-key",
"ES_MCP_INDEX_ALLOW": "logs-*,metrics-*",
"ES_MCP_READ_ONLY": "true"
}
}
}
}Despliegue remoto o compartido en lugar de stdio:
elasticsearch-mcp --transport streamable-httpHerramientas
Consulta
Herramienta | Qué hace |
| Ejecutar Query DSL. Tamaño limitado, timeout inyectado, paginación profunda rechazada, |
| Especificación estructurada en DSL válido, validada contra el índice, devuelve un catálogo de campos |
|
|
| Recuento de coincidencias sin obtener los resultados. |
Diagnóstico
Herramienta | Qué hace |
| Estado, recuento de shards, tareas pendientes, opcionalmente heap/disco/CPU/rechazos por nodo |
| Por índice: documentos, store, segmentos, latencia media de consulta e indexación, merges |
|
|
| Índices ordenados por latencia media de consulta, tareas de búsqueda en ejecución, rechazos de thread-pool, umbrales de slowlog |
Mapeo
Herramienta | Qué hace |
| Índices y alias con recuento de documentos y tamaño |
| Catálogo aplanado |
| Salida de tokens de un analizador, para depurar consultas |
| Cambios aditivos de mapeado (con bloqueo de escritura) |
Operaciones
Herramienta | Qué hace |
| Inventario y progreso de snapshots |
| crea snapshots de los índices seleccionados, asíncrono por defecto |
| Restauración, con comprobación previa de índices abiertos existentes y soporte de renombrado |
| Reindexación asíncrona con query, pipeline, script, slicing, throttling; devuelve un task id |
| Consultar o cancelar tareas de larga duración |
| Versión, distribución y la política de seguridad activa |
Configuración
Todas las variables usan el prefijo ES_MCP_, leídas del entorno o de .env.
Variable | Valor por defecto | Propósito |
|
| Separadas por comas; conmutación por error entre ellas |
| – | Elige un modo de autenticación |
|
| TLS |
|
| Los reintentos cubren 429/502/503/504 y errores de conexión, con retroceso con jitter y |
|
| Interruptor principal para todas las herramientas de escritura |
|
| Segunda compuerta para restore, reindex y put_mapping |
|
| Lista de permitidos (glob) |
|
| Lista de denegados (glob); la denegación prevalece |
|
| Límites de resultados |
|
| Rechaza explosiones de buckets de agregación |
|
| Protecciones por consulta |
|
| Control de tokens |
| no definida | Registro JSONL de cada llamada y resultado de la herramienta |
|
| Los logs van a stderr, nunca a stdout (transporte stdio) |
Seguridad: modelo de seguridad
Cuatro capas independientes, todas con fallo en modo cerrado:
Política de índices: lista de permitidos y lista de denegados comprobada en cada llamada; la denegación prevalece; escrituras con comodines en todo el clúster rechazadas.
Solo lectura: las herramientas de modificación se rechazan a menos que
READ_ONLY=false.Puerta destructiva: restore, reindex y put_mapping requieren además
ALLOW_DESTRUCTIVE=truey el argumento explícitoconfirm=trueen la propia llamada.Límites de consulta: límite de tamaño, tope de buckets de agregación, tope de profundidad de anidamiento de agregaciones, rechazo de paginación profunda y timeout de búsqueda inyectado.
Las herramientas devuelven errores como texto accesible (ERROR (run_query): ...) en lugar de lanzar una excepción, para que el modelo pueda corregirse en lugar de quedarse bloqueado.
Postura recomendada para producción: una clave de API de ES dedicada con permiso read exactamente sobre los índices permitidos, READONLY=true, y una instancia separada con escrituras habilitadas solo si realmente necesitas reindex/restore desde el asistente.
Ampliación
Añade un módulo dentro de src/es_mcp/tools/, expón register(server, ctx), conéctalo en server.build_server. Usa ctx.guard para comprobaciones de política y ctx.render para la salida, de modo que los límites se apliquen automáticamente.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server that enables interaction with Elasticsearch and OpenSearch clusters for searching documents and managing indices. It provides tools for cluster health monitoring, index configuration, and general API requests.16Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with OpenSearch clusters to monitor cluster health, manage indices, and perform data searches. It provides a standardized interface for real-time OpenSearch operations within MCP-compatible environments like Open WebUI.
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with OpenSearch clusters for searching indices, retrieving mappings, and managing shards through the MCP protocol.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceRead-only MCP server for exploring and searching OpenSearch clusters, enabling log analysis, index exploration, and query execution.MIT
Related MCP Connectors
Search, document and execute authenticated API calls across 700+ apps via one MCP server
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Read-only Remote MCP for externally grounded AI agent trust receipts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/baburajr/elasticsearch_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server