基本能力
产品定位
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