/ Каталог / Песочница / Grafana MCP
● Официальный grafana 🔑 Нужен свой ключ

Grafana MCP

автор grafana · grafana/mcp-grafana

Официальный MCP Grafana — запросы к Prometheus/Loki/Tempo, список дашбордов, получение alert'ов, timeline инцидентов — всё за одним stdio-сервером.

First-party MCP server от Grafana подключается к вашему стеку Grafana (OSS, Cloud или Enterprise) и предоставляет источники данных и management API в виде MCP-инструментов. Вы получаете запросы Prometheus/Loki/Tempo, поиск по дашбордам, состояние alert'ов, OnCall и расследования Sift — всё, на что способна Grafana, может спросить Claude.

Зачем использовать

Ключевые функции

Живое демо

Как выглядит на практике

mcp-grafana.replay ▶ готово
0/0

Установка

Выберите клиент

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

Откройте Claude Desktop → Settings → Developer → Edit Config. Перезапустите после сохранения.

~/.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 использует ту же схему mcpServers, что и Claude Desktop. Конфиг проекта приоритетнее глобального.

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

Щёлкните значок MCP Servers на боковой панели Cline, затем "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}"
      }
    }
  }
}

Тот же формат, что и Claude Desktop. Перезапустите Windsurf для применения.

~/.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 использует массив объектов серверов, а не 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"
        ]
      }
    }
  }
}

Добавьте в context_servers. Zed перезагружается автоматически.

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

Однострочная команда. Проверить: claude mcp list. Удалить: claude mcp remove.

Сценарии использования

Реальные сценарии: Grafana MCP

Составить timeline инцидента из данных Grafana

👤 SRE / дежурные ⏱ ~10 min intermediate

Когда использовать: Сработал пейджер; нужен связный timeline до начала звонка.

Предварительные требования
  • Токен service account Grafana — Grafana → Administration → Service accounts; для запросов достаточно роли Editor
Поток
  1. Что срабатывает
    Grafana: перечисли срабатывающие alert'ы за последние 30 минут для service=checkout.✓ Скопировано
    → list_alerts возвращает 1+ alert'ов с временными метками
  2. Получить метрику
    Для каждого alert'а выполни Prometheus range query по базовой метрике за последний 1 час. Зафиксируй момент превышения порога.✓ Скопировано
    → query_prometheus_range возвращает временные ряды
  3. Получить логи в момент нарушения
    Loki: логи для service=checkout, level=error, [breach_time-2m, breach_time+2m]. Топ паттернов.✓ Скопировано
    → Строки логов сгруппированы по сигнатуре
  4. Составить timeline
    Составь краткий timeline: сработал alert → превышение метрики → топ-3 паттерна ошибок в логах. Markdown для Slack.✓ Скопировано
    → Timeline готов для вставки

Итог: Связный timeline инцидента собран до начала звонка.

Подводные камни
  • Слишком широкий запрос Loki → превышение бюджета токенов — Всегда указывай лейбл service=; агрессивно ограничивай временное окно
  • Слишком маленький шаг в запросе Prometheus — Используй step=15s или 30s для окон в 1 час
Сочетать с: sentry

Понять что на самом деле показывает дашборд Grafana

👤 Новые члены команды при онбординге ⏱ ~15 min beginner

Когда использовать: Достался дашборд по наследству и хочется разобраться без клика по каждой панели.

Поток
  1. Найти
    Grafana: найди дашборды с заголовком «Checkout SLO».✓ Скопировано
    → Возвращён UID дашборда
  2. Изучить панели
    Получи дашборд. Для каждой панели суммируй: название, источник данных, какой запрос выполняется, порог (если есть).✓ Скопировано
    → Объяснение по каждой панели со строками запросов

Итог: Задокументированное понимание дашборда для wiki онбординга.

Подводные камни
  • Переменные подставляются странно — Упомяни, что интерполяция $service/$env происходит при просмотре дашборда, а не в MCP

Аудит правил алертинга на шум

👤 Технические руководители SRE ⏱ ~30 min intermediate

Когда использовать: Квартальная гигиена — найти правила, которые срабатывают постоянно или никогда.

Поток
  1. Получить правила
    Grafana: перечисли все правила alert'ов в папке Production.✓ Скопировано
    → Список правил с UID + выражением
  2. Получить историю срабатываний
    Для каждого подсчитай экземпляры alert'ов за последние 30 дней. Отметь правила с >100 (шумные) или 0 (спящие).✓ Скопировано
    → Количество по каждому правилу + помеченный набор
  3. Рекомендации
    Для каждого помеченного правила предложи исправление: сузить порог, добавить for: 5m или удалить спящее.✓ Скопировано
    → Конкретные изменения YAML на каждое правило

Итог: Конкретный план очистки с YAML, готовым для PR.

Подводные камни
  • Подсчёт экземпляров ≠ подсчёту уникальных alert'ов — Группируй по лейблам; считай отдельные периоды срабатывания
Сочетать с: github

Комбинации

Сочетайте с другими MCP — эффект x10

mcp-grafana + sentry

Перекрёстная корреляция ошибок Sentry с нарушениями метрик/логов

Sentry: получи всплеск ошибок OrderService. Grafana: получи Prometheus + Loki по тому же временному окну.✓ Скопировано
mcp-grafana + github

Открыть PR с исправлениями правил алертинга

Grafana: проверь правила alert'ов. GitHub: открой PR с заменой шумных правил на правила с доработанными порогами.✓ Скопировано
mcp-grafana + filesystem

Сохранить timeline инцидента в Markdown-постмортем

Составь timeline из Grafana, сохрани в /pm/2026-05-incident.md.✓ Скопировано

Инструменты

Что предоставляет этот MCP

ИнструментВходные данныеКогда вызыватьСтоимость
list_datasources (нет) Первый вызов, узнать что доступно 1 API-вызов
query_prometheus datasource_uid, query, time? Мгновенное значение метрики 1 вызов
query_prometheus_range datasource_uid, query, start, end, step Анализ временных рядов 1 вызов
query_loki_logs datasource_uid, expr, start, end, limit? Получить логи 1 вызов
search_dashboards query: str Найти дашборд 1 вызов
get_dashboard uid: str Изучить панели 1 вызов
list_alert_rules folder? Аудит / обнаружение 1 вызов
list_alert_instances state? Что сейчас срабатывает 1 вызов
list_oncall_schedules (нет) Кто дежурит 1 вызов

Стоимость и лимиты

Во что обходится

Квота API
Ограничено лимитами вашего экземпляра Grafana; Cloud имеет лимиты QPS на уровне организации
Токенов на вызов
300–8000 (range query могут быть большими)
Деньги
Бесплатный OSS; Grafana Cloud тарифицируется обычным образом
Совет
Всегда передавай step= в range query; используй limit=100 в Loki, если не знаешь объём

Безопасность

Права, секреты, радиус поражения

Минимальные скоупы: service account с ролью Viewer или Editor
Хранение учётных данных: Токен service account в переменной окружения
Исходящий трафик: Только ваш URL Grafana
Никогда не давайте: роль Admin, если не нужна мутация правил

Устранение неполадок

Частые ошибки и исправления

401 Unauthorized

Неверный токен или отключённый service account

Проверить: curl -H 'Authorization: Bearer $TOKEN' $URL/api/health
Timeout запроса Prometheus

Уменьши диапазон времени или шаг

Ошибка парсинга Loki

LogQL требует фильтр лейбла в левой части пайплайна; например, {service="x"} |= "err"

Дашборд не найден

UID изменился после импорта; сначала ищи по заголовку

Альтернативы

Grafana MCP в сравнении

АльтернативаКогда использоватьКомпромисс
Прямой Prometheus MCPТолько Prometheus, без GrafanaНет дашбордов, нет интеграции с UI алертинга
Datadog MCPИспользуешь DatadogДругой стек наблюдаемости
Loki MCP standaloneТолько логиМеньшая поверхность

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills