Cloudflare MCP 用 mcp.cloudflare.com/mcp,不要把 Code Mode 写成 Codex 配置

CLI:codex mcp add cloudflare --url https://mcp.cloudflare.com/mcp,再 mcp login cloudflare。这是 Cloudflare 自己的 Code Mode MCP,不是 features.code_mode。文档服务器是另一台。

官方 Codex 排错页把连不上的 Cloudflare MCP 指到这条远程 Streamable HTTP:

codex mcp add cloudflare --url https://mcp.cloudflare.com/mcp
codex mcp login cloudflare
codex mcp list
[mcp_servers.cloudflare]
url = "https://mcp.cloudflare.com/mcp"
enabled = true

已经用 cloudflare@cloudflare 插件装过时,codex mcp list 里可能已经有 cloudflare,不必再手加一台同名服务器。插件没登记成功时,才走上面的 mcp add

这台服务器覆盖整份 Cloudflare API(两千多个端点),但暴露给模型的是 search / execute 两个工具:模型写一小段 JavaScript,在隔离 Worker 里执行。Cloudflare 把这套叫 Code Mode。它不是 Codex 的 features.code_mode,不要把这个词写进 config.toml

文档过时就另加文档服务器,不要把所有产品 MCP 一次 required = true

codex mcp add cloudflare-docs --url https://docs.mcp.cloudflare.com/mcp

无头 / CI 才用 Cloudflare API token。Codex 走 bearer_token_env_var,键是变量名,不要把 token 写进 http_headers,也不要和已经 login 的 OAuth 混用。

不要做这些:

  • 不要抄 Cursor / Claude 的 mcpServers JSON,也不要抄 --transport http
  • 不要把历史 /sse 配成 SSE 传输。Cloudflare 写明 /sse 只是同一套 Streamable HTTP 的别名;Codex 用 /mcp
  • 不要把 Bindings / Builds / Observability / Radar 十几台一次性挂全局。插件默认只带主 cloudflare
  • 不要给它 required = true 挂全局。账号写入不是每条会话的硬依赖。
  • 认证失败就 codex mcp logout cloudflaremcp login,或按官方排错先 remove 再 add。不要用 mcp-remote 包一层。

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

来源