About Config Manager
Config Manager is an MCP server published by holstein13 in the AI category: this package provides functionality to manage MCP server configurations for different clients like Cline and Claude Desktop.
The repository has 29 stars and 7 forks, with the last commit 9 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/holstein13/mcp-config-managerThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Config Manager
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
3 checks have not been run yet.
README
cat > README.md << 'EOF'
MCP Config Manager
A cross-platform utility for managing Model Context Protocol (MCP) server configurations across Claude, Gemini, Codex, and other AI systems.
Based on the battle-tested mcp_toggle.py script with enhanced architecture and GUI interface.
🎉 Project Status
✅ GUI is FULLY FUNCTIONAL!
The graphical interface is complete and working with all major features operational. The application provides a modern, user-friendly way to manage MCP servers without touching JSON files.
🚀 Current Features
✅ Fully Implemented
- 🖥️ Graphical User Interface - Modern cross-platform GUI with PyQt6/tkinter
- 🎨 Dual GUI Backend - PyQt6 for rich styling and tooltips, automatic fallback to tkinter if PyQt6 not available
- 📝 Server Configuration Editor - Edit server configurations directly in the GUI
- 🔧 Field Editor System - Dynamic field editing with real-time validation
- 🔍 Project Discovery - Automatically discover MCP servers from project .claude.json files
- 🗑️ Bulk Server Deletion - Delete multiple servers with confirmation dialog
- ➕ Enhanced Server Addition - Add servers with improved JSON validation and cleanup
- 💾 Advanced Backup System - Organized backups in dedicated directory with GUI integration
- 📦 Quick Backup & Restore - One-click backup and restore from toolbar with file selection
- 🔄 Server Restore - Restore servers from backup files including disabled servers
- Interactive CLI Management - Full-featured interactive mode for server management
- Multi-Client Support - Manages
.claude.json,.gemini/settings.json, and Codex configuration files - Server Enable/Disable - Toggle servers on/off without losing configurations
- Master Checkbox - Bulk select/deselect all servers at once
- Configuration Syncing - Synchronize servers between Claude, Gemini, and Codex
- Automatic Backups - Timestamped backups before any changes
- Preset Management - Save and load project-specific configurations
- Quick Preset Modes - Minimal, web dev, fullstack, and testing presets
- JSON Server Addition - Add new servers by pasting JSON configurations
- Cross-Platform Support - Works on Windows, macOS, and Linux
- Command Line Interface - Full CLI with individual commands
- Configuration Validation - Validate config file structure
- Visual Status Indicators - Clear enabled/disabled status with colors
- Keyboard Shortcuts - Professional keyboard navigation (Ctrl+S to save, Esc to cancel)
- Visual Polish - Blue selection highlights, orange unsaved indicators, red validation errors
🚧 Next Features (Planning Phase)
- Health Monitoring - Real-time server connection status
- Advanced Import/Export - Import/export presets and configurations between machines
🚀 Quick Install (Recommended)
One-command installation:
curl -fsSL https://raw.githubusercontent.com/holstein13/mcp-config-manager/master/install.sh | bash
The installer will:
- ✅ Check system requirements automatically
- 📁 Ask where to install (with smart defaults)
- 🐍 Set up isolated Python environment
- 🔗 Add
mcpcommand to your PATH - 🖥️ Create desktop shortcuts (Linux)
- 🗑️ Provide easy uninstall option
Quick Start After Installation
# Launch GUI (recommended)
mcp gui
# or use the alias
mcp-gui
# Interactive CLI mode
mcp interactive
# Check status
mcp status
# Show all options
mcp --help
# Uninstall easily
mcp uninstall
📦 Manual Installation
Prerequisites
- Python 3.8 or higher
- Claude Code CLI, Gemini CLI, and/or Codex installed
- PyQt6 (recommended but optional): Provides rich styling, tooltips, and better UX
- If not installed, app automatically falls back to tkinter (built into Python)
- Install with:
pip install PyQt6
Clone and Install
git clone https://github.com/holstein13/mcp-config-manager.git
cd mcp-config-manager
pip install -e .
# Optional: Install PyQt6 for better GUI experience
pip install PyQt6
Development Setup
# Set up development environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements-dev.txt
pip install -e .
# Run tests
pytest
🚀 Usage
GUI Mode (NEW! - Recommended)
Launch the graphical interface:
mcp-config-manager gui
macOS: Create a Native .app Bundle
For easier launching on macOS, you can create a native .app bundle that can be double-clicked, added to your Dock, or launched via Spotlight.
Initial Setup (One-time)
Due to macOS's externally-managed Python environment (PEP 668), you need to use a virtual environment:
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
source venv/bin/activate
# Install build dependencies
pip install py2app
# Install the application in editable mode
pip install -e .
# Install PyQt6 for GUI support (if not already installed)
pip install PyQt6
Building the .app Bundle
# Activate virtual environment (if not already active)
source venv/bin/activate
# Build the .app bundle (from project root)
./build_app.sh
# Or manually:
python3 scripts/build/setup_app.py py2app --dist-dir artifacts/dist
# Install to Applications folder
cp -r "artifacts/dist/MCP Config Manager.app" /Applications/
The app will be created in artifacts/dist/MCP Config Manager.app. You can then:
- Double-click "MCP Config Manager.app" to launch
- Launch via Spotlight (⌘ + Space, type "MCP Config Manager")
- Add it to your Dock for quick access
Rebuilding After Code Changes
# Activate virtual environment
source venv/bin/activate
# Clean previous build artifacts
rm -rf build artifacts/dist
# Build the .app bundle
./build_app.sh
# Install to Applications folder
cp -r "artifacts/dist/MCP Config Manager.app" /Applications/
Troubleshooting
If the build fails:
- Make sure you're in the virtual environment (
source venv/bin/activate) - Check that all dependencies are installed (
pip list) - Clean build artifacts and try again (
rm -rf build artifacts/dist)
If the app crashes on launch:
- Run from terminal to see error messages:
/Applications/MCP\ Config\ Manager.app/Contents/MacOS/MCP\ Config\ Manager
Note: The .app bundle is completely self-contained with Python and all dependencies bundled. It works independently of your virtual environment once built.
The GUI provides:
- 🖥️ Visual server list with checkboxes
- ☑ Master checkbox for bulk operations (☐/☑/⊟ states)
- 📝 Server Detail Editor - Click any server to edit its configuration
- 🔧 Dynamic Field Editors - Smart editors for each field type:
- Text fields for strings and commands
- Number fields with validation
- Boolean toggles for true/false values
- Array editors for list management
- Object editors for nested configurations
- 🔍 Project Discovery:
- Discover button scans for project .claude.json files
- Automatically finds MCP servers in your projects
- Smart duplicate detection and consolidation
- Location-aware server management (Global vs Project)
- ✅ Real-time Validation - Immediate feedback on configuration errors
- 🎨 Visual Feedback:
- Blue highlights for selected servers
- Orange indicators for unsaved changes
- Red borders for validation errors
- Empty state guidance when no server selected
- 💾 Backup & Restore:
- Backup button creates timestamped backups
- Restore button lists and restores previous backups
- Automatic backups before any changes
- 🔄 Mode switching between Claude/Gemini/Codex/All
- 💾 Save button with visual feedback
- ➕ Add new servers via JSON with enhanced validation
- 🗑️ Bulk delete servers with confirmation
- 💾 Quick backup and restore with GUI feedback
- 📁 Preset management dialog
- ⌨️ Full keyboard shortcuts (Ctrl+S to save, Esc to cancel)
Interactive CLI Mode
Launch the command-line interactive interface:
mcp-config-manager interactive
This gives you the complete interface from the original mcp_toggle.py script with:
- ✅/❌ Visual server status
- 🔄 Real-time mode switching (Claude/Gemini/Codex/All)
- 📁 Preset management
- ➕ Add servers by pasting JSON
- 🎯 Quick preset modes (minimal, web dev, etc.)
Command Line Usage
# Show current status
mcp-config-manager status
# Enable/disable specific servers
mcp-config-manager enable server-name
mcp-config-manager disable server-name
# Bulk operations
mcp-config-manager enable-all
mcp-config-manager disable-all
# Backup and restore
mcp-config-manager backup # Create timestamped backup
mcp-config-manager restore backup-file.json # Restore from backup
# Server management
mcp-config-manager add-server server-name config.json # Add server from file
mcp-config-manager delete-server server-name # Delete server permanently
# Apply preset modes
mcp-config-manager preset minimal # Only context7 + browsermcp
mcp-config-manager preset webdev # + playwright
mcp-config-manager preset fullstack # + supabase, clerk, railway
# Validate configurations
mcp-config-manager validate ~/.claude.json
Working with Modes
The tool supports four modes:
- Claude only (
--mode claude) - Only manages.claude.json - Gemini only (
--mode gemini) - Only manages.gemini/settings.json - Codex only (
--mode codex) - Only manages Codex configurations - All (synced) (
--mode all) - Keeps all configs synchronized
🖼️ Screenshots
GUI Interface

The MCP Config Manager GUI showing server configuration editing with visual feedback
Interactive Mode
🔧 MCP Config Manager - Interactive Mode
==================================================
📊 Current Status:
------------------------------
Mode: 🔄 All CLIs (synced)
✅ ACTIVE servers (will run):
[1] context7
[2] browsermcp
[3] playwright
❌ DISABLED servers (won't run):
[d1] supabase
[d2] clerk
📋 Actions:
[1-N] Disable active server
[d1-N] Enable disabled server
[a] Enable ALL
[n] Disable ALL
[m] Minimal (context7 + browsermcp)
[w] Web dev (+ playwright)
[+] ➕ Add new MCP server
[p] 📁 Preset management
[c] 🔄 Change CLI mode
[s] Save and exit
[q] Quit without saving
Action:
🛠️ Development
Project Structure
src/mcp_config_manager/
├── core/
│ ├── config_manager.py # Main configuration management
│ ├── server_manager.py # Server enable/disable logic
│ └── presets.py # Preset management
├── parsers/
│ ├── claude_parser.py # Claude config parsing
│ ├── gemini_parser.py # Gemini config parsing
│ └── base_parser.py # Parser interface
├── utils/
│ ├── backup.py # Backup functionality
│ ├── sync.py # Config synchronization
│ └── file_utils.py # File path utilities
├── gui/ # GUI components
│ ├── main_window.py # Main application window
│ ├── controllers/ # GUI-library bridge
│ │ └── server_controller.py
│ ├── widgets/ # UI components
│ │ ├── server_list.py
│ │ ├── server_details_panel.py
│ │ └── field_editors/ # Dynamic field editors
│ │ ├── base.py
│ │ ├── text.py
│ │ ├── number.py
│ │ ├── boolean.py
│ │ ├── array.py
│ │ └── object.py
│ └── dialogs/ # Modal dialogs
└── cli.py # Command line interface
Field Editor System
The field editor system provides dynamic, type-specific editors for server configuration fields:
Architecture
- Base Editor (
field_editors/base.py): Abstract base class defining the interface - Type-Specific Editors: Specialized editors for each data type
- Factory Pattern:
FieldEditorFactorycreates appropriate editor based on field type - Validation: Real-time validation with visual feedback
Supported Field Types
- Text Editor - Single/multi-line text fields for strings and commands
- Number Editor - Integer/float fields with min/max validation
- Boolean Editor - Checkbox for true/false values
- Array Editor - List management with add/remove/reorder capabilities
- Object Editor - Nested object editing with key-value pairs
Visual Feedback
- Orange Border - Field has been modified (unsaved changes)
- Red Border - Validation error with 2px width
- Light Red Background - Additional error indication (#FFF5F5)
- Tooltip - Error message on hover for invalid fields
Usage Example
# The ServerDetailsPanel automatically creates appropriate editors
field_editor = FieldEditorFactory.create_editor(
field_name="command",
field_value="npx @modelcontextprotocol/server-sqlite",
field_type="string",
parent=self
)
# Connect signals for change tracking
field_editor.value_changed.connect(self.on_field_changed)
field_editor.validation_error.connect(self.on_validation_error)
Core API Functions
The following new functions have been added across recent commits:
ConfigManager (core/config_manager.py)
create_backup()- Create timestamped backups and return GUI-compatible resultsadd_server()- Add a server with the interface expected by ServerController- Enhanced error handling - Improved error reporting for GUI integration
ServerManager (core/server_manager.py)
add_server_with_name()- Add server with explicit name and configurationdelete_server()- Permanently delete servers from configurations and storageupdate_server_config()- Update existing server configurations- Enhanced mode support - Better handling of 'claude', 'gemini', 'codex', 'all' modes
Backup System (utils/backup.py)
backup_all_configs()- Create organized backups in dedicated directorylist_backups()- List available backup files by typerestore_backup()- Restore configurations from backup files- Organized storage - Backups now stored in dedicated
backups/directory
GUI Controllers (gui/controllers/server_controller.py)
add_server()- GUI integration for server additiondelete_servers()- Bulk deletion with confirmation dialog- Enhanced event handling - Better signal/slot management for GUI updates
New Dialog Components
DeleteServersDialog- Bulk deletion with safety confirmations- Enhanced
AddServerDialog- JSON validation and cleanup features BackupRestoreDialog- GUI for backup and restore operations
JSON Processing Enhancements
- JSON cleanup - Remove comments and fix malformed JSON in AddServerDialog
- Enhanced validation - Better error reporting for invalid JSON configurations
- Batch processing - Support for adding multiple servers from single JSON input
Development Setup
# Clone the repository
git clone https://github.com/holstein13/mcp-config-manager
cd mcp-config-manager
# Set up development environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements-dev.txt
pip install -e .
# Run tests
pytest
# Run the application
mcp-config-manager interactive
📁 File Locations
- Claude config:
~/.claude.json - Gemini config:
~/.gemini/settings.json - Codex config:
~/.codex.json - Presets:
~/.mcp_presets.json - Disabled servers:
~/.mcp_disabled_servers.json(in user's home directory) - Organized backups:
~/Documents/MCP Config Manager/backups/with timestamped files:claude-backup-YYYYMMDD_HHMMSS.jsongemini-backup-YYYYMMDD_HHMMSS.jsondisabled-backup-YYYYMMDD_HHMMSS.json
- Legacy backups:
~/.claude.json.backup.YYYYMMDD_HHMMSS
🗺️ Roadmap
✅ Phase 1: Core Functionality - COMPLETE
- Interactive CLI interface
- Multi-client support (Claude + Gemini)
- Server enable/disable with storage
- Configuration synchronization
- Automatic backups
- Preset management
- JSON server addition
- Command line interface
✅ Phase 2: GUI Development - COMPLETE
- Cross-platform GUI framework (PyQt6/tkinter)
- Main server management window with checkboxes
- Master checkbox for bulk operations
- Preset management dialog
- Settings and configuration dialogs
- Add server via JSON paste
- Keyboard shortcuts and professional UX
- Visual status indicators and feedback
🚧 Phase 3: Polish & Platform Testing - IN PROGRESS
Current focus:
- ✅ macOS platform testing and optimization
- ⏳ Windows platform testing
- ⏳ Linux platform testing
- ⏳ Performance optimization for large server lists
- ⏳ PyInstaller packaging
📋 Phase 4: Advanced Features - IN PROGRESS
Completed:
- ✅ Server Detail View - Click server name to edit configuration in side panel
- ✅ Field Editors - Visual editors for each configuration field type
- ✅ Real-time Validation - Immediate feedback on configuration changes
Next features:
- Health Monitoring - Real-time server connection status
- Import/Export - Backup and restore configurations
🚀 Phase 5: Distribution
- Packaged installers (Windows MSI, macOS DMG, Linux AppImage)
- Auto-updater mechanism
- Plugin architecture for extensions
- IDE integrations (VS Code, IntelliJ, etc.)
🎯 Migration from Original Script
If you're using the original mcp_toggle.py script:
- Your configs are preserved - The tool uses the same file locations
- Your presets carry over -
~/.mcp_presets.jsonis used directly - Same functionality - All original features are available in interactive mode
- Enhanced capabilities - Plus new CLI commands and better error handling
🤝 Contributing
We welcome contributions! The original mcp_toggle.py script was a fantastic foundation, and we're building on that success.
Areas for Contribution
- 🎨 GUI Development - Help build the cross-platform interface
- 🔍 Server Discovery - Auto-detect available MCP servers
- 🧪 Testing - Add test coverage for all components
- 📚 Documentation - Improve guides and examples
- 🐛 Bug Reports - Found an issue? Let us know!
📄 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
- Original
mcp_toggle.pyscript that inspired this project - The Anthropic team for developing the Model Context Protocol
- The open source community for feedback and contributions
Ready to get started? Run mcp-config-manager interactive and experience the full power of MCP server management!
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.