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 login。heroku 不在 PATH 时写成 which heroku 的绝对路径。远程表和 stdio 表不要同名混用。
npx 备选才用 npx -y @heroku/mcp-server,必须 env_vars 转发 HEROKU_API_KEY。不要抄 JSON env 表里的 token 字面量。token 用 heroku authorizations:create 或 heroku 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。