A native macOS application for managing MCP (Model Context Protocol) server configurations across Claude Code, Claude Desktop, Roo Code, Cursor, and Windsurf.
- Unified Management - View and manage all MCP servers from a single interface
- 5 Tool Support - Claude Code, Claude Desktop, Roo Code, Cursor, and Windsurf
- Per-System Toggle - Enable/disable servers individually for each AI tool
- Health Monitoring - Test server connections and see status at a glance
- Sync Configs - Keep configurations in sync across all five tools
- Auto-Backup - Automatic backups before any config changes
- Path Expansion - Automatically expands
~to full paths - Sensitive Value Masking - API keys and tokens are masked in the UI
- Always Allow Editing - Manage MCP permissions directly from the UI
| Tool | Config Location |
|---|---|
| Claude Code | ~/.claude/.mcp.json |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Roo Code | ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
Download the latest .dmg from the Releases page.
Prerequisites:
- macOS 12.0+ (Monterey or later)
- Rust 1.70+
- Node.js 18+
- Xcode Command Line Tools
# Clone the repository
git clone https://github.com/BioInfo/mcphub.git
cd mcphub
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Build production app
npm run tauri buildThe built app will be in src-tauri/target/release/bundle/.
The left panel shows all MCP servers discovered across your config files. Each server displays status indicators showing which tools have it enabled (5 dots for CC/CD/RC/CU/WS):
- Green dot = Server enabled and healthy
- Yellow dot = Server untested
- Red dot = Server has errors
- Gray dot = Server disabled for that tool
Click a server to view and edit its configuration:
- Command - The executable (e.g.,
npx,node,python) - Arguments - Command line arguments
- Environment Variables - Key-value pairs (sensitive values auto-masked)
- Always Allow - MCP permissions granted without prompting
Toggle switches let you enable/disable a server for each tool independently:
Claude Code [ON]
Claude Desktop [ON]
Roo Code [OFF]
Cursor [ON]
Windsurf [ON]
Click "Test Connection" to verify a server can start successfully. MCPHub will:
- Resolve the command path (dynamically discovers nvm, pyenv, cargo, pnpm, bun, deno)
- Verify all file paths exist
- Start the server briefly
- Report success or show error messages
Use "Sync All" to copy the configuration from one tool to all others. Useful when you've made changes in one place and want them everywhere.
MCPHub is built with:
- Tauri 2.x - Native app framework (Rust backend + web frontend)
- React 19 - Frontend UI
- TypeScript - Type safety
- Tailwind CSS - Styling
- Zustand - State management
- Lucide React - Icons
mcphub/
├── src/ # React frontend
│ ├── components/ # UI components
│ ├── stores/ # Zustand state
│ ├── lib/ # Tauri IPC wrappers
│ └── types/ # TypeScript types
├── src-tauri/ # Rust backend
│ └── src/
│ ├── config.rs # Config file operations
│ ├── commands.rs # Tauri IPC commands
│ └── error.rs # Error handling
└── .github/workflows/ # CI/CD pipelines
# Start dev server with hot reload
npm run tauri dev
# Type check
npm run lint
# Build for production
npm run tauri buildThe Rust backend exposes these commands to the frontend:
| Command | Description |
|---|---|
get_all_configs |
Read all five config files |
get_managed_servers |
Get unified server list |
save_server |
Add or update a server |
delete_server |
Remove server from all configs |
set_server_enabled |
Toggle server for specific tool |
test_server_connection |
Test if server can start |
sync_all_servers |
Copy config from source to all targets |
backup_configs |
Create timestamped backups |
import_config |
Bulk import servers from JSON |
export_config |
Export config as JSON |
MCPHub stores backups in ~/.mcphub/backups/ with timestamps:
cc_20241209_143022.json
cd_20241209_143022.json
rc_20241209_143022.json
cu_20241209_143022.json
ws_20241209_143022.json
App state (health status, test results) is stored in ~/.mcphub/state.json.
- No network requests - MCPHub works entirely offline
- No telemetry - No data collection or analytics
- Local only - Only reads/writes to known config paths
- Sensitive masking - API keys and tokens are masked in the display
- Open source - Full transparency
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE for details.
