/ Annuaire / Playground / Grafana MCP
● Officiel grafana 🔑 Nécessite votre clé

Grafana MCP

par grafana · grafana/mcp-grafana

Le MCP Grafana officiel — interrogez Prometheus/Loki/Tempo, listez les dashboards, récupérez les alertes, exécutez des timelines d'incident, le tout derrière un serveur stdio unique.

Le serveur MCP first-party de Grafana se connecte à votre stack Grafana (OSS, Cloud ou Enterprise) et expose ses sources de données + l'API de gestion comme outils MCP. Vous obtenez des requêtes Prometheus/Loki/Tempo, la découverte de dashboards, l'état des alertes, OnCall et les investigations Sift — tout ce que Grafana peut faire, Claude peut le demander.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

mcp-grafana.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-grafana",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-grafana": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GRAFANA_URL",
          "-e",
          "GRAFANA_API_KEY",
          "mcp/grafana",
          "-t",
          "stdio"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add mcp-grafana -- docker run -i --rm -e GRAFANA_URL -e GRAFANA_API_KEY mcp/grafana -t stdio

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : Grafana MCP

Construire une timeline d'incident depuis les données Grafana

👤 SREs / astreinte ⏱ ~10 min intermediate

Quand l'utiliser : L'alerte vient de se déclencher ; vous voulez une timeline cohérente avant de rejoindre l'appel.

Prérequis
  • Token de compte de service Grafana — Grafana → Administration → Comptes de service ; le rôle Éditeur suffit pour les requêtes
Déroulement
  1. Ce qui se déclenche
    Grafana : liste les alertes en feu dans les 30 dernières minutes pour service=checkout.✓ Copié
    → list_alerts retourne 1+ alertes avec timestamps
  2. Récupérer la métrique
    Pour chaque alerte, lance une range query Prometheus pour la métrique sous-jacente sur la dernière heure. Note l'heure de dépassement du seuil.✓ Copié
    → query_prometheus_range retourne des séries temporelles
  3. Récupérer les logs au moment du dépassement
    Loki : logs pour service=checkout, level=error, [heure_breach-2m, heure_breach+2m]. Principaux patterns.✓ Copié
    → Lignes de log regroupées par signature
  4. Composer la timeline
    Construis une timeline concise : alerte déclenchée → dépassement de métrique → top 3 patterns d'erreurs de logs. Markdown pour Slack.✓ Copié
    → Timeline prête à coller

Résultat : Timeline d'incident cohérente assemblée avant de rejoindre l'appel.

Pièges
  • Requête Loki trop large → fait exploser le budget token — Incluez toujours le label service= ; limitez la fenêtre temporelle agressivement
  • Requête Prometheus avec un step trop fin — Utilisez step=15s ou 30s pour des fenêtres d'1h
Combiner avec : sentry

Comprendre ce qu'un dashboard Grafana affiche réellement

👤 Nouveau membre d'équipe en onboarding ⏱ ~15 min beginner

Quand l'utiliser : Vous avez hérité d'un dashboard et voulez le comprendre sans cliquer sur chaque panneau.

Déroulement
  1. Le trouver
    Grafana : recherche les dashboards intitulés 'Checkout SLO'.✓ Copié
    → UID du dashboard retourné
  2. Inspecter les panneaux
    Récupère le dashboard. Pour chaque panneau, résume : titre, datasource, quelle requête il exécute, quel seuil (si présent).✓ Copié
    → Explication par panneau ; chaînes de requêtes incluses

Résultat : Compréhension documentée du dashboard prête pour le wiki d'onboarding.

Pièges
  • Variables substituées bizarrement — Mentionnez que l'interpolation $service/$env se fait au moment du dashboard, pas via le MCP

Auditer les règles d'alerte pour le bruit

👤 Leads SRE ⏱ ~30 min intermediate

Quand l'utiliser : Hygiène trimestrielle — trouver les règles qui se déclenchent constamment ou jamais.

Déroulement
  1. Récupérer les règles
    Grafana : liste toutes les règles d'alerte dans le dossier Production.✓ Copié
    → Liste de règles avec UID + expression
  2. Obtenir l'historique de déclenchement
    Pour chacune, comptez les instances d'alerte dans les 30 derniers jours. Signalez les règles avec >100 (bruyantes) ou 0 (dormantes).✓ Copié
    → Comptes par règle + ensemble signalé
  3. Recommander
    Pour chaque règle signalée, propose un correctif : resserrer le seuil, ajouter for: 5m, ou supprimer les dormantes.✓ Copié
    → Modifications YAML concrètes par règle

Résultat : Plan de nettoyage concret avec YAML prêt pour une PR.

Pièges
  • Compter les instances ≠ compter les alertes uniques — Groupez par labels ; comptez les périodes de déclenchement distinctes
Combiner avec : github

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

mcp-grafana + sentry

Corréler les erreurs Sentry avec les dépassements de métriques/logs

Sentry : récupère le pic d'erreurs pour OrderService. Grafana : récupère Prometheus + Loki sur la même fenêtre.✓ Copié
mcp-grafana + github

Ouvrir une PR avec le nettoyage des règles d'alerte

Grafana : audite les règles d'alerte. GitHub : ouvre une PR remplaçant les règles bruyantes par des seuils resserrés.✓ Copié
mcp-grafana + filesystem

Sauvegarder la timeline d'incident dans un post-mortem Markdown

Construis une timeline depuis Grafana, sauvegarde sous /pm/2026-05-incident.md.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_datasources (aucun) Premier appel, découvrir ce qui est disponible 1 appel API
query_prometheus datasource_uid, query, time? Valeur de métrique instantanée 1 appel
query_prometheus_range datasource_uid, query, start, end, step Investigation de séries temporelles 1 appel
query_loki_logs datasource_uid, expr, start, end, limit? Récupérer des logs 1 appel
search_dashboards query: str Trouver un dashboard 1 appel
get_dashboard uid: str Inspecter les panneaux 1 appel
list_alert_rules folder? Audit / découverte 1 appel
list_alert_instances state? Ce qui se déclenche maintenant 1 appel
list_oncall_schedules (aucun) Qui est d'astreinte 1 appel

Coût et limites

Coût d'exécution

Quota d'API
Lié aux limites de votre instance Grafana ; Cloud a des plafonds QPS au niveau org
Tokens par appel
300–8000 (les range queries peuvent être volumineuses)
Monétaire
OSS gratuit ; Grafana Cloud facturé normalement
Astuce
Passez toujours step= sur les range queries ; utilisez Loki limit=100 sauf si vous connaissez le volume

Sécurité

Permissions, secrets, portée

Portées minimales : compte de service avec rôle Viewer ou Editor
Stockage des identifiants : Token de compte de service dans une variable d'env
Sortie de données : Uniquement votre URL Grafana
Ne jamais accorder : rôle Admin sauf si vous avez besoin de modifier les règles

Dépannage

Erreurs courantes et correctifs

401 Unauthorized

Token incorrect ou compte de service désactivé

Vérifier : curl -H 'Authorization: Bearer $TOKEN' $URL/api/health
Timeout de requête Prometheus

Réduisez la plage temporelle ou le step

Erreur de parsing Loki

LogQL nécessite un filtre de label à gauche du pipeline ; ex. {service="x"} |= "err"

Dashboard non trouvé

L'UID a changé après import ; recherchez d'abord par titre

Alternatives

Grafana MCP vs autres

AlternativeQuand l'utiliserCompromis
MCP Prometheus directPrometheus uniquement, sans GrafanaPas de dashboards, pas d'intégration UI des alertes
Datadog MCPVous êtes sur DatadogStack d'observabilité différente
Loki MCP standaloneLogs uniquementSurface plus réduite

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills