/ Directorio / Playground / Grafana MCP
● Oficial grafana 🔑 Requiere tu clave

Grafana MCP

por grafana · grafana/mcp-grafana

El MCP oficial de Grafana — consulta Prometheus/Loki/Tempo, lista dashboards, obtén alertas, ejecuta timelines de incidentes, todo detrás de un servidor stdio.

El servidor MCP de primera parte de Grafana se conecta a tu stack Grafana (OSS, Cloud o Enterprise) y expone sus fuentes de datos + API de gestión como herramientas MCP. Obtienes consultas Prometheus/Loki/Tempo, descubrimiento de dashboards, estado de alertas, OnCall e investigaciones Sift — todo lo que Grafana puede hacer, Claude puede preguntar.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

mcp-grafana.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/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}"
      }
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.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 usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

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}"
      }
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "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}"
      }
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.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 usa un array de objetos de servidor en lugar de un mapa.

~/.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"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

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

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: Grafana MCP

Construir un timeline de incidente con datos de Grafana

👤 SREs / ingenieros de guardia ⏱ ~10 min intermediate

Cuándo usarlo: Acaba de dispararse la alerta; quieres un timeline coherente antes de unirte a la llamada.

Requisitos previos
  • Token de cuenta de servicio de Grafana — Grafana → Administration → Service accounts; el rol Editor es suficiente para consultas
Flujo
  1. Qué está disparando
    Grafana: lista las alertas disparadas en los últimos 30 minutos para service=checkout.✓ Copiado
    → list_alerts devuelve 1+ alertas con timestamps
  2. Extraer la métrica
    Para cada alerta, ejecuta una consulta de rango Prometheus para la métrica subyacente en la última 1h. Anota el momento de la brecha.✓ Copiado
    → query_prometheus_range devuelve series temporales
  3. Extraer logs en el momento de la brecha
    Loki: logs para service=checkout, level=error, [breach_time-2m, breach_time+2m]. Patrones principales.✓ Copiado
    → Líneas de log agrupadas por firma
  4. Componer el timeline
    Construye un timeline conciso: alerta disparada → brecha de métrica → top 3 patrones de log de error. Markdown para Slack.✓ Copiado
    → Timeline listo para pegar

Resultado: Timeline de incidente coherente montado antes de unirte a la llamada.

Errores comunes
  • Consulta Loki demasiado amplia → explota el presupuesto de tokens — Incluye siempre el label service=; limita agresivamente la ventana temporal
  • Consulta Prometheus con step demasiado fino — Usa step=15s o 30s para ventanas de 1h
Combinar con: sentry

Explicar qué muestra realmente un dashboard de Grafana

👤 Nuevos miembros del equipo en onboarding ⏱ ~15 min beginner

Cuándo usarlo: Heredaste un dashboard y quieres entenderlo sin hacer clic en cada panel.

Flujo
  1. Encontrarlo
    Grafana: busca dashboards titulados 'Checkout SLO'.✓ Copiado
    → UID del dashboard devuelto
  2. Inspeccionar paneles
    Obtén el dashboard. Para cada panel, resume: título, fuente de datos, qué consulta ejecuta, qué umbral tiene (si lo hay).✓ Copiado
    → Explicación por panel; strings de consulta incluidos

Resultado: Comprensión documentada del dashboard lista para la wiki de onboarding.

Errores comunes
  • Variables sustituidas de forma extraña — Menciona que la interpolación de $service/$env ocurre en tiempo de dashboard, no en tiempo de MCP

Auditar reglas de alerta por ruido

👤 SRE leads ⏱ ~30 min intermediate

Cuándo usarlo: Higiene trimestral — encontrar reglas que disparan constantemente o nunca.

Flujo
  1. Extraer reglas
    Grafana: lista todas las reglas de alerta en la carpeta Production.✓ Copiado
    → Lista de reglas con UID + expresión
  2. Obtener historial de disparo
    Para cada una, cuenta las instancias de alerta en los últimos 30 días. Marca reglas con >100 (ruidosas) o 0 (dormidas).✓ Copiado
    → Conteos por regla + conjunto marcado
  3. Recomendar
    Para cada regla marcada, propón una corrección: ajustar umbral, añadir for: 5m o eliminar las dormidas.✓ Copiado
    → Cambios YAML concretos por regla

Resultado: Plan de limpieza concreto con YAML listo para PR.

Errores comunes
  • Contar instancias ≠ contar alertas únicas — Agrupa por labels; cuenta períodos de disparo distintos
Combinar con: github

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

mcp-grafana + sentry

Correlacionar errores de Sentry con brechas de métricas/logs

Sentry: obtén el pico de errores de OrderService. Grafana: extrae Prometheus + Loki en la misma ventana temporal.✓ Copiado
mcp-grafana + github

Abrir PR con limpieza de reglas de alerta

Grafana: audita las reglas de alerta. GitHub: abre un PR reemplazando las reglas ruidosas con umbrales ajustados.✓ Copiado
mcp-grafana + filesystem

Guardar el timeline de incidente en un post-mortem Markdown

Construye un timeline desde Grafana, guarda en /pm/2026-05-incident.md.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
list_datasources (ninguno) Primera llamada, conocer qué está disponible 1 llamada API
query_prometheus datasource_uid, query, time? Valor instantáneo de métrica 1 llamada
query_prometheus_range datasource_uid, query, start, end, step Investigación de series temporales 1 llamada
query_loki_logs datasource_uid, expr, start, end, limit? Extraer logs 1 llamada
search_dashboards query: str Encontrar un dashboard 1 llamada
get_dashboard uid: str Inspeccionar paneles 1 llamada
list_alert_rules folder? Auditar / descubrir 1 llamada
list_alert_instances state? Qué está disparando ahora 1 llamada
list_oncall_schedules (ninguno) Quién está de guardia 1 llamada

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Limitada por los límites de tu instancia Grafana; Cloud tiene caps de QPS por organización
Tokens por llamada
300–8000 (las consultas de rango pueden ser grandes)
Monetario
OSS gratuito; Grafana Cloud se factura normalmente
Consejo
Siempre pasa step= en consultas de rango; usa limit=100 en Loki a menos que conozcas el volumen

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: cuenta de servicio con rol Viewer o Editor
Almacenamiento de credenciales: Token de cuenta de servicio en variable de entorno
Salida de datos: Solo tu URL de Grafana
No conceder nunca: rol Admin a menos que necesites mutación de reglas

Resolución de problemas

Errores comunes y soluciones

401 Unauthorized

Token incorrecto o cuenta de servicio deshabilitada

Verificar: curl -H 'Authorization: Bearer $TOKEN' $URL/api/health
Timeout de consulta Prometheus

Reduce el rango temporal o el step

Loki 'parse error'

LogQL necesita filtro de label a la izquierda del pipeline; p. ej. {service="x"} |= "err"

Dashboard no encontrado

El UID cambió tras la importación; busca por título primero

Alternativas

Grafana MCP vs otros

AlternativaCuándo usarlaContrapartida
MCP directo de PrometheusSolo Prometheus, sin GrafanaSin dashboards, sin integración de UI de alertas
Datadog MCPUsas DatadogStack de observabilidad diferente
MCP independiente de LokiSolo logsSuperficie reducida

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills