← 返回目录
G

Grafana MCP Server

官方
通过 MCP 查询和管理 Grafana 仪表盘、告警与可观测性数据
分类
其他 第 6 / 230
Stars
★ 3.6k 非常热门
传输方式
stdio(本地进程) · SSE · Streamable HTTP
运行环境
远程托管(无需本地环境) · 预编译二进制 · Docker · Python 3.10+
凭据
需要 API Key / 凭据
许可证
Apache-2.0
最近提交
工具数
92
72FMRS · B

mcp-grafana 由 Grafana Labs 官方维护,是功能覆盖面很广的 Grafana MCP 服务器,涵盖仪表盘、告警、多类数据源查询、事件管理、OnCall、注解、快照和渲染等能力,并提供细粒度的工具类别开关与只读模式。核心风险集中在凭据管理和写权限的合理限制上:建议按最小权限配置服务账号 RBAC 范围,非必要不启用写工具,并根据实际使用的数据源和功能有选择地启用工具类别以控制上下文占用和攻击面。

最强项 · 文档质量 18/20 最弱项 · 可靠性 11/20

可靠性
11/20
安全与权限
14/20
维护活跃度
16/20
文档质量
18/20
安装易用性
13/20
查看各项评分依据
可靠性 11/20
README 展示了 Unit/Integration/E2E 三个 GitHub Actions 徽章,表明仓库配置了测试流水线,且 server.json 中工具声明与 README 功能列表、工具表基本一致,覆盖大量子系统(Prometheus、Loki、CloudWatch、Snowflake 等)。但本次审查只能看到 README 和清单文本,未能直接查看实际工作流文件或测试用例内容,无法验证声明的每个工具行为与真实实现是否一致,也无法验证错误处理和依赖失败时的可诊断性。按静态评审规则,未见可核实的执行证据,不能给出高于12分的可靠性分数。
安全与权限 14/20
凭证处理较为规范:service account token、密码字段均标记为 secret,且支持从文件读取 token(便于轮换、避免明文写入环境变量),示例未包含真实密钥。提供细粒度 RBAC 权限/作用域文档、`--disable-write` 只读模式,以及 SSE/streamable-http 的 Host/Origin 校验以防 DNS 重绑定,体现了较强的最小权限意识和边界控制。扣分项:默认启用的工具集合中包含仪表盘更新、注解写入、告警规则增删等具有副作用的写操作,默认情况下无需额外确认步骤即可执行(依赖使用者主动加上 `--disable-write` 或限制服务账号权限);GRAFANA_EXTRA_HEADERS/GRAFANA_FORWARD_HEADERS 允许转发任意请求头(如 Cookie),存在被滥用的可能,虽已文档化但仍是风险点。未发现红线级问题(无恶意代码、无强制不可逆操作、无虚假身份或测试结果)。
维护活跃度 16/20
仓库归属 Grafana 官方组织,采用 Apache-2.0 许可证,未被归档,开放 issue 数量(134)与关注人数表明有持续的社区互动。清单中版本号采用 `$VERSION` 占位符提示存在规范化发布流程,README 中说明了 `GRAFANA_API_KEY` 的弃用与迁移路径,体现了版本治理意识。CI 徽章(单元/集成/端到端测试)说明有持续集成实践。因缺乏可直接查阅的 commit 历史或 release 记录作为独立证据,暂不满分。
文档质量 18/20
文档非常详尽:快速开始、多种安装方式(uvx、Docker、二进制、Helm)、按功能分类的工具说明、RBAC 权限与作用域的详细表格、完整的 CLI 参数参考、只读模式说明、TLS 配置、多组织支持、自定义请求头、token 文件读取与轮换机制等均有覆盖,层次分明且示例充分。轻微扣分:未见专门的故障排查(troubleshooting)章节,也未明确说明各类查询的成本或速率限制影响。
安装易用性 13/20
提供多种安装路径(uvx 一行命令、Docker OCI 镜像、二进制、Helm chart、以及托管的 streamable-http 远程端点),并给出主流客户端(Claude Desktop/Cursor)的配置示例,清单结构(packages/remotes/environmentVariables)声明完整、格式规范。由于本次评审为纯静态分析,无法实际验证安装步骤能否顺利跑通、依赖包是否可正常拉取,按规则不能给出高于15分的安装易用性分数。

静态评测 · 未实际运行收录于 2026-08-06

查看 FMRS 评分方法 →

选型与风险

能访问什么访问网络修改第三方账户数据连接数据库

适合谁

  • 已有 Grafana 实例(自建或 Grafana Cloud)并希望通过 AI 助手完成可观测性排查的团队
  • 需要在 CI/事件响应流程中自动查询告警、日志和指标的 DevOps/SRE 工程师
  • 希望以只读模式安全地向 AI 提供监控数据访问权限的场景

不适合谁

  • 不使用 Grafana 生态(无 Prometheus/Loki/等数据源接入)的团队
  • 需要完全离线、无外部网络依赖的环境(远程端点和部分数据源查询需要网络访问)
  • 对写权限高度敏感且不愿意配置精细 RBAC 范围的场景(默认 Editor 角色权限较宽泛)

所需权限

  • GRAFANA_URL(必需):目标 Grafana 实例地址
  • GRAFANA_SERVICE_ACCOUNT_TOKEN 或 GRAFANA_USERNAME/GRAFANA_PASSWORD:用于身份验证的凭据(服务账号令牌为敏感信息)
  • 按工具类别所需的 Grafana RBAC 权限,如 dashboards:read/write、datasources:query、alert.rules:read/write、annotations:read/write 等,或简化使用内置 Editor 角色
  • Grafana Incident/Sift 使用基本角色(Viewer 读、Editor 写)而非细粒度 RBAC
  • 可选 GRAFANA_ORG_ID 或 X-Grafana-Org-Id 头以指定多组织场景
  • 可选 GRAFANA_EXTRA_HEADERS 和 GRAFANA_FORWARD_HEADERS,用于附加或转发 HTTP 头(如 Cookie)到 Grafana API

风险与副作用

  • 服务账号令牌、密码等凭据以环境变量或请求头形式存在,需妥善保管,避免泄露
  • 写工具(update_dashboard、alerting_manage_rules、create_incident、create_annotation、create_snapshot 等)可直接修改或删除 Grafana 中的仪表盘、告警和事件数据,误用可能造成生产配置损坏
  • 若使用内置 Editor 角色简化权限配置,权限范围较宽,超出最小必要权限原则
  • 获取完整仪表盘 JSON(get_dashboard_by_uid、update_dashboard)可能占用大量上下文窗口,且可能包含仪表盘中的敏感查询或变量信息
  • GRAFANA_FORWARD_HEADERS 转发请求头(如 Cookie)时如配置不当可能带来会话信息泄露风险
  • 远程托管端点 https://mcp.grafana.com/mcp 是第三方托管服务,通过它访问 Grafana Cloud 实例意味着请求经过该服务中转
  • SSE/streamable-http 传输在配置不当(如 --allowed-hosts 或 --allowed-origins 设置为 * 且暴露在不受信网络)时存在 DNS 重绑定等风险

安装接入

准备工作

运行环境:远程托管(无需本地环境) · 预编译二进制 · Docker · Python 3.10+

GRAFANA_URL 必填 你的Grafana实例地址,如http://localhost:3000或https://<instance>.grafana.net
GRAFANA_SERVICE_ACCOUNT_TOKEN 可选密钥 Grafana服务账号令牌,在Grafana管理界面的Service accounts中创建
GRAFANA_SERVICE_ACCOUNT_TOKEN_FILE 可选密钥 存放服务账号令牌的文件路径,每次请求时重新读取,便于K8s密钥轮换
GRAFANA_PASSWORD 可选密钥 基本认证使用的Grafana密码
GRAFANA_API_KEY 可选密钥 已弃用的旧API密钥变量,请迁移到GRAFANA_SERVICE_ACCOUNT_TOKEN
其他可选配置项(4 个)
GRAFANA_USERNAME 可选 基本认证使用的Grafana用户名
GRAFANA_ORG_ID 可选 多组织场景下的数字组织ID
GRAFANA_EXTRA_HEADERS 可选 随所有Grafana API请求发送的额外HTTP头的JSON对象
GRAFANA_FORWARD_HEADERS 可选 SSE/streamable-http模式下需要从入站请求转发到Grafana的逗号分隔的HTTP头列表
  1. 安装 uv(提供 uvx 命令)。
  2. 在 Grafana 中创建服务账号并生成令牌(或使用最简单的内置 Editor 角色,或按需配置最小权限的 RBAC 范围)。
  3. 在 MCP 客户端配置(如 Claude Desktop、Cursor)中添加 mcpServers 条目,设置 command 为 uvx,args 为 ["mcp-grafana"],并在 env 中提供 GRAFANA_URL 和 GRAFANA_SERVICE_ACCOUNT_TOKEN(Grafana Cloud 用户将 GRAFANA_URL 替换为实例地址,如 https://<instance>.grafana.net)。
  4. 也可使用 Docker 镜像 docker.io/grafana/mcp-grafana 以 stdio 方式运行,或直接连接托管的远程端点 https://mcp.grafana.com/mcp(streamable-http,可通过 X-Grafana-URL 请求头指定 Grafana Cloud 实例)。
  5. 按需通过 --enabled-tools 或 --disable-<category> 标志启用/禁用工具类别,使用 --disable-write 运行只读模式。
claude_desktop_config.json
{"mcpServers":{"grafana":{"command":"uvx","args":["mcp-grafana"],"env":{"GRAFANA_URL":"http://localhost:3000","GRAFANA_SERVICE_ACCOUNT_TOKEN":"<your service account token>"}}}}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "grafana": {
      "command": "uvx",
      "args": [
        "mcp-grafana"
      ],
      "env": {
        "GRAFANA_URL": "http://localhost:3000",
        "GRAFANA_SERVICE_ACCOUNT_TOKEN": "<your service account token>"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add grafana -e GRAFANA_URL=http://localhost:3000 -e 'GRAFANA_SERVICE_ACCOUNT_TOKEN=<your service account token>' -- uvx mcp-grafana

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

在MCP客户端的工具列表中应看到grafana服务器提供的search_dashboards、list_datasources等工具;运行一次query_prometheus查询能返回数据即说明连接成功。

常见排障

  1. 确认 GRAFANA_URL 格式正确且服务器可达;Grafana Cloud 用户使用 https://<instance>.grafana.net
  2. 若某些工具报权限错误,检查服务账号令牌对应的 RBAC 权限和作用域(scope)是否覆盖所需操作,或临时使用 Editor 角色排查是否为权限问题
  3. 数据源相关功能异常时,确认 Grafana 版本不低于 9.0
  4. 工具未出现在客户端中时,检查是否被默认禁用类别(如 admin、clickhouse、cloudwatch、snowflake 等)覆盖,需通过 --enabled-tools 显式启用
  5. SSE/streamable-http 请求收到 403 时,检查 --allowed-hosts 与 --allowed-origins 配置是否包含请求的 Host/Origin
  6. 使用 --debug 标志开启详细 HTTP 请求/响应日志以排查连接问题
  7. Kubernetes 环境中令牌轮换未生效时,确认使用的是 GRAFANA_SERVICE_ACCOUNT_TOKEN_FILE 而非内联令牌,并检查挂载的 Secret 是否更新
  8. get_panel_image 渲染失败时,确认目标 Grafana 实例已安装并配置 Grafana Image Renderer 服务

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 搜索我的Grafana实例中所有包含CPU的仪表盘,并给出摘要

工具能力 92

list_teams 只读
列出所有团队
list_users_by_org 只读
列出组织内的所有用户
list_all_roles 只读
列出所有 Grafana 角色
get_role_details 只读
获取某个 Grafana 角色的详细信息
get_role_assignments 只读
列出某角色的所有分配对象
list_user_roles 只读
列出用户被分配的角色
list_team_roles 只读
列出团队被分配的角色
get_resource_permissions 只读
列出某资源(仪表盘、数据源、文件夹等)的所有权限
展开其余 84 个工具
get_resource_description 只读
描述某类资源可用的权限和分配能力
search_dashboards 只读
按标题或元数据搜索仪表盘
get_dashboard_by_uid 只读
根据 UID 获取仪表盘完整详情
update_dashboard 写入
更新已有仪表盘或创建新仪表盘
get_dashboard_panel_queries 只读
获取仪表盘中每个面板的标题、查询语句和数据源信息
run_panel_query 只读
执行仪表盘面板的查询,支持自定义时间范围和变量覆盖(默认禁用)
get_dashboard_property 只读
使用 JSONPath 表达式提取仪表盘的特定部分
get_dashboard_summary 只读
获取仪表盘的精简摘要(无需完整 JSON)
list_datasources 只读
列出已配置的数据源
get_datasource 只读
根据 UID 或名称获取数据源详情
get_query_examples 只读
获取某类数据源的示例查询(默认禁用)
query_prometheus 只读
对 Prometheus 数据源执行 PromQL 查询(瞬时或范围查询)
list_prometheus_metric_metadata 只读
列出指标元数据
list_prometheus_metric_names 只读
列出可用的指标名称
list_prometheus_label_names 只读
列出匹配选择器的标签名
list_prometheus_label_values 只读
列出某标签的取值
query_prometheus_histogram 只读
计算直方图分位值(如 p50/p90/p95/p99)
list_incidents 只读
在 Grafana Incident 中列出事件
create_incident 写入
在 Grafana Incident 中创建事件
add_activity_to_incident 写入
为事件添加活动记录
get_incident 只读
根据 ID 获取单个事件
query_loki_logs 只读
使用 LogQL 查询 Loki 日志或指标
list_loki_label_names 只读
列出日志中可用的所有标签名
list_loki_label_values 只读
列出某日志标签的取值
query_loki_stats 只读
获取日志流的统计信息
query_loki_patterns 只读
查询 Loki 检测到的日志模式,识别常见结构
analyze_loki_labels 只读
审计 Loki 标签策略(实时或静态)并可诊断查询性能
suggest_loki_alloy_label_config 只读
生成强制执行已批准标签的 Alloy loki.process 配置片段
query_influxdb 只读
使用 InfluxQL(v1) 或 Flux(v2) 查询 InfluxDB(默认禁用)
list_clickhouse_tables 只读
列出 ClickHouse 数据库中的表(默认禁用)
describe_clickhouse_table 只读
获取 ClickHouse 表的列结构(默认禁用)
query_clickhouse 只读
执行支持宏替换的 ClickHouse SQL 查询(默认禁用)
list_cloudwatch_namespaces 只读
列出可用的 AWS CloudWatch 命名空间(默认禁用)
list_cloudwatch_metrics 只读
列出某命名空间下的指标(默认禁用)
list_cloudwatch_dimensions 只读
列出用于过滤指标查询的维度(默认禁用)
query_cloudwatch 只读
执行支持时间范围的 CloudWatch 指标查询(默认禁用)
list_athena_catalogs 只读
列出可用的 Athena 数据目录(默认禁用)
list_athena_databases 只读
列出 Athena 目录中的数据库(默认禁用)
list_athena_tables 只读
列出 Athena 数据库中的表(默认禁用)
describe_athena_table 只读
获取 Athena 表的列名(默认禁用)
query_athena 只读
执行支持宏替换的 Athena SQL 查询(默认禁用)
query_elasticsearch 只读
使用 Lucene 语法或 Query DSL 查询 Elasticsearch/OpenSearch(默认禁用)
query_quickwit 只读
使用 Lucene 语法或 Query DSL 查询 Quickwit(默认禁用)
list_snowflake_tables 只读
通过 INFORMATION_SCHEMA 列出 Snowflake 数据库/schema 中的表(默认禁用)
describe_snowflake_table 只读
获取 Snowflake 表结构(列类型、可空性、默认值、注释)(默认禁用)
query_snowflake 只读
执行支持宏/变量替换的 Snowflake SQL 查询(默认禁用)
alerting_manage_rules 写入
管理告警规则(列出、获取、版本、创建、更新、删除)
alerting_manage_routing 只读
管理通知策略、联系点和时间间隔
list_oncall_schedules 只读
列出 Grafana OnCall 中的排班
get_oncall_shift 只读
获取特定 OnCall 班次的详情
get_current_oncall_users 只读
获取某排班当前值班的用户
list_oncall_teams 只读
列出 Grafana OnCall 团队
list_oncall_users 只读
列出 Grafana OnCall 用户
list_alert_groups 只读
按条件筛选列出 Grafana OnCall 告警组
get_alert_group 只读
根据 ID 获取特定告警组详情
get_sift_investigation 只读
根据 UUID 获取现有 Sift 调查
get_sift_analysis 只读
获取 Sift 调查中的特定分析
list_sift_investigations 只读
获取 Sift 调查列表(可限定数量)
find_error_pattern_logs 写入
检测 Loki 日志中的异常错误模式
find_slow_requests 写入
通过相关 Tempo 数据源检测慢请求
list_pyroscope_label_names 只读
列出匹配选择器的标签名
list_pyroscope_label_values 只读
列出某标签名匹配选择器的标签值
list_pyroscope_profile_types 只读
列出可用的性能剖析类型
query_pyroscope 只读
查询 Pyroscope 的性能剖析数据、指标或两者
get_assertions 只读
获取指定实体的断言摘要
agento11y_manage_conversations 只读
在 Grafana Agent Observability 中列出、搜索并获取 LLM 会话
agento11y_manage_generations 只读
获取 LLM 生成详情及评估分数
agento11y_manage_agents 只读
读取智能体目录:列出智能体、获取完整版本详情、版本历史及各版本评分汇总
agento11y_manage_evaluators 写入
管理评估器、评估器模板和判别模型目录
agento11y_manage_eval_rules 写入
管理评估规则和守护规则(hook rules)
agento11y_manage_eval_collections 写入
管理已保存的会话及其所属集合
ask_assistant 写入
向 Grafana Assistant 发送提示并返回完整文本回复(可通过 contextId 多轮对话)
generate_deeplink 只读
为 Grafana 资源生成准确的深层链接 URL
get_annotations 只读
按过滤条件获取注解
create_annotation 写入
创建新注解(标准格式或 Graphite 格式)
update_annotation 写入
部分更新注解的指定字段
get_annotation_tags 只读
列出可用的注解标签
list_snapshots 只读
按查询条件和数量限制列出仪表盘快照
get_snapshot 只读
根据快照 key 获取快照元数据和仪表盘内容
create_snapshot 写入
根据完整仪表盘内容创建快照
delete_snapshot 破坏性
根据快照 key 删除快照
get_panel_image 只读
将仪表盘或面板(或配置预览分支)渲染为 PNG 图片
list_provisioning_repositories 只读
列出配置仓库(如 git-sync 源)及其源地址、分支、同步状态和健康状况
validate_provisioning_file 只读
对配置仓库中的文件进行试运行校验,报告准入验证错误

使用场景

让 AI 助手排查生产告警:查询 Prometheus/Loki 指标与日志、运行 Sift 根因分析、创建 Grafana Incident
自然语言驱动的仪表盘检索与轻量编辑,无需在 Grafana UI 中手动查找面板
跨多种数据源(Prometheus、Loki、ClickHouse、CloudWatch、Athena、Snowflake 等)统一查询和探索
自动生成指向具体仪表盘、面板或 Explore 视图的深层链接,用于报告或工单

支持客户端

Claude Desktop
Cursor

依据项目文档列出,未经本站实测。

详细介绍

mcp-grafana 是 Grafana Labs 官方维护的 Model Context Protocol 服务器,为 AI 助手提供对 Grafana 实例及其生态系统的访问能力,涵盖仪表盘搜索与编辑、Prometheus/Loki/InfluxDB/ClickHouse/CloudWatch/Elasticsearch 等多种数据源查询、告警规则与通知路由管理、Grafana Incident 事件管理、Sift 根因调查、OnCall 排班、注解、快照、面板渲染以及配置仓库校验等功能。工具按类别分组,可通过命令行标志启用或禁用,并支持通过 --disable-write 运行为只读模式。

同类可选方案

BioMCP 75 · B

统一的命令行语法,接入约30个可信生物医学数据源。

★ 672 · 工具数 11 与当前对比 →

源版本 a57860b54b4e 数据同步于 2026-11-04 查看 FMRS 评分方法