
Grafana MCP
io.github.itzhouqv0.1.3更新于 Oct 7, 2026
Read-only project-level Grafana MCP: Loki logs, metrics, traces, alerts, test/prod switching
概览
为 AI 编码助手提供只读 Grafana 访问:查询 Loki 日志、Prometheus 指标、Tempo 链路和当前告警,并支持 test/prod 环境切换。
- 功能
- 通过 Grafana HTTP API 提供十个只读查询工具:LogQL 日志查询与标签列举、PromQL 区间与即时查询、TraceQL 链路搜索与按 traceID 查看完整链路、当前告警规则、数据源列表。project_context 工具返回当前环境、app 标签、namespace 和数据源 UID,switch_environment 可在会话内切换 test 与 prod。项目上下文来自项目根目录的 .grafana.json 文件。
- 适用场景
- 适合在调试或迭代服务时使用,尤其是日志、指标和链路都在 Grafana 里的场景,让助手自行获取这些证据,而不必手动粘贴查询。也适合每个项目分别使用 test 与 prod 两套 Grafana 环境的团队。
- 运行要求
- 以 npm 包 grafana-mcp 形式在本地通过 stdio 运行,需要 bun 运行时,无需 npm install。各环境的 Grafana 地址、用户名和密码来自 GRAFANA_TEST_URL、GRAFANA_TEST_USER、GRAFANA_TEST_PASSWORD、GRAFANA_PROD_URL、GRAFANA_PROD_USER、GRAFANA_PROD_PASSWORD,可从 ~/.zshenv 与 ~/.zshrc 文本、配置文件或进程环境变量读取。可选:GRAFANA_ENV、GRAFANA_APP、数据源 UID 变量,以及通过 GRAFANA_OP_VAULT 和 GRAFANA_OP_ITEM 使用 1Password。需要能访问 Grafana 实例的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Grafana MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
grafana-mcp
[CI] [npm] [License: MIT] [Built with Bun]
Project-level Grafana MCP server — give your AI coding agent read-only access to Loki logs, Prometheus metrics, Tempo traces and alerts, with per-project context and test/prod environment switching. 零依赖单文件 TypeScript,bun 直接运行。
它解决什么问题
日常迭代业务系统时,测试阶段要快速定位 QA 反馈的问题,线上要快速排查功能 bug 与性能瓶颈——这些证据都在 Grafana 体系里(Loki 日志、Prometheus 指标、Tempo 链路)。让 agent 在写代码、修 bug 的同时能直接查到这些上下文,问题定位的效率和准确性会明显提升。但直接用通用 MCP 封装 Grafana API 会遇到三个实际障碍:
声明
- 非官方项目:本仓库与 Grafana Labs 无隶属关系;Grafana、Loki、Prometheus、Tempo 是各自所有方的商标。
- 免责:软件按"现状"提供。使用者需自行确保对目标 Grafana 实例的访问已获授权,并遵守所在组织的数据安全与审计规定;日志与指标输出可能包含业务敏感信息,分享查询结果前请自行判断合规边界。作者不对违规使用及其后果负责。
- 只读边界:全部 10 个工具均为查询类,不含任何写操作。建议为 agent 配置 Viewer 角色的专用账号(最小权限),不要复用管理员凭据。
快速开始
前提:本机已安装 bun(curl -fsSL https://bun.sh/install | bash)。项目零 npm 依赖,无需 npm install。
1. 在项目的 .mcp.json 中接入
GRAFANA_ENV:该项目默认环境(省略则默认test,安全兜底)GRAFANA_APP:该应用在 Grafana/Loki 中的 app 标签值(也可以放到.grafana.json,见下)- 重启会话后生效;Claude Code 也可用
claude mcp add交互添加
偏好克隆使用的话:
.mcp.json 中对应写 "command": "bun", "args": ["run", "/path/to/grafana-mcp/index.ts"]。
2.(推荐)在项目根创建 .grafana.json
比 .mcp.json env 能承载更多信息,且对 agent 可见可解释:
⚠️
.grafana.json的notes是自由文本,可能包含内部信息——建议把它加进项目的.gitignore。
环境配置从哪来
无需任何操作:server 启动时读取 ~/.zshenv 和 ~/.zshrc 文件内容(而非 shell 环境),解析其中的:
修改 .zshrc 后重启会话即生效。环境切换用 switch_environment 工具,或 .mcp.json 里 GRAFANA_ENV 指定默认值。
字段级优先级(从低到高,逐字段合并):
工具列表
时间参数(loki/prom/tempo 通用):range(默认 1h,如 30m/6h/24h)、start/end(ISO 8601 绝对时间)、limit。
与官方 mcp-grafana 的差异
Grafana 官方也提供 MCP server(Go 实现,面向全局单实例的完整工具集)。两者定位不同,可并存:
选型建议:要全量 Grafana 管理能力用官方;要"每个业务项目开箱即用的日志/指标排查上下文 + 双环境",用本仓库。
安全提示
- Grafana 账号建议使用 Viewer 角色的专用账号,不要复用管理员凭据。
- 凭据明文存于
~/.zshrc(或进程环境),MCP server 仅在本机内存中使用,不落盘、不回显(project_context输出对密码脱敏)。 - 如需集中管理,可把连接信息放到
~/.config/grafana-mcp/config.json并chmod 600,~/.zshrc中的同名变量会被其覆盖。 - 支持 1Password 回退(可选):设置
GRAFANA_OP_VAULT/GRAFANA_OP_ITEM后,无账密时通过opCLI 取凭据。
FAQ
为什么 agent 读不到 .zshrc 里的环境变量?
MCP server 由客户端 spawn,是非交互、非登录 shell,不会 source rc 文件。本实现因此直接解析 rc 文件文本,这是特性而非 workaround。
不想装 bun? 当前运行时依赖 bun(单文件 TS 直跑是刻意的设计取舍)。Node 兼容的编译产物在 Roadmap 中,欢迎 issue 催更。
查询结果太长被截断?
超过 6 万字符自动截断并提示缩小范围;命中 limit 上限时也会明确提示可能还有更多。建议总是带 range 与 limit。
数据源选错了?
在 GRAFANA_{ENV}_LOKI_DATASOURCE 等变量或 .grafana.json 的 environments.{env}.datasources 中显式指定 UID。
本地开发
CI 只运行无凭据的协议级冒烟测试与敏感信息扫描;集成测试需要真实 Grafana 环境,请在本机运行。
Roadmap
- Node 兼容编译产物(降低 bun 前提)
- 仪表盘面板数据读取
- 更多环境变量发现来源(direnv 等)
关于作者
itzhouq — 个人网站 itzhouq.cn,在那里持续 build in public。其他开源工具:
- archery-mcp — 让 AI 只读接入 Archery SQL 审计平台的 MCP server(生产表结构查询 + 上线 SQL 预检)
欢迎 issue / PR;安全漏洞请走 SECURITY.md 的私密渠道,不要开 public issue。
mcp-name: io.github.itzhouq/grafana-mcp
来源:README.md,提交 3c341a4
工具
0版本历史
2- v0.1.3最新Oct 7, 2026
- v0.1.2Oct 7, 2026


