
Grafana MCP server

2025.04.18
535
Go监控服务告警管理开发效率
mcp-grafana 是一个基于 Model Context Protocol (MCP) 的 Grafana 服务端实现,提供了对 Grafana 实例及其生态系统的访问能力。该服务支持多种功能,包括仪表盘搜索、数据源查询、Prometheus 和 Loki 的元数据查询、事件管理、告警规则管理以及 Grafana OnCall 功能等。
View on GitHub
Overview
基本能力
产品定位
mcp-grafana 是一个用于 Grafana 的 MCP 服务器,旨在提供对 Grafana 实例及其生态系统的访问能力,支持多种监控和告警功能。
核心功能
- 仪表盘搜索和管理
- 数据源信息查询
- Prometheus 和 Loki 的查询和元数据管理
- 事件管理(创建、更新、关闭)
- 告警规则管理
- Grafana OnCall 功能(排班、当前值班人员等)
适用场景
- 监控和告警系统的集成
- 仪表盘和数据源的自动化管理
- 事件和告警的自动化处理
- 值班排班和通知管理
工具列表
工具名称 | 类别 | 描述 |
---|---|---|
search_dashboards |
搜索 | 搜索仪表盘 |
get_dashboard_by_uid |
仪表盘 | 通过 UID 获取仪表盘 |
list_datasources |
数据源 | 列出数据源 |
get_datasource_by_uid |
数据源 | 通过 UID 获取数据源 |
get_datasource_by_name |
数据源 | 通过名称获取数据源 |
query_prometheus |
Prometheus | 对 Prometheus 数据源执行查询 |
list_prometheus_metric_metadata |
Prometheus | 列出指标元数据 |
list_prometheus_metric_names |
Prometheus | 列出可用指标名称 |
list_prometheus_label_names |
Prometheus | 列出匹配选择器的标签名称 |
list_prometheus_label_values |
Prometheus | 列出特定标签的值 |
list_incidents |
事件 | 列出 Grafana 事件 |
create_incident |
事件 | 创建 Grafana 事件 |
add_activity_to_incident |
事件 | 向事件添加活动项 |
resolve_incident |
事件 | 解决事件 |
query_loki_logs |
Loki | 使用 LogQL 查询和检索日志 |
list_loki_label_names |
Loki | 列出日志中所有可用的标签名称 |
list_loki_label_values |
Loki | 列出特定日志标签的值 |
query_loki_stats |
Loki | 获取日志流的统计信息 |
list_alert_rules |
告警 | 列出告警规则 |
get_alert_rule_by_uid |
告警 | 通过 UID 获取告警规则 |
list_oncall_schedules |
OnCall | 列出 Grafana OnCall 的排班 |
get_oncall_shift |
OnCall | 获取特定 OnCall 排班的详细信息 |
get_current_oncall_users |
OnCall | 获取特定排班的当前值班人员 |
list_oncall_teams |
OnCall | 列出 Grafana OnCall 的团队 |
list_oncall_users |
OnCall | 列出 Grafana OnCall 的用户 |
常见问题解答
- 问题: 安装后出现
Error: spawn mcp-grafana ENOENT
错误 解决方案: 需要在配置文件中指定mcp-grafana
的完整路径。
使用教程
使用依赖
- 在 Grafana 中创建一个服务账户,并生成一个服务账户令牌。
安装教程
- 从 发布页面 下载最新版本的
mcp-grafana
并放置到$PATH
中。
或者,如果已安装 Go 工具链,可以从源代码构建并安装:
bash
GOBIN="$HOME/go/bin" go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@latest
- 将服务器配置添加到客户端配置文件中。例如,对于 Claude Desktop:
json { "mcpServers": { "grafana": { "command": "mcp-grafana", "args": [], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }
调试方式
-
运行单元测试:
bash make test-unit
-
运行集成测试(需要本地 Grafana 实例运行在端口 3000):
bash docker-compose up -d make test-all
-
运行云测试(需要 Grafana Cloud 实例和凭证):
bash make test-cloud
-
代码检查:
bash make lint