Ein Modellkontextprotokoll (MCP) Server für Grafana, der KI-Agenten den Zugriff auf Grafana-Instanzen und deren Ökosystem ermöglicht und Funktionen wie Dashboard-Verwaltung, Datenquellenabfragen und Alarmregelkonfiguration unterstützt.
Grafana MCP Server – Detaillierte Projektbeschreibung
Projektübersicht
Grafana MCP Server ist ein Server, der auf dem Model Context Protocol (MCP) basiert und speziell für die Integration mit Grafana-Instanzen und deren Ökosystem entwickelt wurde. Das Projekt bietet KI-Agenten (wie Claude Desktop) die Möglichkeit, auf verschiedene Grafana-Funktionen zuzugreifen und diese zu bedienen.
Kernfunktionsmerkmale
Dashboard-Verwaltung
- Dashboards suchen: Schnelles Auffinden und Lokalisieren bestimmter Dashboards
- Dashboard abrufen: Abrufen der vollständigen Dashboard-Konfiguration über die UID
- Dashboards aktualisieren/erstellen: Dynamisches Ändern oder Erstellen neuer Dashboards (Kontextfensterbeschränkungen beachten)
Datenquellenintegration
- Datenquellenverwaltung: Auflisten und Abrufen von Datenquelleninformationen
- Unterstützung für Abfragen mehrerer Datenquellen:
- Prometheus: Ausführen von PromQL-Abfragen, um Metrikdaten abzurufen
- Loki: Ausführen von LogQL-Abfragen, um Protokolldaten abzurufen
- Tempo: Abfrage verteilter Tracing-Daten
- Pyroscope: Abfrage von Performance-Analysedaten
Metadatenabfrage
- Prometheus-Metadaten: Abrufen von Metrikmetadaten, Metriknamen, Labelnamen und Labelwerten
- Loki-Metadaten: Abrufen von Protokoll-Labelnamen, Labelwerten und Statistiken
Ereignis- und Alarmmanagement
- Ereignismanagement: Suchen, Erstellen, Aktualisieren und Schließen von Ereignissen
- Alarmregeln: Auflisten und Abrufen von Alarmregelinformationen, Abrufen des Alarmstatus
- Kontaktpunktverwaltung: Auflisten, Erstellen und Ändern von Alarmkontaktpunkten
Grafana OnCall Integration
- Dienstplanverwaltung: Auflisten und Verwalten von Dienstplänen
- Dienstinformationen: Abrufen von Dienstdetails und des aktuell diensthabenden Benutzers
- Team- und Benutzerverwaltung: Verwalten von Teams und Benutzerinformationen
- Alarmgruppenverwaltung: Auflisten von Alarmgruppen
Sift Untersuchungsfunktion
- Intelligente Untersuchung: Starten einer Sift-Untersuchung und Anzeigen der Ergebnisse
- Untersuchungsmanagement: Erstellen, Auflisten und Abrufen von Untersuchungsinformationen
- Analysefunktionen: Abrufen von Untersuchungsergebnissen
- Fehlermustererkennung: Suchen nach Fehlermustern in Protokollen
- Performance-Analyse: Identifizieren langsamer Anfragen
Werkzeugkonfiguration
Das Projekt bietet flexible Werkzeugkonfigurationsoptionen, mit denen Sie bestimmte Funktionskategorien aktivieren oder deaktivieren können:
Werkzeugname | Kategorie | Beschreibung |
---|---|---|
search_dashboards |
Search | Dashboards suchen |
get_dashboard_by_uid |
Dashboard | Dashboard über UID abrufen |
update_dashboard |
Dashboard | Dashboard aktualisieren oder erstellen |
list_datasources |
Datasources | Datenquellen auflisten |
query_prometheus |
Prometheus | Prometheus-Abfrage ausführen |
query_loki_logs |
Loki | Protokolle abfragen und abrufen |
list_incidents |
Incident | Ereignisse auflisten |
list_alert_rules |
Alerting | Alarmregeln auflisten |
list_oncall_schedules |
OnCall | OnCall-Dienstpläne auflisten |
find_error_pattern_logs |
Sift | Fehlermuster finden |
Verwenden Sie das Flag --disable-<category>
, um bestimmte Werkzeugkategorien zu deaktivieren. Verwenden Sie beispielsweise --disable-oncall
, um OnCall-bezogene Werkzeuge zu deaktivieren.
Installation und Konfiguration
Installationsmethoden
1. Docker-Image
docker pull mcp/grafana
docker run -p 8000:8000 -e GRAFANA_URL=http://localhost:3000 -e GRAFANA_API_KEY=<your_token> mcp/grafana
2. Binärdatei herunterladen
Laden Sie die neueste Version von der Releases-Seite herunter und platzieren Sie sie im Verzeichnis $PATH
.
3. Quellcode kompilieren
GOBIN="$HOME/go/bin" go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@latest
Konfigurationseinstellungen
Voraussetzungen
- Erstellen Sie in Grafana ein Dienstkonto und weisen Sie ihm ausreichende Berechtigungen zu
- Generieren Sie ein Dienstkonto-Token
Claude Desktop Konfiguration
Verwendung der Binärdatei:
{
"mcpServers": {
"grafana": {
"command": "mcp-grafana",
"args": [],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_API_KEY": "<your service account token>"
}
}
}
}
Verwendung von Docker:
{
"mcpServers": {
"grafana": {
"command": "docker",
"args": [
"run", "--rm", "-p", "8000:8000",
"-e", "GRAFANA_URL", "-e", "GRAFANA_API_KEY",
"mcp/grafana"
],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_API_KEY": "<your service account token>"
}
}
}
}
Debug-Modus
Aktivieren Sie den Debug-Modus durch Hinzufügen des Flags -debug
, um detaillierte HTTP-Anfrage- und Antwortprotokolle bereitzustellen:
{
"mcpServers": {
"grafana": {
"command": "mcp-grafana",
"args": ["-debug"],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_API_KEY": "<your service account token>"
}
}
}
}
Entwicklung und Tests
Entwicklungsumgebung einrichten
# Server ausführen
make run
# Docker-Image erstellen
make build-image
# Docker-Container ausführen
docker run -it --rm -p 8000:8000 mcp-grafana:latest
Testtypen
Unit-Tests
make test-unit
# Oder
make test
Integrationstests
# Docker-Container muss gestartet sein
make test-integration
Cloud-Tests
# Benötigt eine Cloud-Grafana-Instanz und Anmeldeinformationen
make test-cloud
Vollständige Tests
# Lokale Grafana-Instanz starten
docker-compose up -d
# Alle Tests ausführen
make test-all
Codequalität
Code-Überprüfung
make lint
JSON-Schema-Überprüfung
Das Projekt enthält einen benutzerdefinierten Linter, um nicht maskierte Kommas in jsonschema
-Struktur-Tags zu überprüfen:
make lint-jsonschema
Technische Architektur
- Programmiersprache: Go
- Protokoll: Model Context Protocol (MCP)
- Kommunikationsmethode: stdin/stdout oder SSE (Server-Sent Events)
- Unterstützte Clients: Claude Desktop und andere MCP-kompatible Clients
Anwendungsfälle
- KI-gestützte Überwachung: Ermöglichen Sie KI-Agenten, Überwachungsdaten intelligent abzufragen und zu analysieren
- Automatisierter Betrieb: Automatisches Erstellen und Verwalten von Dashboards und Alarmregeln durch KI
- Intelligente Ereignisreaktion: Verwenden Sie KI, um Protokolle und Metriken zu analysieren, um Probleme schnell zu lokalisieren und zu beheben
- Dateneinblicke: Lassen Sie sich von KI helfen, wertvolle Informationen aus komplexen Überwachungsdaten zu extrahieren
Dieses Projekt stellt einen neuen Trend in der Integration von KI und traditionellen Überwachungswerkzeugen dar und bietet Entwicklern eine leistungsstarke Brücke, um KI-Assistenten und das Grafana-Ökosystem zu verbinden.