拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CC-Switch教程:用TaoToken统一管理Skills、MCP、模型供应商与系统提示词配置

CC-Switch教程:用TaoToken统一管理Skills、MCP、模型供应商与系统提示词配置

1. 为什么你的 Claude Code 配置越用越乱

如果你用 Claude Code 超过两周,大概率会经历这样一个阶段:一开始只改~/.claude/settings.json,后来项目里加了.claude/settings.json,再后来 Skills 装到~/.claude/skills/下十几个,MCP 服务器在mcpServers字段里越堆越多,系统提示词又分成了全局CLAUDE.md和项目级CLAUDE.md两套。等到某天想切回上一个项目的配置,发现自己已经记不清当时改了哪几个文件。

CC-Switch 就是冲着这个痛点来的。它本质上是 Claude Code 的一层配置管理层,不替代原有配置文件,而是在上面加了一个统一的档案(profile)入口,把 Skills、MCP、模型供应商、系统提示词这四类分散配置收拢到一处管理。适合谁?适合同时维护多个项目、需要在不同工作上下文之间来回切换、又不想每次手动改四五个文件的开发者。这篇教程会给出可复制的配置文件骨架,并逐项演示怎么验证配置真的生效了。

2. 前置准备:TaoToken 与 CC-Switch 的定位

在动手之前,先把两个东西的职责分清楚,不然后面容易混。

TaoToken 在这里扮演的是模型供应商接入层。CC-Switch 管的是「用哪个供应商、哪个模型、Key 从哪个环境变量读」,而 TaoToken 提供的是兼容 Anthropic 接口的调用地址和 Key 管理。你可以在 TaoToken 控制台创建 API Key,然后在 CC-Switch 的档案里把baseUrl指向 TaoToken 的 API 地址,把apiKeyEnv指向你存放 Key 的环境变量名。这样切换档案时,模型供应商的指向也跟着一起切。

CC-Switch 本身的前置条件只有两个:Claude Code 已安装、Node.js 环境可用。安装方式按仓库说明来,初始化后会在~/.claude/cc-switch/下生成profiles/、templates/、snapshots/三个目录。profiles/放档案,templates/放系统提示词模板,snapshots/放配置快照用于回滚。

注意:第一次使用前,手动备份一次~/.claude/settings.json。CC-Switch 每次操作前会自动备份到snapshots/,但多一层保险不亏。

如果你还没创建 Key,可以去 TaoToken 控制台的 API Keys 页面生成一个,后面配置里会用到。接入文档在 doc 页面,遇到字段对不上时可以对照查。

3. 可复制的 CC-Switch 配置文件骨架

先给一份完整的档案骨架,你可以直接复制到~/.claude/cc-switch/profiles/work-backend.json,然后按自己的项目改。

{ "name": "work-backend", "skills": { "enabled": ["code-review", "tdd", "deep-research"], "disabled": ["legacy-deploy", "old-db-helper"] }, "mcpServers": { "active": ["filesystem", "github", "postgres"], "inactive": ["redis", "elasticsearch"] }, "model": { "provider": "anthropic-compatible", "baseUrl": "https://taotoken.net/api", "model": "claude-sonnet-4-6", "apiKeyEnv": "TAOTOKEN_API_KEY" }, "promptTemplate": "base" }

这份骨架里四个字段对应四类配置。skills.enabled声明这个档案激活哪些 Skills,切换档案时 CC-Switch 会自动调整状态,不用你一个个手动改。mcpServers.active同理,声明这个档案需要哪些 MCP 服务器。model段是模型供应商配置,baseUrl指向 TaoToken 的 API 地址,apiKeyEnv写的是环境变量名而不是 Key 本身,这样档案文件可以安全地提交到团队仓库。promptTemplate指定用哪个系统提示词模板。

对应的settings.json示例,CC-Switch 切换后会更新到~/.claude/settings.json的对应字段:

{ "model": "claude-sonnet-4-6", "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "${TAOTOKEN_API_KEY}" }, "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/projects"] }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] } } }

系统提示词模板放在~/.claude/cc-switch/templates/base.md,项目级CLAUDE.md只写差异部分:

@extends base ## 项目特定规范 - 使用 PostgreSQL,不用 ORM - API 接口统一返回 {code, data, message} 结构 - 提交前跑一遍 lint 和 typecheck

构建时 CC-Switch 会把base.md和项目CLAUDE.md合并,生成最终的提示词内容。通用规范只维护一份,不用在每个项目里重复写。

4. 逐项验证配置是否真的生效

配置写完不等于生效,下面逐项验证。先设置环境变量,把 Key 放进TAOTOKEN_API_KEY:

export TAOTOKEN_API_KEY="你的Key"

然后切换档案:

node cc-switch.js profile use work-backend

验证 Skills:列出当前激活的 Skills,确认enabled里的都在,disabled里的没被激活。

node cc-switch.js skills list

输出里应该能看到code-review、tdd、deep-research处于 active 状态,legacy-deploy和old-db-helper不在列表或标记为 disabled。

验证 MCP:检查settings.json的mcpServers字段是否被更新为档案里声明的三个服务器。

cat ~/.claude/settings.json | grep -A 5 mcpServers

验证模型供应商:这一步直接发一个请求,确认走的是 TaoToken 的地址。你可以用模型对话页面手动发一条测试消息,观察返回是否正常。或者在终端里用 curl 验证接口连通性:

curl -s https://taotoken.net/api/v1/messages \ -H "x-api-key: $TAOTOKEN_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-4-6","max_tokens":64,"messages":[{"role":"user","content":"ping"}]}'

返回里带content字段就说明供应商指向正确、Key 有效。如果返回 401,检查TAOTOKEN_API_KEY是否导出到了当前 shell。

验证系统提示词:切换档案后,查看合并后的提示词内容。

node cc-switch.js prompt show

输出应该是base.md加上项目CLAUDE.md的合并结果,通用规范在前,项目差异在后。

四项都过了,说明这个档案的配置完整生效。切换回另一个档案再跑一遍同样的验证,确认切换动作真的把四类配置都带过去了。

5. 本篇常见错排查

报错一:profile use后 Skills 没变化。大概率是档案里skills.enabled写的名字和实际安装的 Skill 目录名不一致。Skills 装在~/.claude/skills/下,目录名就是 Skill 名,大小写敏感。用ls ~/.claude/skills/对一下。

报错二:MCP 服务器切换后 Claude Code 报连接失败。检查settings.json里mcpServers的command和args是否完整。CC-Switch 只负责把档案里声明的服务器写进去,具体启动命令还是要在档案或settings.json里配全。临时测试新服务器可以用--temp标志,重启后自动移除,不污染正式配置。

报错三:模型请求返回 404 或地址不对。确认baseUrl写的是https://taotoken.net/api,不要多加路径后缀。如果用的是 OpenAI 兼容接口的本地模型,provider要改成openai-compatible,baseUrl指向本地地址。

报错四:系统提示词合并后项目差异丢失。检查项目CLAUDE.md第一行是不是@extends base,少了这行 CC-Switch 不会做模板继承,只会用项目文件本身。

报错五:切换档案后想回滚。用快照恢复:

node cc-switch.js snapshot save "before-switch" node cc-switch.js profile use personal-research node cc-switch.js snapshot restore "before-switch"

快照存在~/.claude/cc-switch/snapshots/下,每次操作前也会自动存一份。

6. 把配置收敛到一处之后

配置收敛之后,日常操作会变成这样:早上切work-backend,Skills、MCP、模型供应商、系统提示词一次性全部到位;晚上切personal-research,另一套配置整体替换。不用再翻三四个文件逐个改,也不用担心漏改了哪个字段。

如果你还在用多个项目各自维护一套配置,建议先把团队共用的基础档案提交到仓库(不含 Key),个人差异用profile.local.json覆盖,local 文件加进.gitignore。这样新人入职执行一次 import 就能对齐配置。

长期做编码和 Agent 任务的话,可以了解一下 Coding Plan,配合 CC-Switch 的档案切换,把不同任务的模型和工具组合固定下来。需要新建 Key 或管理多个 Key 时,去 API Keys 页面操作。接入过程中遇到字段对不上,doc 页面有完整的字段说明可以对照。

返回列表