跳转到内容

unknown configuration field `mcp_servers.context7.type`:Codex

Quick fix

删除 Codex MCP 配置中的 type 字段;未修复的 cc-switch 再次同步时会将其重新写入。

报错原文
unknown configuration field `mcp_servers.context7.type`

cc-switch 3.20.3 至 3.20.4 会在 Codex 的 `[mcp_servers.*]` 配置中写入 `type = "stdio"` 或 `type = "http"`。Codex 通过 `command` 或 `url` 推断 MCP 传输方式,不识别 `type`,因此普通模式会提示该设置被忽略,严格配置模式会拒绝启动。

临时手动删除该字段后,Codex 仍可正确识别传输方式;但只要 cc-switch 再次同步 MCP 或切换 Codex provider,未修复版本就会重新写入。修复方向还需让导入逻辑在缺少 `type` 时根据 `url` 推断 HTTP,否则仅移除输出字段会使仅含 `url` 的配置被错误按 stdio 处理。

  1. 在 `~/.codex/config.toml` 的每个 `[mcp_servers.*]` 段中删除 `type` 行,随后重新运行 Codex 严格配置检查。

    ~/.codex/config.toml
    [mcp_servers.context7]
    type = "stdio"
    command = "context7-mcp"
  2. 在 cc-switch 修复前,避免对 Codex 启用会触发 MCP 同步的条目;可清空 MCP 管理中面向 Codex 的勾选,并手动维护 `~/.codex/config.toml`,防止同步再次写回该字段。

ToolCodex
Version3.20.3 - 3.20.4(受影响)
PlatformsWindowsmacOSLinux
`type` 被忽略会导致 MCP 完全不可用吗?
不会。问题报告确认 Codex 仍可正确识别 MCP 的传输方式;但严格配置模式会因未知字段拒绝启动。
为什么手动删除 `type` 后问题还会再次出现?
未修复的 cc-switch 在再次同步 MCP 或切换 Codex provider 时会重新写入该字段。
只移除写出 `type` 的逻辑是否足够?
不够。导入 Codex 配置时还需要在缺少 `type` 且存在 `url` 时推断为 HTTP,避免仅含 URL 的配置被当作 stdio 后跳过。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。