grafana-mcp
grafana-mcp
Stellt einen Teil der Grafana-API als MCP-Server (Model Context Protocol) bereit, mit Fokus auf die Abfrage von Logs in natürlicher Sprache. Das Hauptziel: Sagen Sie „Zeige mir Fehler-Logs vom api-Service der letzten 30 Minuten“ und erhalten Sie die tatsächlichen Log-Zeilen zurück — ohne LogQL, Labels oder Datenquellen-UIDs manuell verwalten zu müssen.
Log-Datenquellen, Loki-Labels und die Zuordnung von einem Servicenamen zu seiner hostenden Datenquelle/seinem Label werden auf der Festplatte zwischengespeichert, sodass wiederholte Aufrufe redundante Label-Scans überspringen.
Installation & Einrichtung
npx (keine Installation erforderlich)
Fügen Sie Folgendes zu ~/.mcp.json hinzu.
{
"mcpServers": {
"grafana": {
"command": "npx",
"args": ["@seungje.jun/grafana-mcp"],
"env": {
"GRAFANA_URL": "https://grafana.example.com",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "glsa_xxx"
}
}
}
}Aus Quellcode bauen
git clone https://github.com/ninanung/grafana-mcp.git
cd grafana-mcp
npm install
npm run build{
"mcpServers": {
"grafana": {
"command": "node",
"args": ["/path/to/grafana-mcp/dist/cli.js"],
"env": {
"GRAFANA_URL": "https://grafana.example.com",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "glsa_xxx"
}
}
}
}Starten Sie Claude Code neu, um die MCP-Tools zu aktivieren.
Authentifizierung
Eines der folgenden ist erforderlich. Sie werden in der unten stehenden Reihenfolge geprüft — das erste vorhandene gewinnt.
Variable | Wann zu verwenden |
| Grafana 9.1+ (empfohlen) |
| Grafana Cloud |
| Legacy API-Schlüssel (veraltet ab 10.x) |
| Basic Auth Fallback |
Alle Bearer-Token werden als Authorization: Bearer <token> gesendet. Dem Server ist es egal, um welche Art von Token es sich handelt — er wählt nur dasjenige aus, das gesetzt ist.
Umgebungsvariablen
Variable | Beschreibung |
| Grafana-Server-URL (Einzelinstanz-Modus, erforderlich, wenn |
| (optional) JSON-Array für den Multi-Instanz-Modus. Beispiel: |
| (optional) Wird als |
| (optional) |
| (optional) Log-Level: |
| (optional) Pfad zur Audit-Log-Datei. Standard ist |
| (optional) Auf |
| (optional) Pfad zur Log-Cache-Datei. Standard ist |
| (optional) TTL für den Log-Datenquellen-Listen-Cache. Standard |
| (optional) TTL für den Loki-Label-Key-Cache. Standard |
| (optional) TTL für den Loki-Label-Value-Cache. Standard |
| (optional) TTL für den |
Related MCP server: Log Analyzer MCP Server
Tools
Tool | Beschreibung |
| Diagnoseprüfung — Konnektivität, Version, Authentifizierung und Fähigkeitstests ( |
| Alle konfigurierten Datenquellen auflisten |
| Dashboards nach Abfrage/Tag/Typ durchsuchen |
| Vollständiges JSON eines Dashboards per UID abrufen |
| Panel-Abfragen (LogQL/PromQL) aus einem Dashboard extrahieren, mit |
| Nur Log-Datenquellen auflisten (Loki, Elasticsearch, CloudWatch, OpenSearch, Splunk). Zwischengespeichert |
| Servicenamen auflisten, die aus Loki-Labels erkennbar sind — nützlich vor dem Aufruf von |
| Logs für einen Service/Zeitbereich/Level abfragen. Erkennt automatisch die Log-Datenquelle und das Service-Label. Unterstützt |
| Überprüfen, was aktuell zwischengespeichert ist (Log-Datenquellen, Labels, aufgelöste Services) |
| Die Auflösung eines Services ungültig machen oder alle Einträge für die Grafana-Instanz löschen |
| Log-Cache in eine JSON-Datei exportieren |
| Log-Cache aus einer JSON-Datei importieren (zusammenführen/ersetzen) |
Anwendungsbeispiel
Ein typischer Ablauf in natürlicher Sprache, orchestriert durch den MCP-Client:
Benutzer: „Zeige mir Fehler-Logs vom api-Service der letzten 30 Minuten.“
query_logsmitservice: "api",level: "error",time_from: "now-30m"→ der Server erkennt automatisch, welche Loki-Datenquelle dasservice="api"-Label besitzt und führt LogQL aus.(Erster Aufruf) die Service → Datenquelle/Label-Zuordnung wird im Cache gespeichert; nachfolgende Aufrufe überspringen den Erkennungsschritt.
Benutzer: „Fasse diese Fehler nach Mustern zusammen.“ → derselbe Aufruf mit
output: "summarize"gibt nach Mustern gruppierte Zählungen zurück.Benutzer: „Welche anderen Services haben wir?“ →
list_servicesgibt die vollständige Serviceliste zurück.
Wenn der Servicename einen Tippfehler enthält, zeigt query_logs ähnliche Übereinstimmungen an (z. B. Meinten Sie: checkout, checkout-api?).
Funktionsweise der automatischen Erkennung
query_logs wählt die Zieldatenquelle und das Label selbstständig aus:
Filtern aller Datenquellen auf Log-Typen (Loki/ES/CloudWatch/OpenSearch/Splunk).
Für jede Loki-Datenquelle
/loki/api/v1/labelsabrufen und zuerst gängige Service-Label-Kandidaten (service,service_name,app,app_name,application,container,job) durchlaufen, dann alle verbleibenden Labels.Für jedes Kandidaten-Label dessen Werte abrufen und prüfen, ob der angeforderte
service-Name in dieser Liste enthalten ist.Wenn genau ein
(datasource, label)-Paar übereinstimmt, dieses verwenden. Wenn mehrere übereinstimmen,datasource_uidzur Disambiguierung anfordern. Wenn keine übereinstimmen, Vorschläge für ähnliche Namen zurückgeben.Die aufgelöste
(service → ds_uid, label)-Zuordnung wird zwischengespeichert;refresh: trueoderrefresh_log_cacheerzwingt eine erneute Erkennung.
Die automatische Erkennung unterstützt derzeit nur Loki. Für Elasticsearch / CloudWatch / Splunk-Datenquellen übergeben Sie datasource_uid und service_label explizit (und erwarten Sie nicht, dass LogQL-spezifische Filter angewendet werden).
Ausgabemodi
query_logs akzeptiert output:
raw(Standard):<ISO-Zeitstempel> <Log-Zeile>— gut zum direkten Lesen in einem Terminal.summarize: gruppiert Zeilen nach normalisiertem Muster (Zahlen →N, UUIDs →UUID) mit Zählungen und einem Beispiel pro Muster. Verwenden, wenn Zeilen verrauscht oder zu zahlreich sind.json: strukturierte Objekte{ ts, line, labels }— für nachgelagerte Tools.
Cache
Log-Cache: persistent gespeichert unter
~/.grafana-mcp/log-cache.json. Mit der Grafana-Basis-URL als Schlüssel, damit mehrere Instanzen nicht kollidieren.Jede Kategorie hat ihre eigene TTL (Datenquellen / Labels / Label-Werte / Service-Auflösung) — siehe die Tabelle der Umgebungsvariablen oben.
Eine zwischengespeicherte Service-Auflösung, die später fehlschlägt (z. B. Label wurde umbenannt), wird automatisch ungültig gemacht, sodass der nächste Aufruf eine erneute Erkennung durchführt.
Verwenden Sie
get_log_cachezum Überprüfen,refresh_log_cachezum Löschen undexport_log_cache/import_log_cachezum Teilen mit Teamkollegen.
Cache-Speicherort & Zurücksetzen
Cache | Speicherort | Zurücksetzen |
Log-Cache |
|
|
Die Cache-Datei ist ein einfaches JSON-Dokument — sicher zu überprüfen, zu bearbeiten oder manuell zu sichern.
Sicherheit & Einschränkungen
Schreibgeschützt: der Server stellt keinen Endpunkt bereit, der den Grafana-Zustand verändert. Kein Dashboard/Datenquellen-CRUD, keine Änderungen an Alarmen.
Stdio-Logs: alle Logs gehen an stderr, wodurch der MCP-stdio-Kanal sauber bleibt.
TLS-Überspringung:
GRAFANA_TLS_SKIP_VERIFY=truesetztNODE_TLS_REJECT_UNAUTHORIZED=0prozessweit. Nur für selbstsigniertes Grafana in vertrauenswürdigen Netzwerken verwenden.Keine Protokollierung von Geheimnissen: Authentifizierungs-Token werden niemals in Audit-Logs geschrieben.
Lizenz
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server giving access to Grafana dashboards, data and more.
The Grafbase MCP server sits in front of a GraphQL API and exposes an MCP protocol-compliant interface that allows AI agents and LLMs to explore and query GraphQL APIs using natural language. It provides tools to search schemas, introspect types and fields, and execute GraphQL queries while minimizing context bloat by returning only relevant schema subsets, with built-in support for authentication, authorization, and configurable access control.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
Related MCP Servers
- AlicenseAqualityDmaintenanceA server that enables AI assistants to access and query Grafana dashboards, metrics, logs, and configurations through an MCP protocol interface.106MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for intelligent log analysis providing semantic search, error pattern clustering, and smart error detection. It enables users to process, vectorize, and query local logs to efficiently identify issues and generate AI-powered summaries.MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables querying logs and metrics from Graylog, Prometheus, and InfluxDB 2.x. It provides tools for executing Lucene log searches, PromQL queries, and Flux queries directly within MCP-compatible clients.MIT
- AlicenseAqualityCmaintenanceAn MCP server for querying Grafana Loki directly with a discovery-first workflow — labels, values, series, and LogQL queries without requiring Grafana.56MIT