MCP-сервер для Grafana
Этот проект реализует сервер по протоколу Model Context Protocol (MCP) для интеграции с Grafana. Сервер предоставляет ИИ-агентам (например, Claude Desktop) доступ к данным мониторинга, дашбордам, алертам и инцидентам через единый интерфейс инструментов.
Возможности
- Поиск дашбордов и получение конкретного дашборда по UID
- Список источников данных и получение информации об источнике по UID или имени
- Запросы к источникам данных: Prometheus, Loki, Tempo, Pyroscope
- Prometheus: произвольные запросы, метаданные метрик, имена метрик, имена и значения лейблов
- Loki: запросы логов (LogQL), имена и значения лейблов, статистика потоков
- Управление инцидентами (Grafana Incident): поиск, создание, добавление активности, закрытие
- Работа с алертами: список правил, получение по UID, просмотр статусов (firing/normal/error), создание и изменение правил, управление контактными точками (list, create, update)
- Инструменты для Sift: запуск расследований и просмотр результатов
Список доступных инструментов конфигурируется: при запуске можно указать, какие категории включить, чтобы сэкономить контекстное окно и не подключать ненужную функциональность.
Установка
-
Создайте сервисный аккаунт в Grafana с необходимыми правами и сгенерируйте токен. Инструкция — в документации Grafana.
-
Установите бинарный файл mcp-grafana:
-
Настройте клиент MCP. Например, для Claude Desktop добавьте в конфигурационный файл:
{
"mcpServers": {
"grafana": {
"command": "mcp-grafana",
"args": [],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_API_KEY": "<ваш токен сервисного аккаунта>"
}
}
}
}
Если бинарный файл не найден (ошибка ENOENT), укажите полный путь к mcp-grafana.
Использование
После настройки ИИ-агент сможет вызывать инструменты сервера. Примеры:
search_dashboards — поиск дашбордов по ключевым словам
query_prometheus — выполнение PromQL-запроса к указанному источнику данных
query_loki_logs — запрос логов через LogQL
create_incident — создание нового инцидента
list_alert_rules — получение списка правил алертинга
Разработка
Исходный код написан на Go. Для локального запуска:
make run
Для запуска через SSE-транспорт внутри Docker:
make build-image
docker run -it --rm -p 8000:8000 mcp-grafana:latest
Тестирование
Юнит-тесты:
make test
Интеграционные тесты требуют запущенного экземпляра Grafana на localhost:3000. Можно использовать Docker Compose:
docker-compose up -d
make test-all
Линтинг
make lint
Лицензия
Проект распространяется под лицензией Apache 2.0.
Комментарии
Комментариев пока нет. Будьте первым.