cc-switch 导致 Claude Code / Codex 的 MCP 配置丢失、被改写或无法加载
Quick fix
升级 cc-switch 到最新修复版,关闭或谨慎使用统一接管 MCP,逐个排查无效 MCP,并手动修正被改写的 command/type/path 字段。
Symptom
Section titled “Symptom”No MCP servers configured. Use `claude mcp add` to add a server.该集群包含多个相关但不同的 MCP 问题:cc-switch 在接管或同步 MCP 时可能重置/覆盖 Claude Code 的插件与 MCP 配置;保存或切换时可能错误剥离 mcpServers 外层键,导致配置格式不合法;向 Codex/OpenCode 同步时可能把 stdio、url/SSE、path/command 等字段转换成目标客户端不兼容的结构;WSL 下 npx 路径可能被错误转换;Codex 流式 HTTP MCP 可能在切换后丢失;Responses → Chat Completions 转换路径还可能遗漏 MCP function tool。不同问题的修复状态不完全一致:部分已在 v3.15.0 / v3.16.0 或后续 PR 中修复,部分 issue 仍开放或仅提供了临时绕过方案。
升级 cc-switch 到最新版本;Codex 导入只有 url、没有 type 的 MCP 被误判为 stdio 的问题,以及日志明文记录 token 的问题已在 v3.15.0 / v3.16.0 相关提交中修复。
如果 Claude Code 的插件、skill、agent 或 MCP 在重启 cc-switch 后丢失,先在 cc-switch 中关闭“接管”或统一接管 MCP/Skills 的选项;若必须接管,先把当前 config 保存到通用设置,然后对每个供应商执行同步。
如果 Claude Code 显示 No MCP servers configured,但配置文件里仍有 MCP,逐个启用/禁用 MCP,找出导致全部 MCP 不可用的那一条,删除或修正它。
保存 MCP JSON 时,确保最外层是 mcpServers 包裹,而不是单个服务器对象;避免保存后被 cc-switch 剥皮成没有服务器名称的非法结构。
Claude Code MCP 配置示例 {"mcpServers": {"Context 7": {"command": "npx","args": ["-y", "@upstash/context7-mcp@latest"],"env": {}}}}如果 Codex 导入已有 MCP 时报缺少 command,而配置只有 url,请升级到已修复版本,让 cc-switch 将其识别为 HTTP/SSE 远程 MCP,而不是 stdio。
如果 WSL 下 npx 类型 MCP 被转换成错误路径,可先手动 npm install 对应包,然后把 MCP 配置里的 command 改回可执行命令。
如果 OpenCode/Codex 中 chrome-devtools 或其他 MCP 被改写成不兼容格式,例如 path 变成数组、command 被自动改成 cmd /c npx ...,暂时手动还原目标客户端配置文件中的原始 MCP 字段,并避免在切换供应商时让 cc-switch 自动改写该 MCP。
如果 Codex 中添加了流式 HTTP MCP 后切换供应商导致 MCP 列表丢失,先备份 Codex MCP 配置,切换后恢复;该问题在给定 issue 中仍开放,尚无最终修复版本。
如果 Codex 通过 Chat Completions 上游看不到 MCP function tools,确认当前 CC Switch 版本存在 Responses → Chat Completions 转换遗漏工具定义的问题;临时方案是改用支持原生工具格式的上游或等待修复。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 14 个真实 issue
- #336[may be bug ?] 修改 windows 下 sequential thinking mcp 预设,因为claude code 会报错提醒
- #393MCP 服务器管理异常导致切换报错
- #5573.9.0 cc-switch 安装 mcp 到 wsl 会路径转换
- #782cc switch异常清理everything claude code插件里的agent、skill等配置
- #1788cc-switch rewrites `chrome-devtools` MCP config into an incompatible format for OpenCode and Codex
- #2136Unexpected MCP JSON format/意外的 MCP JSON 格式
- #2492Codex importer should treat url MCP config as HTTP/SSE transport instead of defaulting to stdio.
- #2537每次更改提供商的模型都会自动转换MCP
- #2560Claude code mcp无法正常加载
- #2896日志明文记录mcp的token,存在安全隐患
- #4086vscode codex 插件没法读取 ccs 的 mcp,这是为什么
- #4493CC-Switch不支持MCP流式HTTP配置
- #5755[Codex] Responses → Chat Completions 转换时遗漏了 MCP Function Tool
- #6031codex mcp 注入失败
- 为什么重启 cc-switch 后,everything claude code 插件的 agent、skill、MCP 配置会消失?
- 有用户反馈这是接管/同步机制导致。可尝试关闭接管;或在更新 config 后保存到通用设置,并对每个供应商同步。另有用户通过在 settings.local.json 中配置 enabledPlugins 保留插件。
- MCP JSON 保存时显示成功,但之后 Claude Code 全部 MCP 都不可用,怎么办?
- 检查是否保存了没有 mcpServers 外层包裹的单服务器对象。一个错误 MCP 配置可能导致 Claude Code 解析失败,使所有 MCP 不可用。删除或修正异常 MCP,保留 mcpServers 外层结构。
- Codex 中只有 url 的 MCP 为什么导入失败并提示缺少 command?
- 旧版本会把它默认当成 stdio 类型,因此要求 command 字段。该问题已在后续版本修复,应把只有 url 的配置按远程 SSE/HTTP MCP 处理。
- WSL 下 npx MCP 路径被转换怎么办?
- 有用户通过直接 npm install 对应包,然后手动修改 MCP 配置中的 command 解决。该路径转换问题也已在相关 PR 中修复。
- cc-switch 日志会不会泄露 MCP token?
- 早期版本会在日志中明文记录 Authorization/token 等敏感字段。后续修复会对 Authorization、token、api_key、secret、password、cookie 以及 Bearer/sk/ghp/github_pat 等形态做脱敏。
- Codex 流式 HTTP MCP 切换后丢失,有最终修复吗?
- 给定 issue 中该问题仍开放,未明确最终修复版本。建议备份 Codex MCP 配置,切换后手动恢复,或关注相关 issue。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。