Kibana MCP Server
Accede e interactúa con tu instancia de Kibana usando lenguaje natural o solicitudes programáticas.
Documentación
Kibana MCP Server
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
| Variable | Descripción | Ejemplo |
|---|---|---|
KIBANA_URL | Dirección del servidor Kibana | http://localhost:5601 |
Autenticación (elija un método)
| Variable | Descripción | Prioridad |
|---|---|---|
KIBANA_API_KEY | Clave API (codificada en base64) | 1ª |
KIBANA_USERNAME + KIBANA_PASSWORD | Autenticación básica | 2ª |
KIBANA_COOKIES | Cookies de sesión | 3ª |
Variables opcionales
| Variable | Descripción | Predeterminado |
|---|---|---|
KIBANA_DEFAULT_SPACE | Espacio Kibana predeterminado | default |
KIBANA_CA_CERT | Ruta del certificado CA | - |
KIBANA_TIMEOUT | Tiempo de espera de solicitud (ms) | 30000 |
MCP_TRANSPORT | Modo de transporte | stdio |
MCP_HTTP_PORT | Puerto del servidor HTTP | 3000 |
MCP_HTTP_HOST | Host del servidor HTTP | localhost |
NODE_TLS_REJECT_UNAUTHORIZED | Deshabilitar validación SSL | 1 |
🛠️ Herramientas disponibles
Herramientas base
get_status- Obtener estado del servidor Kibanaexecute_kb_api- Ejecutar solicitudes personalizadas a la API de Kibanaget_available_spaces- Listar espacios de Kibana disponiblessearch_kibana_api_paths- Buscar endpoints de APIlist_all_kibana_api_paths- Listar todos los endpoints de APIget_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 individualvl_create_saved_object- Crear nuevo objeto guardadovl_update_saved_object- Actualizar un objeto guardado individualvl_bulk_update_saved_objects- Operaciones de actualización masivavl_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 guardadosanalyze_deletion_impact- Verificar impacto antes de eliminarcheck_dashboard_health- Verificación de estado de dashboardsscan_all_dashboards_health- Escaneo de estado por lotes
📖 Recursos
| URI de recurso | Descripción |
|---|---|
kibana-api://paths | Listar 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
- NPM: @tocharianou/mcp-server-kibana
- GitHub: TocharianOU/mcp-server-kibana
- Node.js: >= 18.0.0
- Licencia: Apache 2.0
🤝 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.
