Skip to main content
Glama

Grafana

Official
by grafana
Apache 2.0
1,117
  • Linux
  • Apple

Сервер Grafana MCP

Сервер протокола контекста модели (MCP) для Grafana.

Это обеспечивает доступ к вашему экземпляру Grafana и окружающей экосистеме.

Функции

  • [x] Поиск панелей мониторинга
  • [x] Панели управления
    • [x] Получить панель инструментов по UID
    • [x] Обновите или создайте панель мониторинга (ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: будьте осторожны с контекстными окнами. Подробности см. на странице https://github.com/grafana/mcp-grafana/issues/101 )
    • [x] Получите заголовок, строку запроса и информацию об источнике данных (включая UID и тип, если доступно) из каждой панели на панели мониторинга.
  • [x] Список и выборка информации об источниках данных
  • [ ] Запросить источники данных
    • [x] Прометей
    • [x] Локи
      • [x] Журнал запросов
      • [x] Метрические запросы
    • [ ] Темп
    • [ ] Пироскоп
  • [x] Запрос метаданных Prometheus
    • [x] Метаданные метрики
    • [x] Названия метрик
    • [x] Названия меток
    • [x] Значения меток
  • [x] Запрос метаданных Loki
    • [x] Названия меток
    • [x] Значения меток
    • [x] Статистика
  • [x] Поиск, создание, обновление и закрытие инцидентов
  • [x] Запустите расследования Sift и просмотрите результаты
    • [x] Создать расследования
    • [x] Список расследований с предельным параметром
    • [x] Получить расследование
    • [x] Получить анализы
    • [x] Поиск шаблонов ошибок в журналах с помощью Sift
    • [x] Найти медленные запросы с помощью Sift
    • [ ] Добавить инструменты для других проверок Sift
  • [ ] Оповещение
    • [x] Список и выборка информации о правилах оповещения
    • [x] Получить статусы правил оповещения (срабатывание/нормальное/ошибка/и т. д.)
    • [ ] Создание и изменение правил оповещения
    • [x] Список контактных точек
    • [ ] Создание и изменение точек контакта
  • [x] Доступ к функциональности Grafana OnCall
    • [x] Список и управление расписаниями
    • [x] Получить данные смены
    • [x] Получить текущих дежурных пользователей
    • [x] Список команд и пользователей
    • [ ] Список групп оповещений
  • [x] Функциональность администратора
    • [ ] Список пользователей
    • [x] Список команд
    • [ ] Список ролей
    • [ ] Список назначений ролей
    • [ ] Отладка назначений ролей

Список инструментов настраивается, поэтому вы можете выбрать, какие инструменты вы хотите сделать доступными для клиента MCP. Это полезно, если вы не используете определенные функции или не хотите занимать слишком много места в окне контекста. Чтобы отключить категорию инструментов, используйте флаг --disable-<category> при запуске сервера. Например, чтобы отключить инструменты OnCall, используйте --disable-oncall .

Инструменты

ИнструментКатегорияОписание
list_teamsАдминСписок всех команд
search_dashboardsПоискПоиск панелей управления
get_dashboard_by_uidПанель инструментовПолучить панель инструментов по uid
update_dashboardПанель инструментовОбновите или создайте новую панель управления
get_dashboard_panel_queriesПанель инструментовПолучить заголовок панели, запросы, UID источника данных и тип с панели управления
list_datasourcesИсточники данныхСписок источников данных
get_datasource_by_uidИсточники данныхПолучить источник данных по uid
get_datasource_by_nameИсточники данныхПолучить источник данных по имени
query_prometheusПрометейВыполнить запрос к источнику данных Prometheus
list_prometheus_metric_metadataПрометейСписок метрических метаданных
list_prometheus_metric_namesПрометейСписок доступных названий метрик
list_prometheus_label_namesПрометейСписок им��н меток, соответствующих селектору
list_prometheus_label_valuesПрометейСписок значений для определенной метки
list_incidentsИнцидентСписок инцидентов в Grafana Incident
create_incidentИнцидентСоздать инцидент в Grafana Incident
add_activity_to_incidentИнцидентДобавить элемент действия к инциденту в Grafana Incident
resolve_incidentИнцидентРазрешить инцидент в Grafana Incident
query_loki_logsЛокиЗапрос и извлечение журналов с помощью LogQL (запросы журналов или метрик)
list_loki_label_namesЛокиПеречислить все доступные имена меток в журналах
list_loki_label_valuesЛокиСписок значений для определенной метки журнала
query_loki_statsЛокиПолучить статистику о потоках журналов
list_alert_rulesОповещениеСписок правил оповещения
get_alert_rule_by_uidОповещениеПолучить правило оповещения по UID
list_oncall_schedulesOnCallСписок расписаний от Grafana OnCall
get_oncall_shiftOnCallПолучите подробную информацию о конкретной смене OnCall
get_current_oncall_usersOnCallПолучить пользователей, которые в данный момент находятся на дежурстве по определенному графику
list_oncall_teamsOnCallСписок команд из Grafana OnCall
list_oncall_usersOnCallСписок пользователей из Grafana OnCall
get_investigationПросеятьПолучить существующее расследование Sift по его UUID
get_analysisПросеятьИзвлечь конкретный анализ из расследования Sift
list_investigationsПросеятьПолучить список расследований Sift с необязательным ограничением
find_error_pattern_logsПросеятьНаходит повышенные шаблоны ошибок в журналах Loki.
find_slow_requestsПросеятьНаходит медленные запросы из соответствующих источников данных о темпе.

Использование

  1. Создайте учетную запись службы в Grafana с достаточными правами для использования инструментов, которые вы хотите использовать, сгенерируйте токен учетной записи службы и скопируйте его в буфер обмена для использования в файле конфигурации. Подробности см. в документации Grafana .
  2. У вас есть несколько вариантов установки mcp-grafana :
    • Образ Docker : используйте готовый образ Docker из Docker Hub:
      docker pull mcp/grafana docker run -p 8000:8000 -e GRAFANA_URL=http://localhost:3000 -e GRAFANA_API_KEY=<your service account token> mcp/grafana
    • Загрузите двоичный файл : Загрузите последнюю версию mcp-grafana со страницы релизов и поместите ее в $PATH .
    • Сборка из исходного кода : Если у вас установлен Go toolchain, вы также можете собрать и установить его из исходного кода, используя переменную среды GOBIN для указания каталога, в который должен быть установлен двоичный файл. Он также должен быть в вашем PATH .
      GOBIN="$HOME/go/bin" go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@latest
  3. Добавьте конфигурацию сервера в файл конфигурации клиента. Например, для Claude Desktop:При использовании двоичного файла:
    { "mcpServers": { "grafana": { "command": "mcp-grafana", "args": [], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }
    При использовании Docker:
    { "mcpServers": { "grafana": { "command": "docker", "args": [ "run", "--rm", "-p", "8000:8000", "-e", "GRAFANA_URL", "-e", "GRAFANA_API_KEY", "mcp/grafana" ], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

Примечание: если вы видите Error: spawn mcp-grafana ENOENT в Claude Desktop, вам необходимо указать полный путь к mcp-grafana .

Использование VSCode с удаленным сервером MCP

Убедитесь, что ваш .vscode/settings.json включает:

"mcp": { "servers": { "grafana": { "type": "sse", "url": "http://localhost:8000/sse" } } }

Режим отладки

Вы можете включить режим отладки для транспорта Grafana, добавив флаг -debug к команде. Это обеспечит подробное протоколирование HTTP-запросов и ответов между сервером MCP и API Grafana, что может быть полезно для устранения неполадок.

Чтобы использовать режим отладки с конфигурацией Claude Desktop, обновите конфигурацию следующим образом:

При использовании двоичного файла:

{ "mcpServers": { "grafana": { "command": "mcp-grafana", "args": ["-debug"], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

При использовании Docker:

{ "mcpServers": { "grafana": { "command": "docker", "args": [ "run", "--rm", "-p", "8000:8000", "-e", "GRAFANA_URL", "-e", "GRAFANA_API_KEY", "mcp/grafana", "-debug" ], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

Разработка

Вклады приветствуются! Пожалуйста, откройте тему или отправьте запрос на извлечение, если у вас есть какие-либо предложения или улучшения.

Этот проект написан на Go. Установите Go, следуя инструкциям для вашей платформы.

Для запуска сервера используйте:

make run

Вы также можете запустить сервер с помощью транспорта SSE внутри созданного образа Docker. Чтобы создать образ, используйте

make build-image

А для запуска образа используйте:

docker run -it --rm -p 8000:8000 mcp-grafana:latest

Тестирование

Доступны три типа тестов:

  1. Модульные тесты (внешние зависимости не требуются):
make test-unit

Вы также можете запустить модульные тесты с помощью:

make test
  1. Интеграционные тесты (требуются запущенные и работающие контейнеры Docker):
make test-integration
  1. Облачные тесты (требуется облачный экземпляр Grafana и учетные данные):
make test-cloud

Примечание: Облачные тесты автоматически настраиваются в CI. Для локальной разработки вам нужно будет настроить собственный экземпляр Grafana Cloud и учетные данные.

Для более комплексных интеграционных тестов потребуется, чтобы экземпляр Grafana был запущен локально на порту 3000; вы можете запустить его с помощью Docker Compose:

docker-compose up -d

Интеграционные тесты можно запустить с помощью:

make test-all

Если вы добавляете больше инструментов, пожалуйста, добавьте интеграционные тесты для них. Существующие тесты должны быть хорошей отправной точкой.

Линтинг

Чтобы выполнить линтинг кода, выполните:

make lint

Это включает в себя пользовательский линтер, который проверяет наличие неэкранированных запятых в тегах структуры jsonschema . Запятые в полях description должны быть экранированы с помощью \\, чтобы предотвратить молчаливое усечение. Вы можете запустить только этот линтер с помощью:

make lint-jsonschema

Более подробную информацию смотрите в документации JSONSchema Linter .

Лицензия

Данный проект лицензирован по лицензии Apache License, версия 2.0 .

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Сервер протокола контекста модели (MCP) для Grafana.

Это обеспечивает доступ к вашему экземпляру Grafana и окружающей экосистеме.

  1. Функции
    1. Инструменты
  2. Использование
    1. Режим отладки
  3. Разработка
    1. Тестирование
    2. Линтинг
  4. Лицензия

    Related MCP Servers

    • A
      security
      F
      license
      A
      quality
      A Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.
      Last updated -
      8
      84
      27
      JavaScript
    • A
      security
      A
      license
      A
      quality
      A beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.
      Last updated -
      3
      9
      36
      JavaScript
      Apache 2.0
    • -
      security
      A
      license
      -
      quality
      MCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.
      Last updated -
      4
      3
      TypeScript
      MIT License
    • -
      security
      A
      license
      -
      quality
      MCP Server provides a simpler API to interact with the Model Context Protocol by allowing users to define custom tools and services to streamline workflows and processes.
      Last updated -
      13
      2
      TypeScript
      MIT License

    View all related MCP servers

    MCP directory API

    We provide all the information about MCP servers via our MCP API.

    curl -X GET 'https://glama.ai/api/mcp/v1/servers/grafana/mcp-grafana'

    If you have feedback or need assistance with the MCP directory API, please join our Discord server