Codex MCP 按工作区启用:Binance MCP 只在指定项目内按需打开
- 日期: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 filescodex 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 字符被忽略。
排查过程
- 确认 MCP 侧是认证问题而非网络问题:服务器返回
AuthRequired,要求 OAuth;Codex 去系统密钥环取 token,但这台主机没有 D-Bus secret service(org.freedesktop.secrets不存在),失败后又拒绝退回到文件存储。 - 确认插件侧两条告警与 MCP 无关,均属"没有 ChatGPT 登录态 + 上游插件清单内容问题",对功能无影响。
- 按官方文档确认配置能力:MCP 配置可以放在项目级
.codex/config.toml(仅信任的项目加载),enabled = false可"保留配置但不启用",CLI 的-c/--config覆盖优先级最高。
修复
从全局
~/.codex/config.toml删除[mcp_servers.binance-mcp-server]及其.oauth段,并新增一行(本机没有可用密钥环,OAuth 凭据改用文件存储):mcp_oauth_credentials_store = "file"在工作区新建
/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"需要使用时按需临时打开(只对本次运行生效):
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 时确认。