# MCP 配置管理器
跨平台工具,用于管理在 Claude、Gemini、Codex 和其他AI系统中的模型上下文协议(MCP)服务器配置。
**基于经过实战考验的 `mcp_toggle.py` 脚本,并增强了架构和图形用户界面。**




## 🎉 项目状态
### ✅ 图形界面完全可用!
图形界面已完成并运行良好,所有主要功能均可操作。应用程序提供了一种现代且易于使用的管理MCP服务器的方式,无需接触JSON文件。
## 🚀 当前功能
### ✅ 完全实现
- **🖥️ 图形用户界面** - 使用PyQt6/tkinter的现代跨平台GUI
- **🎨 双图形后端** - PyQt6用于丰富的样式和提示,如果未安装PyQt6则自动回退到tkinter
- **📝 服务器配置编辑器** - 直接在GUI中编辑服务器配置
- **🔧 字段编辑系统** - 动态字段编辑,实时验证
- **🔍 项目发现** - 自动从项目.claude.json文件中发现MCP服务器
- **🗑️ 批量服务器删除** - 删除多个服务器时带有确认对话框
- **➕ 增强的服务器添加** - 添加服务器时具有改进的JSON验证和清理
- **💾 高级备份系统** - 在专用目录中组织备份,并与GUI集成
- **📦 快速备份与恢复** - 工具栏上的一键备份和恢复,带文件选择
- **🔄 服务器恢复** - 从备份文件中恢复服务器,包括已禁用的服务器
- **交互式CLI管理** - 具有完整功能的交互模式,用于服务器管理
- **多客户端支持** - 管理`.claude.json`、`.gemini/settings.json`和Codex配置文件
- **服务器启用/禁用** - 切换服务器的开启/关闭状态而不丢失配置
- **主复选框** - 一次批量选择或取消选择所有服务器
- **配置同步** - 在Claude、Gemini和Codex之间同步服务器
- **自动备份** - 在进行任何更改之前创建时间戳备份
- **预设管理** - 保存和加载特定项目的配置
- **快速预设模式** - 最小化、Web开发、全栈和测试预设
- **JSON服务器添加** - 通过粘贴JSON配置添加新服务器
- **跨平台支持** - 支持Windows、macOS和Linux
- **命令行接口** - 具有单独命令的完整CLI
- **配置验证** - 验证配置文件结构
- **视觉状态指示器** - 清晰的启用/禁用状态颜色
- **键盘快捷键** - 专业键盘导航(Ctrl+S保存,Esc取消)
- **视觉润色** - 蓝色的选择高亮,橙色的未保存指示,红色的验证错误
### 🚧 下一步功能(规划阶段)
- **健康监控** - 实时服务器连接状态
- **高级导入/导出** - 在机器之间导入/导出预设和配置
## 🚀 快速安装(推荐)
**一键安装:**
```bash
curl -fsSL https://raw.githubusercontent.com/holstein13/mcp-config-manager/master/install.sh | bash
安装程序将:
mcp命令添加到PATH# 启动GUI(推荐)
mcp gui
# 或使用别名
mcp-gui
# 交互式CLI模式
mcp interactive
# 检查状态
mcp status
# 显示所有选项
mcp --help
# 简单卸载
mcp uninstall
pip install PyQt6git clone https://github.com/holstein13/mcp-config-manager.git
cd mcp-config-manager
pip install -e .
# 可选:安装PyQt6以获得更好的GUI体验
pip install PyQt6
# 设置开发环境
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
pip install -r requirements-dev.txt
pip install -e .
# 运行测试
pytest
</details>
启动图形界面:
mcp-config-manager gui
为了在macOS上更方便地启动,你可以创建一个可以双击、添加到Dock或通过Spotlight启动的本地.app捆绑包。
由于macOS的外部管理Python环境(PEP 668),你需要使用虚拟环境:
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate
# 安装构建依赖项
pip install py2app
# 以可编辑模式安装应用
pip install -e .
# 安装PyQt6以支持GUI(如果尚未安装)
pip install PyQt6
# 激活虚拟环境(如果尚未激活)
source venv/bin/activate
# 构建.app捆绑包(从项目根目录)
./build_app.sh
# 或手动:
python3 scripts/build/setup_app.py py2app --dist-dir artifacts/dist
# 安装到Applications文件夹
cp -r "artifacts/dist/MCP Config Manager.app" /Applications/
该应用将被创建在artifacts/dist/MCP Config Manager.app。然后你可以:
# 激活虚拟环境
source venv/bin/activate
# 清除之前的构建工件
rm -rf build artifacts/dist
# 构建.app捆绑包
./build_app.sh
# 安装到Applications文件夹
cp -r "artifacts/dist/MCP Config Manager.app" /Applications/
如果构建失败:
source venv/bin/activate)pip list)rm -rf build artifacts/dist)如果应用启动时崩溃:
/Applications/MCP\ Config\ Manager.app/Contents/MacOS/MCP\ Config\ Manager
注意: .app捆绑包是完全自包含的,包含了Python和所有依赖项。一旦构建完成,它就可以独立于你的虚拟环境工作。
GUI提供了:
启动命令行交互界面:
mcp-config-manager interactive
这提供了原始mcp_toggle.py脚本的完整界面,包括:
# 显示当前状态
mcp-config-manager status
# 启用/禁用特定服务器
mcp-config-manager enable server-name
mcp-config-manager disable server-name
# 批量操作
mcp-config-manager enable-all
mcp-config-manager disable-all
# 备份和恢复
mcp-config-manager backup # 创建时间戳备份
mcp-config-manager restore backup-file.json # 从备份恢复
# 服务器管理
mcp-config-manager add-server server-name config.json # 从文件添加服务器
mcp-config-manager delete-server server-name # 永久删除服务器
# 应用预设模式
mcp-config-manager preset minimal # 只有context7 + browsermcp
mcp-config-manager preset webdev # + playwright
mcp-config-manager preset fullstack # + supabase, clerk, railway
# 验证配置
mcp-config-manager validate ~/.claude.json
该工具支持四种模式:
--mode claude) - 仅管理.claude.json--mode gemini) - 仅管理.gemini/settings.json--mode codex) - 仅管理Codex配置--mode all) - 保持所有配置同步
MCP配置管理器GUI显示带有视觉反馈的服务器配置编辑
🔧 MCP配置管理器 - 交互模式
==================================================
📊 当前状态:
------------------------------
模式:🔄 所有CLI(同步)
✅ 激活的服务器(将运行):
[1] context7
[2] browsermcp
[3] playwright
❌ 禁用的服务器(不会运行):
[d1] supabase
[d2] clerk
📋 操作:
[1-N] 禁用激活的服务器
[d1-N] 启用禁用的服务器
[a] 启用所有
[n] 禁用所有
[m] 最小化(context7 + browsermcp)
[w] Web开发(+ playwright)
[+] ➕ 添加新的MCP服务器
[p] 📁 预设管理
[c] 🔄 更改CLI模式
[s] 保存并退出
[q] 不保存退出
操作:
src/mcp_config_manager/
├── core/
│ ├── config_manager.py # 主配置管理
│ ├── server_manager.py # 服务器启用/禁用逻辑
│ └── presets.py # 预设管理
├── parsers/
│ ├── claude_parser.py # Claude配置解析
│ ├── gemini_parser.py # Gemini配置解析
│ └── base_parser.py # 解析接口
├── utils/
│ ├── backup.py # 备份功能
│ ├── sync.py # 配置同步
│ └── file_utils.py # 文件路径工具
├── gui/ # GUI组件
│ ├── main_window.py # 主应用程序窗口
│ ├── controllers/ # GUI库桥梁
│ │ └── server_controller.py
│ ├── widgets/ # UI组件
│ │ ├── server_list.py
│ │ ├── server_details_panel.py
│ │ └── field_editors/ # 动态字段编辑器
│ │ ├── base.py
│ │ ├── text.py
│ │ ├── number.py
│ │ ├── boolean.py
│ │ ├── array.py
│ │ └── object.py
│ └── dialogs/ # 模态对话框
└── cli.py # 命令行接口
字段编辑系统提供了针对服务器配置字段的动态类型特定编辑器:
field_editors/base.py):定义接口的抽象基类FieldEditorFactory根据字段类型创建适当的编辑器# ServerDetailsPanel自动创建适当的编辑器
field_editor = FieldEditorFactory.create_editor(
field_name="command",
field_value="npx @modelcontextprotocol/server-sqlite",
field_type="string",
parent=self
)
# 连接信号以跟踪更改
field_editor.value_changed.connect(self.on_field_changed)
field_editor.validation_error.connect(self.on_validation_error)
以下新函数已在最近的提交中添加:
create_backup() - 创建时间戳备份并返回GUI兼容的结果add_server() - 添加服务器,接口由ServerController预期add_server_with_name() - 使用显式名称和配置添加服务器delete_server() - 从配置和存储中永久删除服务器update_server_config() - 更新现有服务器配置backup_all_configs() - 在专用目录中创建组织良好的备份list_backups() - 按类型列出可用的备份文件restore_backup() - 从备份文件中恢复配置backups/目录中add_server() - 服务器添加的GUI集成delete_servers() - 批量删除并带有确认对话框DeleteServersDialog - 批量删除并带有安全确认AddServerDialog - JSON验证和清理功能BackupRestoreDialog - 备份和恢复操作的GUI# 克隆仓库
git clone https://github.com/holstein13/mcp-config-manager
cd mcp-config-manager