Skip to main content
Glama
mshegolev

mshegolev/kibana-mcp

kibana-mcp

PyPI version Python 3.10+ License: MIT Tests

Servidor MCP para Kibana / Elasticsearch: búsqueda de registros, agregaciones, descubrimiento de índices y navegación por paneles a través de Claude y cualquier agente compatible con MCP.

¿Por qué otro MCP para Kibana?

Las integraciones existentes requieren una instancia de Kibana en ejecución con credenciales a nivel de navegador y, a menudo, envuelven la interfaz de usuario de Kibana en lugar de utilizar las API REST estables. Este servidor:

  • Accede directamente a la API REST de Elasticsearch para consultas de registros (más rápido, estable ante cambios en la interfaz de Kibana)

  • Recurre al proxy de la consola de Kibana cuando no hay una URL de ES directa configurada (cero reglas de firewall adicionales)

  • Admite autenticación ApiKey (ideal para agentes), así como autenticación básica y acceso anónimo

  • Devuelve tanto JSON estructurado (outputSchema) como texto en formato markdown para que funcione con cualquier cliente MCP

  • Es de solo lectura: todas las herramientas incluyen readOnlyHint: true, no se modifican datos

Herramientas

Herramienta

API

Descripción

kibana_list_indices

GET ES/_cat/indices

Descubre índices disponibles con estado, documentos y tamaño

kibana_search_logs

POST ES/{index}/_search

Búsqueda de registros de texto completo con rango de tiempo, orden y tamaño

kibana_aggregate_logs

POST ES/{index}/_search

Agrupación por términos con métricas de conteo/promedio/suma/mínimo/máximo

kibana_list_dashboards

GET Kibana/api/saved_objects/_find

Lista paneles guardados con búsqueda y paginación

kibana_get_dashboard

GET Kibana/api/saved_objects/dashboard/{id}

Obtiene un panel con desglose de paneles

Instalación

pip install kibana-mcp

O ejecútalo directamente con uvx:

uvx kibana-mcp

Configuración

Variables de entorno

Variable

Requerido

Descripción

KIBANA_URL

URL base de Kibana (ej. https://kibana.example.com)

ELASTICSEARCH_URL

No

Endpoint directo de ES. Si no se establece, las solicitudes de ES pasan por el proxy de la consola de Kibana

KIBANA_API_KEY

No

Clave API de ES (formato ApiKey base64(id:api_key)). Recomendado para agentes

KIBANA_USERNAME

No

Nombre de usuario para autenticación HTTP básica (usado si no se establece la clave API)

KIBANA_PASSWORD

No

Contraseña para autenticación HTTP básica

KIBANA_SSL_VERIFY

No

true (predeterminado) o false para certificados autofirmados

Prioridad de autenticación: ApiKey > Básica > Anónima.

Copia .env.example a .env y rellena tus valores.

Configuración del cliente MCP (Claude Desktop / claude.app)

{
  "mcpServers": {
    "kibana": {
      "command": "uvx",
      "args": ["kibana-mcp"],
      "env": {
        "KIBANA_URL": "https://kibana.example.com",
        "KIBANA_API_KEY": "your-api-key-here"
      }
    }
  }
}

O con acceso directo a ES para un mejor rendimiento:

{
  "mcpServers": {
    "kibana": {
      "command": "uvx",
      "args": ["kibana-mcp"],
      "env": {
        "KIBANA_URL": "https://kibana.example.com",
        "ELASTICSEARCH_URL": "https://es.example.com:9200",
        "KIBANA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Docker

docker run --rm -i \
  -e KIBANA_URL=https://kibana.example.com \
  -e KIBANA_API_KEY=your-key \
  ghcr.io/mshegolev/kibana-mcp

Ejemplos de uso

Búsqueda de registros

Find the last 50 ERROR logs from the API service in the last hour

kibana_search_logs(index="logs-*", query="level:ERROR AND service:api", size=50, time_from="2026-04-18T09:00:00Z")

Show 500 HTTP errors sorted oldest first for incident replay

kibana_search_logs(index="nginx-*", query="status:500", sort_order="asc", size=100)

Agregaciones

How many logs per log level in the last hour?

kibana_aggregate_logs(index="logs-*", group_by="level", time_from="2026-04-18T09:00:00Z")

What is the average response time per service?

kibana_aggregate_logs(index="logs-*", group_by="service.keyword", metric="avg", metric_field="response_time_ms")

Descubrimiento de índices

What log indices are available?

kibana_list_indices()

Show me all filebeat indices

kibana_list_indices(pattern="filebeat-*")

Paneles

Find the infrastructure dashboard

kibana_list_dashboards(search="infrastructure")

What panels does dashboard X have?

kibana_get_dashboard(dashboard_id="<id from list_dashboards>")

Características de rendimiento

  • Búsqueda de registros (kibana_search_logs): normalmente 50-500ms con URL de ES directa; añade 100-200ms al enrutar a través del proxy de la consola de Kibana

  • Agregaciones (kibana_aggregate_logs): consultas size:0 — no se transfieren resultados, generalmente 10-100ms

  • Listado de índices: una sola llamada _cat/indices, respuesta O(index_count), generalmente <100ms

  • API de paneles: API de objetos guardados de Kibana, generalmente 50-200ms; la latencia es del lado de Kibana, no de la red

  • Establece ELASTICSEARCH_URL directamente si tu agente realiza búsquedas de registros frecuentes — elimina la sobrecarga del proxy

Desarrollo

git clone https://github.com/mshegolev/kibana-mcp
cd kibana-mcp
pip install -e '.[dev]'
pytest tests/ -v
ruff check src tests
ruff format src tests

Licencia

MIT — ver LICENSE.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

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/mshegolev/kibana-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server