Kibana MCP Server

Accede e interactúa con tu instancia de Kibana usando lenguaje natural o solicitudes programáticas.

Documentación

MseeP.ai Security Assessment Badge

Kibana MCP Server

npm version Downloads Ask DeepWiki

Una implementación de servidor MCP de Kibana que permite que cualquier cliente compatible con MCP (como Claude Desktop) acceda a su instancia de Kibana mediante solicitudes en lenguaje natural o programáticas.

Este proyecto se basa en la documentación oficial de la API de Elastic Kibana y utiliza la especificación OpenAPI YAML de Elastic Stack 8.x. Para más detalles, consulte la documentación de la API de Kibana.

Este proyecto es mantenido por la comunidad y no es un producto oficial de Elastic o MCP.

💡 Proyecto complementario: Para una integración completa de Elastic Stack, combine esto con Elasticsearch MCP Server para operaciones directas de datos en Elasticsearch.


🚀 Instalación

# Global installation (recommended)
npm install -g @tocharianou/mcp-server-kibana

# Or use directly with npx
npx @tocharianou/mcp-server-kibana

Desde el código fuente

git clone https://github.com/TocharianOU/mcp-server-kibana.git
cd mcp-server-kibana
npm install && npm run build

🎯 Inicio rápido

Integración con Claude Desktop (Recomendado)

Agregue a su archivo de configuración de Claude Desktop:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "kibana": {
      "command": "npx",
      "args": ["@tocharianou/mcp-server-kibana"],
      "env": {
        "KIBANA_URL": "http://your-kibana-server:5601",
        "KIBANA_API_KEY": "your-api-key",
        "KIBANA_DEFAULT_SPACE": "default"
      }
    }
  }
}

Uso directo desde CLI

# Using API Key (recommended)
KIBANA_URL=http://localhost:5601 \
KIBANA_API_KEY=your-api-key \
npx @tocharianou/mcp-server-kibana

# Using Basic Auth
KIBANA_URL=http://localhost:5601 \
KIBANA_USERNAME=your-username \
KIBANA_PASSWORD=your-password \
npx @tocharianou/mcp-server-kibana

# Using Cookie Auth
KIBANA_URL=http://localhost:5601 \
KIBANA_COOKIES="sid=xxx; security-session=yyy" \
npx @tocharianou/mcp-server-kibana

Modo HTTP (Acceso remoto)

MCP_TRANSPORT=http \
MCP_HTTP_PORT=3000 \
KIBANA_URL=http://localhost:5601 \
KIBANA_API_KEY=your-api-key \
npx @tocharianou/mcp-server-kibana

Acceda en: http://localhost:3000/mcp
Verificación de estado: http://localhost:3000/health


✨ Características

Capacidades principales

  • Modos de transporte duales: Stdio (local) y HTTP (acceso remoto)
  • Múltiples métodos de autenticación: Clave API, Autenticación básica, basada en cookies
  • Soporte multi-espacio: Gestión de espacios de Kibana lista para empresas
  • Soporte SSL/TLS: Configuración de certificado CA personalizado
  • Gestión de sesiones: Generación automática de UUID para modo HTTP
  • Descubrimiento dinámico de API: Basado en la especificación oficial de OpenAPI de Kibana

Gestión de objetos guardados

  • Operaciones CRUD completas para todos los tipos de objetos guardados de Kibana
  • Búsqueda inteligente con soporte de paginación
  • Operaciones masivas para actualizaciones masivas eficientes
  • Control de versiones con concurrencia optimista
  • Gestión de referencias para relaciones entre objetos

🔧 Configuración

Variables requeridas

VariableDescripciónEjemplo
KIBANA_URLDirección del servidor Kibanahttp://localhost:5601

Autenticación (elija un método)

VariableDescripciónPrioridad
KIBANA_API_KEYClave API (codificada en base64)
KIBANA_USERNAME + KIBANA_PASSWORDAutenticación básica
KIBANA_COOKIESCookies de sesión

Variables opcionales

VariableDescripciónPredeterminado
KIBANA_DEFAULT_SPACEEspacio Kibana predeterminadodefault
KIBANA_CA_CERTRuta del certificado CA-
KIBANA_TIMEOUTTiempo de espera de solicitud (ms)30000
MCP_TRANSPORTModo de transportestdio
MCP_HTTP_PORTPuerto del servidor HTTP3000
MCP_HTTP_HOSTHost del servidor HTTPlocalhost
NODE_TLS_REJECT_UNAUTHORIZEDDeshabilitar validación SSL1

🛠️ Herramientas disponibles

Herramientas base

  • get_status - Obtener estado del servidor Kibana
  • execute_kb_api - Ejecutar solicitudes personalizadas a la API de Kibana
  • get_available_spaces - Listar espacios de Kibana disponibles
  • search_kibana_api_paths - Buscar endpoints de API
  • list_all_kibana_api_paths - Listar todos los endpoints de API
  • get_kibana_api_detail - Obtener detalles de un endpoint de API

Herramientas de objetos guardados

  • vl_search_saved_objects - Buscar objetos guardados (universal)
  • vl_get_saved_object - Obtener un objeto guardado individual
  • vl_create_saved_object - Crear nuevo objeto guardado
  • vl_update_saved_object - Actualizar un objeto guardado individual
  • vl_bulk_update_saved_objects - Operaciones de actualización masiva
  • vl_bulk_delete_saved_objects - Operaciones de eliminación masiva

Tipos de objetos compatibles: dashboard, visualization, index-pattern, search, config, lens, map, tag, canvas-workpad, canvas-element

Herramientas de análisis (v0.6.0+)

  • analyze_object_dependencies - Analizar dependencias de objetos guardados
  • analyze_deletion_impact - Verificar impacto antes de eliminar
  • check_dashboard_health - Verificación de estado de dashboards
  • scan_all_dashboards_health - Escaneo de estado por lotes

📖 Recursos

URI de recursoDescripción
kibana-api://pathsListar todos los endpoints de API disponibles
kibana-api://paths?search=<keyword>Buscar endpoints por palabra clave
kibana-api://path/{method}/{encoded_path}Obtener detalles de un endpoint específico

💬 Ejemplos de consultas

Operaciones básicas

  • "¿Cuál es el estado de mi servidor Kibana?"
  • "Lista todos los espacios de Kibana disponibles"
  • "Muéstrame todos los endpoints de API relacionados con dashboards"

Objetos guardados

  • "Buscar todos los dashboards"
  • "Encontrar visualizaciones que contengan 'nginx' en el título"
  • "Crear un nuevo dashboard llamado 'Resumen de Ventas'"
  • "Actualizar la descripción del dashboard 'my-dashboard-123'"
  • "Eliminar múltiples dashboards por sus IDs"

Estado y análisis

  • "Verificar el estado del dashboard 'overview'"
  • "Analizar dependencias de la visualización 'viz-123'"
  • "Escanear todos los dashboards en busca de problemas de estado"

🐛 Solución de problemas

Problemas de conexión

  • Verifique que la URL de Kibana sea accesible
  • Verifique las credenciales de autenticación
  • Para problemas SSL: NODE_TLS_REJECT_UNAUTHORIZED=0 (usar con precaución)

Problemas con Claude Desktop

  • Reinicie Claude Desktop después de cambios de configuración
  • Valide la sintaxis JSON de la configuración
  • Revise los registros de consola para ver errores

Errores comunes

  • "import: command not found": Actualice a la versión más reciente
  • Autenticación fallida: Verifique las credenciales y permisos
  • Errores SSL: Verifique el certificado CA o deshabilite la validación SSL

🔍 Depuración

Use MCP Inspector para depurar:

npm run inspector

Esto proporciona una interfaz de depuración accesible desde el navegador.


📦 Información del paquete


🤝 Contribuciones

Este proyecto es mantenido por la comunidad. ¡Las contribuciones y comentarios son bienvenidos!

Siga el Código de Conducta de la Comunidad Elastic en todas las comunicaciones.


📄 Licencia

Licencia Apache 2.0 - Consulte el archivo LICENSE para más detalles.