claude-mcp-switch - 克劳德代码MCP切换器
一个零依赖的 npx 命令行界面(CLI),用于列出、启用和禁用 Claude Code MCP 服务器。 使用 claude 底层使用CLI以确保与您的实际运行配置兼容。
✨ 特点/功能
- 列出启用和禁用的MCP服务器(由...提供支持)
claude mcp list) - 按名称启用/禁用服务器
- 在禁用时保留服务器配置,以便轻松重新启用
- JSON输出和模拟运行模式
- 支持所有传输类型:stdio、SSE、HTTP
- 吸引人的用户界面:ASCII横幅、彩色输出和框线表格
- 颜色控制:自动检测TTY,使用--no-color或设置NO_COLOR=1来禁用;在--json模式下始终关闭
📋 要求
- Node.js 版本 >= 18
- Claude CLI 已安装并配置(
claude可用命令 - 在Claude代码中至少配置了一个MCP服务器
🚀 安装/使用
- 本地使用 npx (无需安装):
1. 列出服务器: npx claude-mcp-switch list 1. 启用服务器: npx claude-mcp-switch enable github 1. 禁用服务器: npx claude-mcp-switch disable github --dry-run
- 通过 npm 全局安装:
1. 全局安装: npm install -g claude-mcp-switch 1. 使用该工具: ccmcp list 1. 启用MCP: ccmcp enable github 1. 禁用MCP: ccmcp disable github
- 本地开发(无需注册):
1. 在本地克隆仓库: - git clone 并且 cd claude-mcp-switch 1. 确保CLI入口点可执行: - macOS/Linux: chmod +x ./src/ccmcp.js (shebang 存在于 src/ccmcp.js(这个文件名在中文中通常不直接翻译,因为它是一个文件路径,但在描述时可以解释为“位于src目录下的ccmcp.js文件”)) 1. 在全球范围内连接以使用 ccmcp 随时随地指挥: - npm link (使用箱(bin)映射在 ) 1. 使用该工具: - ccmcp list - ccmcp enable github - 测试期间禁用颜色: ccmcp list --no-color 1. 完成后取消链接: - npm unlink -g ccmcp (或者运行 npm unlink (项目内部)
- 备选方案:直接运行,无需链接
- macOS/Linux: - node ./src/ccmcp.js list - node ./src/ccmcp.js enable github --config ~/.claude/settings.json - Windows(CMD): - node .\src\ccmcp.js list - node .\src\ccmcp.js enable github --config %USERPROFILE%\.claude\settings.json - Windows(PowerShell): - node .\src\ccmcp.js list - node .\src\ccmcp.js enable github --config "$env:USERPROFILE\.claude\settings.json"
💻 命令
- 列出 \[--json\] \[--no-color\]
- 打印一个带有状态、名称、传输方式、命令/URL 的彩色边框表格 - 显示了活跃(来自 claude mcp list)以及禁用的服务器(来自本地存储) 
- 启用;使能够 \[--模拟运行\] \[--json\] \[--无颜色\]
- 通过恢复其配置,重新启用之前已禁用的服务器 
- 禁用 \[--dry-run\](模拟运行) \[--json\](输出JSON格式) \[--no-color\](不使用颜色)
- 通过移除服务器来禁用它 claude mcp remove 并存储其配置以便稍后重新启用 
- --help(帮助),--version(版本)
🎯 它的工作原理
- 列表执行
claude mcp list获取活动服务器,并与本地存储的已禁用服务器合并 - 禁用:
1. 通过(某种方式)获取服务器详细信息 claude mcp get 1. 将配置存储在 ~/.claude-mcp-switch/disabled-servers.json 1. 通过(某种方式)移除服务器 claude mcp remove
- 启用:
1. 从本地存储中检索存储的配置 1. 通过(某种方式)重新添加服务器 claude mcp add 带原始设置 1. 从禁用存储中移除
🔍 配置
无需发现配置文件!该工具使用 claude CLI 会自动使用您当前激活的 Claude Code 配置。这确保了该工具始终与您实际运行的 MCP 服务器协同工作。
🚪 退出代码
- 0:成功
- 2: 未找到服务器
- 4: 执行Claude CLI命令时出错
📝 示例
- 列出所有服务器:
npx claude-mcp-switch list- 禁用服务器:
npx claude-mcp-switch disable playwright- 启用之前已禁用的服务器:
npx claude-mcp-switch enable playwright- 模拟运行模式:
npx claude-mcp-switch disable playwright --dry-run- JSON输出:
npx claude-mcp-switch list --json📊 JSON 输出
- 列表输出包含状态、名称、传输方式、命令或URL的服务器对象数组
- 启用/禁用输出 { 成功, 动作, 标识符, 错误? }
🔧 故障排除
- “claude: command not found”翻译成中文是:“claude:命令未找到”确保已安装 Claude Code CLI 且其路径已添加到您的 PATH 中
- 服务器未找到使用
claude mcp list查看可用的服务器,或npx claude-mcp-switch list查看活动服务器和禁用服务器 - 权限错误确保您有写入访问权限
~/.claude-mcp-switch/目录
📚 参考资料
- Claude 代码 MCP:https://docs.claude.com/en/docs/claude-code/mcp
- Claude CLI 文档:https://docs.claude.com/en/docs/claude-code/cli
🧪 测试
该项目使用Node.js内置的测试运行器(Node 18+)进行全面的单元测试和集成测试。
运行测试
# Run all tests
npm test
# Run unit tests only
npm run test:unit
# Run integration tests only
npm run test:integration
# Watch mode
npm run test:watch
# Coverage report
npm run test:coverage测试覆盖率
- 对所有模块(实用工具、配置、模式、匹配器、用户界面)进行单元测试
- CLI命令的集成测试
- 使用临时配置文件进行端到端测试
- 针对特定平台的路径解析测试
- 错误处理和边界情况覆盖
📄 许可证
麻省理工学院(MIT)
🤖 GitHub 工作流
这个项目包含了使用多个GitHub Actions工作流实现的全面CI/CD自动化。请参阅 CI/CD 工作流 以获取详细文档。
