Grafana OSS MCP 用 uvx mcp-grafana,token 走 env_vars 不要写进 env

CLI:codex mcp add grafana -- uvx mcp-grafana。GRAFANA_URL 可以写进 env 表;GRAFANA_SERVICE_ACCOUNT_TOKEN 用 env_vars 转发。厂商 Codex 页的 startup_timeout_ms 和把 token 写进 env 不要抄。

开源 mcp-grafanastdio,本机跑、连你的 Grafana(自托管或 Grafana Cloud 实例 URL 都行)。官方 Codex 页假设二进制已在 PATH;没有的话用 uvx

codex mcp add grafana -- uvx mcp-grafana
[mcp_servers.grafana]
command = "uvx"
args = ["mcp-grafana"]
env_vars = ["GRAFANA_SERVICE_ACCOUNT_TOKEN"]
startup_timeout_sec = 60
enabled = true

[mcp_servers.grafana.env]
GRAFANA_URL = "http://localhost:3000"

连 Grafana Cloud 实例时,把 GRAFANA_URL 换成 https://myinstance.grafana.net。这仍是本机 stdio + 服务账号,不是托管的 mcp.grafana.com

env 表是字面量。厂商 Codex 页把 GRAFANA_SERVICE_ACCOUNT_TOKEN 写进 env,等于把密钥提交进 config。codex mcp add --env GRAFANA_SERVICE_ACCOUNT_TOKEN=... 同样会落成字面量。密钥用 env_vars 从启动 Codex 的进程转发。过期的 GRAFANA_API_KEY 不要再用。

只读会话加 --disable-write(会拿掉写入工具,也默认拿掉会改数据的原始 SQL 查询工具):

[mcp_servers.grafana]
command = "uvx"
args = ["mcp-grafana", "--disable-write"]
env_vars = ["GRAFANA_SERVICE_ACCOUNT_TOKEN"]
enabled = true

[mcp_servers.grafana.env]
GRAFANA_URL = "http://localhost:3000"

不要做这些:

  • 不要抄 startup_timeout_ms / tool_timeout_ms。现行键是 startup_timeout_sectool_timeout_sec
  • 不要把 token 写进 args,也不要抄 mcpServers JSON。
  • 不要给它 required = true 挂全局。冷 uvx 超时会让 Codex 起不来。
  • 不要把用户名密码当成推荐路径。服务账号 token 才是现行鉴权。
  • 不要和托管 Cloud MCP 写成同一张表:有 command 就不能再写 url

网页 Cloud 不读这份 config.toml。改完新开会话。用 codex mcp get grafana 核对 command 是 uvx

来源