grafana-mcp
grafana-mcp
Предоставляет часть API Grafana в качестве MCP-сервера (Model Context Protocol), ориентированного на запросы к логам на естественном языке. Основная цель: сказать «покажи мне логи ошибок от сервиса api за последние 30 минут» и получить реальные строки логов — без необходимости вручную работать с LogQL, метками или UID источников данных.
Источники данных логов, метки Loki и сопоставление имени сервиса с его хостинговым источником данных/меткой кэшируются на диске, поэтому повторные вызовы пропускают избыточное сканирование меток.
Установка и настройка
npx (установка не требуется)
Добавьте следующее в ~/.mcp.json.
{
"mcpServers": {
"grafana": {
"command": "npx",
"args": ["@seungje.jun/grafana-mcp"],
"env": {
"GRAFANA_URL": "https://grafana.example.com",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "glsa_xxx"
}
}
}
}Сборка из исходного кода
git clone https://github.com/ninanung/grafana-mcp.git
cd grafana-mcp
npm install
npm run build{
"mcpServers": {
"grafana": {
"command": "node",
"args": ["/path/to/grafana-mcp/dist/cli.js"],
"env": {
"GRAFANA_URL": "https://grafana.example.com",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "glsa_xxx"
}
}
}
}Перезапустите Claude Code, чтобы активировать инструменты MCP.
Аутентификация
Требуется один из следующих вариантов. Они проверяются в указанном ниже порядке — побеждает первый найденный.
Переменная | Когда использовать |
| Grafana 9.1+ (рекомендуется) |
| Grafana Cloud |
| Устаревшие API-ключи (устарели в 10.x) |
| Резервный вариант Basic Auth |
Все токены типа bearer отправляются как Authorization: Bearer <token>. Серверу не важно, какой это тип токена — он просто выбирает тот, который установлен.
Переменные окружения
Переменная | Описание |
| URL сервера Grafana (режим одного экземпляра, требуется, если |
| (опционально) JSON-массив для режима нескольких экземпляров. Пример: |
| (опционально) Отправляется как заголовок |
| (опционально) |
| (опционально) Уровень логирования: |
| (опционально) Путь к файлу аудита. По умолчанию |
| (опционально) Установите |
| (опционально) Путь к файлу кэша логов. По умолчанию |
| (опционально) TTL для кэша списка источников данных логов. По умолчанию |
| (опционально) TTL для кэша ключей меток Loki. По умолчанию |
| (опционально) TTL для кэша значений меток Loki. По умолчанию |
| (опционально) TTL для кэша разрешения |
Related MCP server: Log Analyzer MCP Server
Инструменты
Инструмент | Описание |
| Диагностическая проверка — подключение, версия, аутентификация и проверка возможностей ( |
| Список всех настроенных источников данных |
| Поиск дашбордов по запросу/тегу/типу |
| Получение полного JSON дашборда по uid |
| Извлечение запросов панели (LogQL/PromQL) из дашборда с |
| Список только источников данных типа логов (Loki, Elasticsearch, CloudWatch, OpenSearch, Splunk). Кэшируется |
| Список имен сервисов, обнаруживаемых по меткам Loki — полезно перед вызовом |
| Запрос логов для сервиса/временного диапазона/уровня. Автоматически определяет источник данных логов и метку сервиса. Поддерживает |
| Просмотр текущего кэша (источники данных логов, метки, разрешенные сервисы) |
| Аннулирование разрешения одного сервиса или очистка всех записей для экземпляра Grafana |
| Экспорт кэша логов в JSON-файл |
| Импорт кэша логов из JSON-файла (объединение/замена) |
Пример использования
Типичный сценарий на естественном языке, управляемый клиентом MCP:
Пользователь: «Покажи мне логи ошибок от сервиса api за последние 30 минут.»
query_logsсservice: "api",level: "error",time_from: "now-30m"→ сервер автоматически определяет, какой источник данных Loki владеет меткойservice="api", и выполняет LogQL.(Первый вызов) сопоставление сервис → источник данных/метка сохраняется в кэш; последующие вызовы пропускают этап обнаружения.
Пользователь: «Обобщи эти ошибки по шаблону.» → тот же вызов с
output: "summarize"возвращает количество, сгруппированное по шаблонам.Пользователь: «Какие еще сервисы у нас есть?» →
list_servicesвозвращает полный список сервисов.
Если в имени сервиса есть опечатка, query_logs предложит похожие варианты (например, Did you mean: checkout, checkout-api?).
Как работает автообнаружение
query_logs самостоятельно выбирает целевой источник данных и метку:
Фильтрует все источники данных, оставляя только типы логов (Loki/ES/CloudWatch/OpenSearch/Splunk).
Для каждого источника данных Loki получает
/loki/api/v1/labelsи сначала проходит по общим кандидатам на метку сервиса (service,service_name,app,app_name,application,container,job), а затем по всем остальным меткам.Для каждой метки-кандидата получает ее значения и проверяет, есть ли запрошенное имя
serviceв этом списке.Если совпадает ровно одна пара
(datasource, label), использует ее. Если совпадает несколько, требуетdatasource_uidдля уточнения. Если совпадений нет, возвращает предложения с похожими именами.Разрешенная пара
(service → ds_uid, label)кэшируется;refresh: trueилиrefresh_log_cacheпринудительно запускают повторное обнаружение.
Автообнаружение в настоящее время поддерживает только Loki. Для источников данных Elasticsearch / CloudWatch / Splunk передавайте datasource_uid и service_label явно (и не ожидайте применения специфичных для LogQL фильтров).
Режимы вывода
query_logs принимает параметр output:
raw(по умолчанию):<ISO timestamp> <log line>— удобно для прямого чтения в терминале.summarize: группирует строки по нормализованному шаблону (числа →N, UUID →UUID) с количеством и примером для каждого шаблона. Используйте, когда строки зашумлены или их слишком много.json: структурированные объекты{ ts, line, labels }— для последующей обработки инструментами.
Кэш
Кэш логов: сохраняется в
~/.grafana-mcp/log-cache.json. Ключом является базовый URL Grafana, чтобы экземпляры не конфликтовали.Каждая категория имеет свой TTL (источники данных / метки / значения меток / разрешение сервисов) — см. таблицу переменных окружения выше.
Разрешение сервиса, которое позже перестало работать (например, метка была переименована), автоматически аннулируется, чтобы следующий вызов выполнил повторное обнаружение.
Используйте
get_log_cacheдля просмотра,refresh_log_cacheдля очистки, иexport_log_cache/import_log_cacheдля обмена с коллегами.
Расположение и сброс кэша
Кэш | Расположение | Сброс |
Кэш логов |
| вызовите |
Файл кэша — это обычный JSON-документ, его безопасно просматривать, редактировать или создавать резервные копии вручную.
Безопасность и ограничения
Только чтение: сервер не предоставляет никаких эндпоинтов, изменяющих состояние Grafana. Никакого CRUD дашбордов/источников данных, никаких изменений алертов.
Логи Stdio: все логи направляются в stderr, сохраняя канал stdio MCP чистым.
Пропуск TLS:
GRAFANA_TLS_SKIP_VERIFY=trueустанавливаетNODE_TLS_REJECT_UNAUTHORIZED=0для всего процесса. Используйте только для самоподписанной Grafana в доверенных сетях.Никакого логирования секретов: токены аутентификации никогда не записываются в логи аудита.
Лицензия
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server giving access to Grafana dashboards, data and more.
The Grafbase MCP server sits in front of a GraphQL API and exposes an MCP protocol-compliant interface that allows AI agents and LLMs to explore and query GraphQL APIs using natural language. It provides tools to search schemas, introspect types and fields, and execute GraphQL queries while minimizing context bloat by returning only relevant schema subsets, with built-in support for authentication, authorization, and configurable access control.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
Related MCP Servers
- AlicenseAqualityDmaintenanceA server that enables AI assistants to access and query Grafana dashboards, metrics, logs, and configurations through an MCP protocol interface.106MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for intelligent log analysis providing semantic search, error pattern clustering, and smart error detection. It enables users to process, vectorize, and query local logs to efficiently identify issues and generate AI-powered summaries.MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables querying logs and metrics from Graylog, Prometheus, and InfluxDB 2.x. It provides tools for executing Lucene log searches, PromQL queries, and Flux queries directly within MCP-compatible clients.MIT
- AlicenseAqualityCmaintenanceAn MCP server for querying Grafana Loki directly with a discovery-first workflow — labels, values, series, and LogQL queries without requiring Grafana.56MIT