ITADN

ECC writes invalid `url` field under [mcp_servers.exa] in Codex config.toml, breaking Codex CLI + app

#2224Closedqitiandashenggogogo 创建于 2026-06-11
## Summary `ecc-universal`'s Codex MCP merge emits `[mcp_servers.exa]` with a `url` key. Codex's `[mcp_servers.*]` TOML schema is **stdio-only** (`command`/`args`), so `url` is rejected and the **entire** config fails to load — both the `codex` CLI and the Codex desktop app become unusable (can't even change model reasoning effort). ## Environment - ecc-universal: **2.0.0** - Codex CLI: 0.133.0 / Codex.app (current) - OS: macOS (darwin), Node 24 ## Error ``` Error loading config.toml: url is not supported for stdio in `mcp_servers.exa` ``` ## Root cause `scripts/codex/merge-mcp-config.js`, the `ECC_SERVERS.exa` entry (~lines 94–96): ```js exa: { fields: { url: 'https://mcp.exa.ai/mcp' }, toml: `[mcp_servers.exa]\nurl = "https://mcp.exa.ai/mcp"` } ``` This is the **only** server in `ECC_SERVERS` declared with `url`; every other (`supabase`, `playwright`, `context7`, `github`) uses `command`/`args`. It also **contradicts ECC's own Codex template** `.codex/config.toml`, which correctly ships: ```toml [mcp_servers.exa] command = "npx" args = ["-y", "mcp-remote", "https://mcp.exa.ai/mcp"] startup_timeout_sec = 30 ``` The `http`/`url` form is valid only for Claude Code's `.mcp.json` (`"type":"http","url":...`), not for Codex's `[mcp_servers.*]`. ## Proposed fix Make the merge entry match the template (stdio via `mcp-remote`): ```js exa: { fields: { command: 'npx', args: ['-y', 'mcp-remote', 'https://mcp.exa.ai/mcp'], startup_timeout_sec: 30 }, toml: `[mcp_servers.exa]\ncommand = "npx"\nargs = ["-y", "mcp-remote", "https://mcp.exa.ai/mcp"]\nstartup_timeout_sec = 30` } ``` Also check the `urlEntry` branch (~line 253) — it preserves pre-existing `url` entries on re-merge, which is what makes the breakage persist across updates. ## Impact Every install/update that runs the Codex upstream installer re-injects the invalid line, re-breaking Codex until the user manually deletes it.
关闭于 2026-06-11 0 条评论