• 日期:2026-09-13
  • 项目:codex(本机 Codex CLI 配置)
  • 涉及组件:Codex CLI 0.154.0、~/.codex/config.toml、项目级 .codex/config.toml、binance-mcp-server(https://agent.binance.com/mcp/agentic)
  • 状态:已完成

现象

Codex TUI 状态栏显示 2 startup issues (1 MCP),同时 Binance MCP 工具不可用。查日志(~/.codex/logs_2.sqlite)得到两条线索:

ERROR rmcp::transport::worker :: worker quit with fatal: Transport channel closed,
  when AuthRequired(AuthRequiredError { www_authenticate_header:
  "Bearer resource_metadata=\"https://agent.binance.com/.well-known/oauth-protected-resource/gateway-mcp\"" })
WARN codex_rmcp_client::oauth::resolved_store :: failed to read OAuth tokens from keyring:
  zbus error: org.freedesktop.DBus.Error.ServiceUnknown:
  The name org.freedesktop.secrets was not provided by any .service files

codex mcp list 显示该服务器 Status: enabled / Auth: Not logged in。另外两条启动告警来自插件:failed to warm featured plugin ids cache ... 401 Unauthorized(用 DeepSeek API key,没有 ChatGPT 登录态)、以及本地插件市场里 ngs-analysis 的 interface.defaultPrompt[0] 超过 128 字符被忽略。

排查过程

  1. 确认 MCP 侧是认证问题而非网络问题:服务器返回 AuthRequired,要求 OAuth;Codex 去系统密钥环取 token,但这台主机没有 D-Bus secret service(org.freedesktop.secrets 不存在),失败后又拒绝退回到文件存储。
  2. 确认插件侧两条告警与 MCP 无关,均属"没有 ChatGPT 登录态 + 上游插件清单内容问题",对功能无影响。
  3. 按官方文档确认配置能力:MCP 配置可以放在项目级 .codex/config.toml(仅信任的项目加载),enabled = false 可"保留配置但不启用",CLI 的 -c/--config 覆盖优先级最高。

修复

  1. 从全局 ~/.codex/config.toml 删除 [mcp_servers.binance-mcp-server] 及其 .oauth 段,并新增一行(本机没有可用密钥环,OAuth 凭据改用文件存储):

    mcp_oauth_credentials_store = "file"
  2. 在工作区新建 /home/admin/codex-workspaces/codex-projects/BinanceTradingLearn/.codex/config.toml:

    [mcp_servers.binance-mcp-server]
    url = "https://agent.binance.com/mcp/agentic"
    enabled = false
    
    [mcp_servers.binance-mcp-server.oauth]
    client_id = "codex"
    callback_url = "http://127.0.0.1/callback/6JBCxSDcW063"
  3. 需要使用时按需临时打开(只对本次运行生效):

    cd /home/admin/codex-workspaces/codex-projects/BinanceTradingLearn
    codex -c mcp_servers.binance-mcp-server.enabled=true

    首次使用前需在该工作区根目录执行 codex mcp login binance-mcp-server 完成 OAuth。

注意事项

  • 项目级配置以工作区目录为准:从 /home/admin 或其它工作区启动看不到该服务器;从其子目录(如 BinanceTradingLearn/ai-trading)启动也读不到上一层 .codex/config.toml,需要在子目录再放一份并信任该目录。
  • profile(~/.codex/<name>.config.toml)层级低于项目配置,无法用来覆盖项目里的 enabled = false;按需开启要用 -c 或直接改文件。
  • 登录凭据改为文件存储后以文件形式落在 ~/.codex 下,不走密钥环加密。
  • 全局 ~/.codex/config.toml 里 DeepSeek 的 bearer token 目前是明文存放,建议后续改用环境变量。
  • 该 MCP 默认不启动后,启动告警中的 "1 MCP" 项预期消失,需下次启动 Codex 时确认。

标签: codex, mcp, binance, oauth, config-toml

添加新评论