Heroku 远程 MCP 用 mcp.heroku.com/mcp,不要抄 mcp-remote

官方远程是 mcp.heroku.com/mcp,Codex 对照 mcp add heroku --url 再 mcp login。不要抄 mcp-remote 或 Cursor JSON。本地才 heroku mcp:start;npx 才 env_vars 转发 HEROKU_API_KEY。

Heroku 给 Codex 没有专节。远程页只写「按客户端文档加 URL」,地址是 https://mcp.heroku.com/mcp /mcp 后缀),鉴权是 OAuth 2.0,浏览器走 id.heroku.com。Codex 原生 Streamable HTTP + mcp login 就是这条对照,不是发明插件。

主路径:

codex mcp add heroku --url https://mcp.heroku.com/mcp
codex mcp login heroku

用户层表名跟官方示例一样用小写 heroku。不要抄 Cursor 的 mcpServers JSON,也不要抄 VS Code 的 MCP Add Server 步骤原文。不要抄博客里的 npx mcp-remote https://mcp.heroku.com/mcp:Codex 自己走 HTTP。客户端必须支持 Streamable HTTP,不是 SSE。

[mcp_servers.heroku]
url = "https://mcp.heroku.com/mcp"
enabled = true

连上后保持工具批准。不要一上来 --yolo。不要给它 required = true 挂全局。远程页没列工具名;应用列表、日志、Postgres 查询只写在 STDIO 文档,不要当成远程已核对清单。

登录卡住时:清掉 mcp.heroku.com 的浏览器 cookie,删掉这张表再 mcp add,再 mcp login。不要去跑 rm -rf ~/.mcp-auth——那是 mcp-remote 客户端的复位步骤。

本地 STDIO 是另一条线,官方标 early development,推荐 Heroku CLI 10.8.1+ 的 heroku mcp:start,用现有 heroku login 会话,不要 HEROKU_API_KEY。官方不少 JSON 把 command 写成一整串 heroku mcp:start,Codex 要拆开:

codex mcp add heroku -- heroku mcp:start
[mcp_servers.heroku]
command = "heroku"
args = ["mcp:start"]
enabled = true

这是 stdio,不要 codex mcp loginheroku 不在 PATH 时写成 which heroku 的绝对路径。远程表和 stdio 表不要同名混用。

npx 备选才用 npx -y @heroku/mcp-server,必须 env_vars 转发 HEROKU_API_KEY不要抄 JSON env 表里的 token 字面量。token 用 heroku authorizations:createheroku auth:token。这张表也不要 mcp login。npx 冷启动慢就加 startup_timeout_sec

也不要和 Railway 搞混:Railway 托管是 mcp.railway.com没有 /mcp 后缀,主路径是 /plugins 搜 Railway。

不要做这些:

  • 不要发明 codex plugin add heroku@…
  • 不要抄 npx mcp-remote https://mcp.heroku.com/mcp
  • 不要把 HEROKU_API_KEY 写进 env 表或 args
  • 不要给它 required = true 挂全局。

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

来源