配置不生效: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 配置丢失(cc-switch)把 enabledPlugins、hooks 等通用字段提取到「通用配置」并在各供应商勾选写入;v3.12.2 已修复代理接管下通用配置丢失的 BUG。切换供应商后 settings.json 配置丢失使用「共享配置片段」功能提取并保留 hooks/statusLine 等自定义字段,切换时自动带走。settings.json 被重置 - Claude Code将插件、hooks 等共享字段写入「通用配置」并在切换时勾选写入;接管模式异常时先关闭后切换供应商再开启。auth 已变为 {},API Key 丢失 - cc-switch Codex编辑当前生效的 Codex 供应商并保存时,若本机 ~/.codex/auth.json 缺失,DB 中的 auth.OPENAI_API_KEY 会被 live 空配置整体覆盖清空;避免直接保存或手动补回 key。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。