Grafana Cloud MCP 用 mcp.grafana.com/mcp,login 失败先补 Accept 头

托管地址是 https://mcp.grafana.com/mcp,OAuth。Codex 官方页没有这一条。login 若被 302 到文档,在 http_headers 写 Accept 和 X-Grafana-URL。这不是本机 mcp-grafana。

Grafana Cloud 托管的是远程 Streamable HTTP,只要 Grafana Cloud,不要自托管。权限跟你登录的 Grafana 用户走,还要有 Assistant Cloud MCP User(或 grafana-assistant-app.cloud-mcp:access)。官方客户端列表没有 Codex 专页,按「其它 MCP 客户端」写 TOML:

codex mcp add grafana_cloud --url https://mcp.grafana.com/mcp
codex mcp login grafana_cloud

名字用下划线。已经占用了 grafana 给本机 stdio 时,不要覆盖那张表。

X-Grafana-URL 是栈地址,不是密钥,能跳过授权页上的 URL 输入。codex mcp login 的探测请求默认不带 MCP 的 Accept 头时,Grafana 会 302 到文档站,Codex 会拒绝跨源跳转(开放问题 openai/codex#37830)。login 报 OAuth discovery redirect 时,把这两颗头写进 http_headers

[mcp_servers.grafana_cloud]
url = "https://mcp.grafana.com/mcp"
http_headers = { "X-Grafana-URL" = "https://myinstance.grafana.net", "Accept" = "application/json, text/event-stream" }
enabled = true

然后再 codex mcp login grafana_cloud。不要把服务账号 token 写进这张 HTTP 表。

授权页可以只勾 Read。Query 仍会跑原始 SQL;Write 会改 dashboard / incident。这台会计入 Grafana Assistant 用量。

不要做这些:

  • 不要抄 Claude 的 --transport http,也不要抄 Cursor JSON。
  • 不要抄 /sse,也不要套 mcp-remote
  • 不要给自托管 Grafana 配这个 URL。自托管走 uvx mcp-grafana
  • 不要给它 required = true 挂全局。
  • 不要把 X-Grafana-URL 写成带尖括号的占位符。

网页 Cloud 不读 ~/.codex/config.toml。改完新开会话。用 codex mcp get grafana_cloud 看传输是 streamable_http。

来源