配置不生效:MCP 未导入与环境变量被覆盖
Quick fix
cc-switch 采用全量覆盖设计,手动改的配置需通过“通用配置”提取保存;MCP 需手动导入;环境变量需勾选“写入通用配置覆盖”。
Symptom
Section titled “Symptom”自己写进去setting.json的其它选项在切换后丢失cc-switch 在切换供应商时采用全量覆盖方案,而非字段级合并。v3.11.0 曾尝试字段级合并,但因状态冲突在 v3.11.1 回滚。设计上,请求地址和 API Key 是供应商独有的,其他共享配置(如插件、hooks、MCP)需通过「通用配置」功能在不同供应商之间传递。若用户手动编辑 settings.json 或通过 Claude marketplace 安装了插件,但未在 cc-switch 中提取到数据库,切换或重启后这些配置会被覆盖。MCP 方面,旧版本只在首次安装时扫描,v3.9.0 增加了手动导入按键。环境变量配置需勾选“写入通用配置覆盖”才能生效。此外,配置目录(如 WSL 与 Windows 原生目录)不会同时切换,只作用于指定目录。
打开 cc-switch,进入供应商编辑页面,找到「通用配置」面板,点击「从当前供应商提取」,将插件、hooks 等共享配置读取到数据库。
新建或切换供应商时,确保勾选「写入通用配置」(默认勾选),以保留插件等数据。
若使用 MCP,点击 v3.9.0 及以上版本提供的「手动导入」按键,将已有 MCP 配置导入数据库。
若依赖环境变量配置,在 cc-switch 中勾选“写入通用配置覆盖”,或注释/重命名原配置文件,避免被 cc-switch 写入的配置覆盖。
Affected Versions
Section titled “Affected Versions”Tool未知
Version3.11.1 - 3.12.2
PlatformsWindowsLinux
Source Issues
Section titled “Source Issues”本页汇总自 11 个真实 issue
- 为什么切换供应商后我的插件配置不见了?
- 因为 cc-switch 采用全量覆盖设计,插件等共享配置需通过「通用配置」提取并勾选「写入通用配置」才能保留。
- 能否合并 JSON 而不是完全替换?
- v3.11.0 曾尝试字段级合并,但因状态冲突回滚。目前设计为全量覆盖,暂不计划改为字段级合并。
- MCP 配置不生效怎么办?
- v3.9.0 之前只在首次安装时扫描 MCP,新版增加了手动导入按键,请点击导入。
- 环境变量配置被 cc-switch 覆盖怎么办?
- 勾选“写入通用配置覆盖”,或注释/重命名原配置文件,让环境变量优先生效。
- 配置了 WSL 目录后,Windows 原生目录还生效吗?
- 不生效。cc-switch 设计上只切换指定目录,不会同时切换多个目录。
切换供应商后 settings.json 插件与 hooks 丢失这是 cc-switch 的全量快照覆盖设计:把需要保留的字段放进“共享配置片段 / 通用配置”,并勾选“写入通用配置”。切换后配置丢失:Claude Code / Codex / WSL 路径核对切换供应商会重写 settings.json,请把 hooks/statusLine/enabledPlugins 等字段放入“通用配置/共享配置片段”,不要只写在本地文件里。settings.json 被代理接管覆盖导致插件配置丢失 - Claude Code将 hooks、statusLine 等自定义字段放入「通用配置」面板,或升级至 v3.12.2+ 以修复旧版备份恢复逻辑。用cc-switch切换, 发现无效 - CodexCodex 不支持热切换,必须在 cc-switch 切换中转站后彻底重启 Codex 应用,会话丢失可通过迁移工具恢复。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。