Grafana MCP Server - AI 驱动的可观测性平台全面集成

Grafana MCP Server - AI 驱动的可观测性平台全面集成

简介

Grafana MCP Server 是 Grafana Labs 官方推出的 Model Context Protocol 服务器实现,为 Grafana 可观测性平台提供全面的 AI 集成能力。这个高星项目(1700+ GitHub Stars)将 Grafana 的强大监控和可观测性功能完美融入 AI 工作流,让 AI 助手能够通过自然语言管理 Dashboard、查询数据源、跟踪事件、管理告警、调度 OnCall 值班等。Grafana MCP Server 深度集成 Grafana 生态系统,支持 Prometheus 指标查询、Loki 日志查询、Tempo 追踪、Pyroscope 性能分析等多种数据源。通过灵活的传输模式(stdio、SSE、streamable-http)和细粒度的工具控制,这个 MCP Server 为 DevOps、SRE 和开发团队提供了 AI 驱动的系统监控和故障诊断能力。

核心特性

  • Dashboard 管理 - 搜索、检索、更新 Grafana 仪表板,支持 JSONPath 提取
  • 数据源查询 - 查询 Prometheus、Loki 等多种数据源
  • 事件跟踪 - 通过 Grafana Incident 跟踪和管理事件
  • 告警管理 - 配置和管理告警规则和通知
  • OnCall 排班调度 - 管理值班计划和事件响应
  • Sift 事件调查 - 深度事件分析和根因定位
  • Prometheus 指标查询 - 查询时序指标数据和元数据
  • Loki 日志查询 - 高效的日志搜索和分析
  • 灵活传输模式 - 支持 stdio、SSE、streamable-http
  • 细粒度工具控制 - 可选择性启用或禁用特定工具

工具列表

组织和用户管理

list_teams

描述: 列出 Grafana 中的所有团队

参数:

  • permission (string): 所需权限:teams:read [必需]

list_users_by_org

描述: 列出组织中的所有用户

参数:

  • permission (string): 所需权限:users:read [必需]

Dashboard 管理工具

search_dashboards

描述: 搜索仪表板

参数:

  • permission (string): 所需权限:dashboards:read [必需]
  • query (string): 搜索关键词 [可选]
  • tag (array): 标签过滤 [可选]
  • folder_ids (array): 文件夹 ID 过滤 [可选]

get_dashboard_by_uid

描述: 通过唯一标识符获取仪表板

参数:

  • uid (string): 仪表板的唯一标识符 [必需]
  • permission (string): 所需权限:dashboards:read [必需]

get_dashboard_panel_queries

描述: 提取面板标题、查询和数据源信息

参数:

  • permission (string): 所需权限:dashboards:read [必需]
  • uid (string): 仪表板 UID [必需]

get_dashboard_property

描述: 使用 JSONPath 提取特定的仪表板部分

参数:

  • permission (string): 所需权限:dashboards:read [必需]
  • uid (string): 仪表板 UID [必需]
  • jsonpath (string): JSONPath 表达式 [必需]

get_dashboard_summary

描述: 获取紧凑的仪表板概览

参数:

  • permission (string): 所需权限:dashboards:read [必需]
  • uid (string): 仪表板 UID [必需]

update_dashboard

描述: 更新或创建新仪表板

参数:

  • permission (string): 所需权限:dashboards:create, dashboards:write [必需]
  • dashboard (object): 仪表板 JSON 对象 [必需]
  • folder_uid (string): 目标文件夹 UID [可选]
  • message (string): 提交信息 [可选]
  • overwrite (boolean): 是否覆盖现有仪表板 [可选]

数据源管理工具

list_datasources

描述: 列出所有数据源

参数:

  • permission (string): 所需权限:datasources:read [必需]

get_datasource_by_uid

描述: 通过唯一标识符获取数据源

参数:

  • uid (string): 数据源的唯一标识符 [必需]
  • permission (string): 所需权限:datasources:read [必需]

get_datasource_by_name

描述: 通过名称获取数据源

参数:

  • name (string): 数据源名称 [必需]
  • permission (string): 所需权限:datasources:read [必需]

Prometheus 查询工具

query_prometheus

描述: 对 Prometheus 数据源执行查询

参数:

  • permission (string): 所需权限:datasources:query [必需]
  • datasource_uid (string): Prometheus 数据源 UID [必需]
  • query (string): PromQL 查询表达式 [必需]
  • start (string): 开始时间(ISO 8601 或 Unix 时间戳) [可选]
  • end (string): 结束时间 [可选]
  • step (string): 查询步长 [可选]

list_prometheus_metric_metadata

描述: 列出 Prometheus 指标元数据

参数:

  • permission (string): 所需权限:datasources:query [必需]
  • datasource_uid (string): Prometheus 数据源 UID [必需]
  • metric (string): 指标名称 [可选]

list_prometheus_metric_names

描述: 列出可用的 Prometheus 指标名称

参数:

  • permission (string): 所需权限:datasources:query [必需]
  • datasource_uid (string): Prometheus 数据源 UID [必需]
  • match (string): 指标名称匹配模式 [可选]

配置方式

基础配置

1
2
3
4
5
6
7
8
9
10
11
{
"mcpServers": {
"grafana": {
"command": "mcp-grafana",
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "<token>"
}
}
}
}

环境变量

  • GRAFANA_URL - Grafana 实例地址(本地或云端)
  • GRAFANA_SERVICE_ACCOUNT_TOKEN - 服务账户令牌(在 Grafana 中创建)

高级配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"mcpServers": {
"grafana": {
"command": "mcp-grafana",
"args": [
"--transport", "sse",
"--enable-tools", "dashboards,prometheus",
"--disable-tools", "alerting"
],
"env": {
"GRAFANA_URL": "https://your-grafana.example.com",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "<token>"
}
}
}
}

使用示例

通过 Docker 使用

1
2
3
4
docker run -i --rm \
-e GRAFANA_URL=http://localhost:3000 \
-e GRAFANA_SERVICE_ACCOUNT_TOKEN=<token> \
ghcr.io/grafana/mcp-grafana:latest

通过二进制使用

1
2
3
4
5
6
# 下载二进制文件
wget https://github.com/grafana/mcp-grafana/releases/latest/download/mcp-grafana-linux-amd64

# 运行
chmod +x mcp-grafana-linux-amd64
./mcp-grafana-linux-amd64 --url http://localhost:3000 --token <token>

通过 Kubernetes Helm

1
2
3
4
5
6
7
8
# 添加 Helm 仓库
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

# 安装
helm install grafana-mcp grafana/mcp-grafana \
--set grafana.url=http://grafana.default.svc.cluster.local:3000 \
--set grafana.token=<token>

使用场景示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 场景 1: AI 驱动的系统监控
# 自然语言:"Show me CPU usage for all production servers in the last 24 hours"

# Grafana MCP Server 将执行:
# 1. 搜索相关的 Dashboard
# 2. 查询 Prometheus 数据源
# 3. 返回格式化的指标数据

# 场景 2: 智能告警分析
# 自然语言:"What alerts fired in the last hour and what caused them?"

# 场景 3: 日志查询
# 自然语言:"Search Loki logs for errors in the payment service"

# 场景 4: Dashboard 管理
# 自然语言:"Create a new dashboard showing API response times and error rates"

# 场景 5: 事件响应
# 自然语言:"Who is on-call right now for the infrastructure team?"

# 场景 6: 性能诊断
# 自然语言:"Analyze the metrics and logs to identify why the checkout API is slow"

PromQL 查询示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 查询 CPU 使用率
query_prometheus(
datasource_uid="prometheus-uid",
query="rate(node_cpu_seconds_total{mode='idle'}[5m])",
start="now-1h",
end="now"
)

# 查询 HTTP 请求速率
query_prometheus(
datasource_uid="prometheus-uid",
query="sum(rate(http_requests_total[5m])) by (status)",
start="now-24h",
end="now",
step="1m"
)

# 查询内存使用
query_prometheus(
datasource_uid="prometheus-uid",
query="node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100"
)

实际应用场景

1. AI 驱动的系统监控

AI 助手通过自然语言查询系统指标,快速了解系统健康状况,无需熟悉 PromQL 或 LogQL 语法。

2. 智能告警分析

AI 分析告警历史,识别告警模式,提供根因分析建议,减少误报和告警疲劳。

3. 自然语言数据查询

通过自然语言查询日志和指标,AI 自动转换为 Loki LogQL 或 Prometheus PromQL 查询。

4. 事件响应自动化

AI 助手在事件发生时自动收集相关指标、日志、追踪数据,加速故障诊断。

5. Dashboard 智能管理

AI 根据团队需求自动创建或更新 Dashboard,优化可视化配置。

6. 可观测性数据探索

AI 辅助探索复杂的可观测性数据,发现异常模式和关联关系。

7. 性能问题诊断

结合指标、日志、追踪数据,AI 提供全方位的性能问题分析和优化建议。

技术实现

高活跃度社区

拥有 1700+ GitHub Stars,活跃的社区贡献和快速的问题响应。

灵活的传输模式

支持 stdio(标准输入输出)、SSE(Server-Sent Events)、streamable-http 三种传输模式,适应不同部署场景。

细粒度工具控制

通过 --enable-tools--disable-tools 参数,精确控制启用哪些工具,优化性能和安全性。

RBAC 权限管理

与 Grafana 的 RBAC 系统集成,确保 AI 助手只能访问授权的资源和数据。

Grafana 生态系统深度集成

支持 Prometheus、Loki、Tempo、Pyroscope、OnCall、Sift 等 Grafana 生态的全部组件。

本地和云端支持

同时支持本地自托管的 Grafana 实例和 Grafana Cloud,提供一致的使用体验。

Go 语言实现

使用 Go 语言开发,高性能、低资源占用,适合在生产环境中长期运行。

支持的数据源

  • Prometheus - 时序指标数据库
  • Loki - 日志聚合系统
  • Grafana OnCall - 值班调度和事件管理
  • Pyroscope - 持续性能分析
  • Tempo - 分布式追踪系统

获取方式

相关资源

© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero