Skip to main content
Glama
baburajr

elasticsearch-mcp

by baburajr

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 -q

Related 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-http

Herramientas

Consulta

Herramienta

Qué hace

run_query

Ejecutar Query DSL. Tamaño limitado, timeout inyectado, paginación profunda rechazada, search_after compatible

generate_dsl

Especificación estructurada en DSL válido, validada contra el índice, devuelve un catálogo de campos

explain_query

_validate?rewrite=true + desglose de tiempos de profile + _explain por documento

count_documents

Recuento de coincidencias sin obtener los resultados.

Diagnóstico

Herramienta

Qué hace

cluster_health

Estado, recuento de shards, tareas pendientes, opcionalmente heap/disco/CPU/rechazos por nodo

index_health

Por índice: documentos, store, segmentos, latencia media de consulta e indexación, merges

shard_allocation

_cat/shards más motivos del decider de _cluster/allocation/explain para shards sin asignar

find_slow_queries

Í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

list_indices

Índices y alias con recuento de documentos y tamaño

get_mapping

Catálogo aplanado field path -> type incluyendo multi-fields

analyze_text

Salida de tokens de un analizador, para depurar consultas match sin resultados

put_mapping

Cambios aditivos de mapeado (con bloqueo de escritura)

Operaciones

Herramienta

Qué hace

list_snapshot_repositories, list_snapshots, snapshot_status

Inventario y progreso de snapshots

create_snapshot

crea snapshots de los índices seleccionados, asíncrono por defecto

restore_snapshot

Restauración, con comprobación previa de índices abiertos existentes y soporte de renombrado

reindex

Reindexación asíncrona con query, pipeline, script, slicing, throttling; devuelve un task id

get_task, cancel_task

Consultar o cancelar tareas de larga duración

cluster_info

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

HOSTS

http://localhost:9200

Separadas por comas; conmutación por error entre ellas

API_KEY / USERNAME+PASSWORD / BEARER_TOKEN

Elige un modo de autenticación

VERIFY_CERTS, CA_CERTS, CLIENT_CERT, CLIENT_KEY

true

TLS

REQUEST_TIMEOUT, CONNECT_TIMEOUT, MAX_RETRIES

30, 10, 3

Los reintentos cubren 429/502/503/504 y errores de conexión, con retroceso con jitter y Retry-After

READ_ONLY

true

Interruptor principal para todas las herramientas de escritura

ALLOW_DESTRUCTIVE

false

Segunda compuerta para restore, reindex y put_mapping

INDEX_ALLOW

*

Lista de permitidos (glob)

INDEX_DENY

.*,security-*

Lista de denegados (glob); la denegación prevalece

DEFAULT_SIZE, MAX_RESULT_SIZE

10, 200

Límites de resultados

MAX_AGG_BUCKETS

1000

Rechaza explosiones de buckets de agregación

SEARCH_TIMEOUT, TERMINATE_AFTER

30s, no definido

Protecciones por consulta

MAX_RESPONSE_CHARS, MAX_SOURCE_CHARS

60000, 2000

Control de tokens

AUDIT_LOG_PATH

no definida

Registro JSONL de cada llamada y resultado de la herramienta

LOG_LEVEL

INFO

Los logs van a stderr, nunca a stdout (transporte stdio)

Seguridad: modelo de seguridad

Cuatro capas independientes, todas con fallo en modo cerrado:

  1. 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.

  2. Solo lectura: las herramientas de modificación se rechazan a menos que READ_ONLY=false.

  3. Puerta destructiva: restore, reindex y put_mapping requieren además ALLOW_DESTRUCTIVE=true y el argumento explícito confirm=true en la propia llamada.

  4. 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.

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    B
    quality
    C
    maintenance
    An 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.
    16
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with OpenSearch clusters for searching indices, retrieving mappings, and managing shards through the MCP protocol.
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only MCP server for exploring and searching OpenSearch clusters, enabling log analysis, index exploration, and query execution.
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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