Skip to main content
Glama
mshegolev

mshegolev/kibana-mcp

kibana-mcp

PyPI version Python 3.10+ License: MIT Tests

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 funktioniert

  • Ist schreibgeschützt — alle Tools tragen readOnlyHint: true, es werden keine Daten geändert

Tools

Tool

API

Beschreibung

kibana_list_indices

GET ES/_cat/indices

Verfügbare Indizes mit Status, Dokumenten und Größe entdecken

kibana_search_logs

POST ES/{index}/_search

Volltext-Protokollsuche mit Zeitbereich, Sortierung und Größe

kibana_aggregate_logs

POST ES/{index}/_search

Gruppierung nach Begriffen mit Metriken für Anzahl/Durchschnitt/Summe/Minimum/Maximum

kibana_list_dashboards

GET Kibana/api/saved_objects/_find

Gespeicherte Dashboards mit Suche + Paginierung auflisten

kibana_get_dashboard

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

Ein Dashboard mit Panel-Aufschlüsselung abrufen

Installation

pip install kibana-mcp

Oder direkt mit uvx ausführen:

uvx kibana-mcp

Konfiguration

Umgebungsvariablen

Variable

Erforderlich

Beschreibung

KIBANA_URL

Ja

Kibana-Basis-URL (z. B. https://kibana.example.com)

ELASTICSEARCH_URL

Nein

Direkter ES-Endpunkt. Wenn nicht gesetzt, laufen ES-Anfragen über den Kibana Console-Proxy

KIBANA_API_KEY

Nein

ES-API-Schlüssel (Format ApiKey base64(id:api_key)). Empfohlen für Agenten

KIBANA_USERNAME

Nein

HTTP Basic Auth-Benutzername (wird verwendet, wenn kein API-Schlüssel gesetzt ist)

KIBANA_PASSWORD

Nein

HTTP Basic Auth-Passwort

KIBANA_SSL_VERIFY

Nein

true (Standard) oder false für selbstsignierte Zertifikate

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

Anwendungsbeispiele

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

  • Aggregationen (kibana_aggregate_logs): size:0-Abfragen — keine Treffer übertragen, normalerweise 10-100 ms

  • Index-Auflistung: einzelner _cat/indices-Aufruf, O(index_count)-Antwort, typischerweise <100 ms

  • Dashboard-APIs: Kibana Saved Objects API, typischerweise 50-200 ms; Latenz liegt auf Kibana-Seite, nicht im Netzwerk

  • Setzen Sie ELASTICSEARCH_URL direkt, 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 tests

Lizenz

MIT — siehe 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