mshegolev/kibana-mcp
kibana-mcp
MCP-Server für Kibana / Elasticsearch — Protokollsuche, Aggregationen, Index-Erkennung und Dashboard-Browsing über Claude und jeden MCP-kompatiblen Agenten.
Warum ein weiteres Kibana MCP?
Bestehende Integrationen erfordern eine laufende Kibana-Instanz mit Anmeldedaten auf Browserebene und umschließen oft die Kibana-Benutzeroberfläche, anstatt die stabilen REST-APIs zu nutzen. Dieser Server:
Greift für Protokollabfragen direkt auf die Elasticsearch REST API zu (schneller, stabil bei Änderungen der Kibana-Benutzeroberfläche)
Greift auf den Kibana Console-Proxy zurück, wenn keine direkte ES-URL konfiguriert ist (keine zusätzlichen Firewall-Regeln erforderlich)
Unterstützt ApiKey-Authentifizierung (am besten für Agenten) sowie Basic-Authentifizierung und anonymen Zugriff
Gibt sowohl strukturiertes JSON (
outputSchema) als auch Markdown-Text zurück, sodass er mit jedem MCP-Client funktioniertIst schreibgeschützt — alle Tools tragen
readOnlyHint: true, es werden keine Daten geändert
Tools
Tool | API | Beschreibung |
|
| Verfügbare Indizes mit Status, Dokumenten und Größe entdecken |
|
| Volltext-Protokollsuche mit Zeitbereich, Sortierung und Größe |
|
| Gruppierung nach Begriffen mit Metriken für Anzahl/Durchschnitt/Summe/Minimum/Maximum |
|
| Gespeicherte Dashboards mit Suche + Paginierung auflisten |
|
| Ein Dashboard mit Panel-Aufschlüsselung abrufen |
Installation
pip install kibana-mcpOder direkt mit uvx ausführen:
uvx kibana-mcpKonfiguration
Umgebungsvariablen
Variable | Erforderlich | Beschreibung |
| Ja | Kibana-Basis-URL (z. B. |
| Nein | Direkter ES-Endpunkt. Wenn nicht gesetzt, laufen ES-Anfragen über den Kibana Console-Proxy |
| Nein | ES-API-Schlüssel (Format |
| Nein | HTTP Basic Auth-Benutzername (wird verwendet, wenn kein API-Schlüssel gesetzt ist) |
| Nein | HTTP Basic Auth-Passwort |
| Nein |
|
Authentifizierungspriorität: ApiKey > Basic > anonym.
Kopieren Sie .env.example nach .env und tragen Sie Ihre Werte ein.
MCP-Client-Konfiguration (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"
}
}
}
}Oder mit direktem ES-Zugriff für bessere Leistung:
{
"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-mcpAnwendungsbeispiele
Protokollsuche
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)
Aggregationen
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")
Index-Erkennung
What log indices are available?→ kibana_list_indices()
Show me all filebeat indices→ kibana_list_indices(pattern="filebeat-*")
Dashboards
Find the infrastructure dashboard→ kibana_list_dashboards(search="infrastructure")
What panels does dashboard X have?→ kibana_get_dashboard(dashboard_id="<id from list_dashboards>")
Leistungsmerkmale
Protokollsuche (
kibana_search_logs): typischerweise 50-500 ms mit direkter ES-URL; 100-200 ms zusätzlich bei Routing über den Kibana Console-ProxyAggregationen (
kibana_aggregate_logs):size:0-Abfragen — keine Treffer übertragen, normalerweise 10-100 msIndex-Auflistung: einzelner
_cat/indices-Aufruf, O(index_count)-Antwort, typischerweise <100 msDashboard-APIs: Kibana Saved Objects API, typischerweise 50-200 ms; Latenz liegt auf Kibana-Seite, nicht im Netzwerk
Setzen Sie
ELASTICSEARCH_URLdirekt, wenn Ihr Agent häufig Protokollsuchen durchführt — dies eliminiert den Proxy-Mehraufwand
Entwicklung
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 testsLizenz
MIT — siehe LICENSE.
Maintenance
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