MCP OAuth 令牌另有一份仓库,不是 auth.json
mcp_oauth_credentials_store 管 MCP 登录。默认 auto 走钥匙串,回退 ~/.codex/.credentials.json。没有 ephemeral。不要和 CLI 登录缓存抄成一把钥匙。
MCP 登录令牌不走 auth.json。单独设顶层键:
mcp_oauth_credentials_store = "keyring"
三种值,默认 auto:
auto:优先操作系统凭据库,失败才写CODEX_HOME/.credentials.jsonfile:强制写.credentials.jsonkeyring:只要钥匙串,读不到就登录失败
这里没有 ephemeral。把 cli_auth_credentials_store = "ephemeral" 当成 MCP 令牌也只在内存,是抄错键。
.credentials.json 和 auth.json 是两份文件。拷登录缓存不会带上 MCP OAuth;反过来,清掉 MCP 令牌也不会登出 ChatGPT。dotfiles、同步盘、CI 日志两边都不要带。
回调地址和监听端口仍由 mcp_oauth_callback_url / mcp_oauth_callback_port 管,和这份存储无关。改存储后端之后,对每个要 OAuth 的服务器重新 codex mcp login。