A convenient command-line tool to manage MCP (Model Context Protocol) servers across different code editors.
- Multi-Editor Support: Manage MCP servers for Claude Code, Claude Desktop, Cursor, VS Code, and Windsurf
- Flexible Server Management: Add, remove, and list servers across all or specific editors
- Status Monitoring: Check configuration file status and server counts
- Rich CLI Interface: Colorized output with tables and status indicators
- 🔍 Auto-Discovery: Automatically discover all MCP configurations on your system
- 🌍 Add-All Command: Install servers to ALL discovered MCP configurations at once
- 📊 Status Dashboard: Comprehensive status overview of all editor configurations
- ⚙️ Configuration Validation: Pydantic-based configuration validation and error handling
- Type Safety: Full type hints and mypy compatibility
- Error Handling: Detailed error messages with actionable guidance
- Extensible: Easy to add support for new editors and MCP clients
- Testing: Comprehensive test coverage with pytest
# Install globally
pip install mcp-commander
# Or using pipx for isolated installation
pipx install mcp-commander# Install directly from GitHub
pip install git+https://github.com/nmindz/mcp-commander.git
# Or clone and install
git clone https://github.com/nmindz/mcp-commander.git
cd mcp-commander
pip install .git clone https://github.com/nmindz/mcp-commander.git
cd mcp-commander
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e .# Clone repository
git clone https://github.com/nmindz/mcp-commander.git
cd mcp-commander
# Install dependencies only
pip install -r requirements-dev.txt
# Method A: Using run.py script
python run.py --help
python run.py list
# Method B: Using shell wrapper
./mcp.sh --help
./mcp.sh discover
# Method C: Using Python module syntax (cleanest)
PYTHONPATH="src:$PYTHONPATH" python -m mcpcommander --help
PYTHONPATH="src:$PYTHONPATH" python -m mcpcommander status- Python 3.12 or higher
- Works on macOS, Windows, and Linux
Use --help --verbose (or --help -v) to see practical examples for any command:
# Show detailed help with examples
mcp add --help --verbose
mcp add-editor --help --verbose
mcp status --help --verbose
# Regular help (without examples)
mcp add --helpView all transport configuration examples:
# Show all transport examples
mcp examples
# Show examples with usage instructions
mcp examples --verbose# Discover all MCP configurations on your system
mcp discover
# Check status of all editor configurations
mcp status
# List available editors
mcp editors# Reset configuration to empty state (with confirmation)
mcp selfdestruct
# Reset configuration and remove all backups
mcp selfdestruct --include-backups
# Reset without confirmation prompts
mcp selfdestruct --force# List all configured servers
mcp list
# List servers for a specific editor
mcp list claude-code
# Add server to specific editor
mcp add myserver "npx @modelcontextprotocol/server-filesystem /tmp" claude-code
# Add server to all configured editors
mcp add myserver "npx @modelcontextprotocol/server-filesystem /tmp"# Copy environment variables from current environment
export MCP_LOG_LEVEL=info
export GIT_SIGN_COMMITS=false
mcp add git-server "npx @cyanheads/git-mcp-server" --from-env=MCP_LOG_LEVEL,GIT_SIGN_COMMITS
# Set explicit environment variables
mcp add api-server "npx my-api-server" --env=DEBUG:true --env=API_KEY:secret123
# Combine both approaches
mcp add hybrid-server "npx server" --from-env=LOG_LEVEL --env=CUSTOM_VAR:custom_value
# Use with JSON configuration (merges environment variables)
mcp add json-server '{"command": "npx", "args": ["server"], "env": {"EXISTING": "value"}}' --env=NEW_VAR:added
# Global verbose mode via environment variable
export MCP_COMMANDER_VERBOSE=1
mcp list # Will run in verbose mode automaticallyWhen using environment variables, MCP Commander generates server configurations like this:
{
"mcpServers": {
"git-mcp-server": {
"command": "npx",
"args": ["@cyanheads/git-mcp-server"],
"env": {
"MCP_LOG_LEVEL": "info",
"GIT_SIGN_COMMITS": "false"
}
}
}
}# Automatically discover and install to ALL MCP configurations
mcp add-all myserver "npx @modelcontextprotocol/server-filesystem /tmp"
# Works with JSON configurations too
mcp add-all myserver '{"command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"]}'# Remove server from all configured editors
mcp remove myserver
# Remove server from specific editor
mcp remove myserver cursor# Show help
mcp --help
mcp help # Same as above
# Show version
mcp versionMCP Commander automatically manages its configuration in platform-specific user directories:
- Windows:
%APPDATA%/mcpCommander/config.json - macOS:
~/Library/Application Support/mcpCommander/config.json - Linux:
~/.config/mcpCommander/config.json
When you first run any command, mcpCommander will automatically:
- Create the user config directory
- Migrate any existing
config.jsonfrom the repository - Create a default config if none exists
The configuration defines which editors are supported and where their configuration files are located:
{
"editors": {
"claude-code": {
"config_path": "~/.claude.json",
"jsonpath": "mcpServers"
},
"claude-desktop": {
"config_path": "~/Library/Application Support/Claude/claude_desktop_config.json",
"jsonpath": "mcpServers"
},
"cursor": {
"config_path": "~/.cursor/mcp.json",
"jsonpath": "mcpServers"
}
}
}To add support for a new editor, simply add an entry to the editors object in config.json:
{
"editors": {
"new-editor": {
"config_path": "/path/to/editor/config.json",
"jsonpath": "mcpServers"
}
}
}The jsonpath field supports simple dot notation for nested JSON paths (e.g., "config.mcpServers").
mcpCommander/
├── config.json # Editor configuration
├── mcp_manager.py # Main Python script
├── mcp # Shell wrapper script
└── README.md # This file
# Add JIRA server to all editors
mcp add jira-mcp "~/Projects/me/jira-mcp/server.py"
# List all configured servers
mcp list
# Remove from just Cursor
mcp remove jira-mcp cursor
# Check what's configured
mcp statusmcp add filesystem '{"command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "~/Documents"]}'# Clone the repository
git clone https://github.com/nmindz/mcp-commander.git
cd mcp-commander
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install with development dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
# Run linting and formatting
black src/ tests/
flake8 src/ tests/
mypy src/mcp-commander/
├── src/mcpcommander/ # Main package
│ ├── core/ # Core business logic
│ ├── cli/ # Command-line interface
│ ├── utils/ # Utilities and helpers
│ └── schemas/ # Pydantic schemas
├── tests/ # Test suite
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── e2e/ # End-to-end tests
├── docs/ # Documentation
└── scripts/ # Automation scripts
- Python 3.12 or higher
- Cross-platform (macOS, Windows, Linux)
- Rich CLI output with colorized formatting
- Fixed Path Resolution: Complete fix for Windows path detection
- No more hardcoded Unix paths like
~/Library/Application Support - Proper Windows environment variables (
%USERPROFILE%,%APPDATA%) - All editors now work correctly on Windows
- No more hardcoded Unix paths like
- New
selfdestructCommand: Reset MCP Commander to clean statemcp selfdestruct: Reset configuration with confirmationmcp selfdestruct --include-backups: Also remove all backupsmcp selfdestruct --force: Skip confirmation prompts- Perfect for testing autodiscovery functionality
- Active Configuration Population:
mcp discovernow updates your config- Previously was read-only, now actively populates configuration
- Complete workflow:
selfdestruct→discover→status - No more empty config files after discovery
- Windsurf IDE: Full support for Codeium's Windsurf editor
- Cross-platform path detection and configuration
- Automatic discovery and management
- Automatically finds all MCP configurations on your system
- Supports Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, and more
- Cross-platform detection (macOS, Windows, Linux)
# One command to rule them all!
mcp add-all my-server "npx @modelcontextprotocol/server-filesystem /tmp"- Discovers ALL MCP configurations automatically
- Installs server to every found configuration
- Detailed success/failure reporting with colors
- Rich table formatting for server listings
- Colorized status indicators (✅❌
⚠️ ) - Comprehensive error messages with actionable guidance
- Verbose logging options for debugging
- Enterprise-grade error handling with custom exceptions
- Type safety with comprehensive type hints
- Extensive test coverage (85%+)
- Modern Python packaging with pyproject.toml
- Configuration not found: Run
mcp discoverto see all available MCP configurations - Permission errors: Ensure you have write access to editor configuration directories
- JSON validation errors: Use
mcp statusto check configuration file integrity - Server conflicts: Use
mcp listto see existing servers before adding new ones
# Enable verbose output for debugging
mcp add-all myserver "command" --verbose
mcp list --verbose# Comprehensive help for any command
mcp --help
mcp add-all --help