Skip to content
/ mcphub Public

Native macOS app for managing MCP server configurations across Claude Code, Claude Desktop, Roo Code, Windsurf, and Cursor

License

Notifications You must be signed in to change notification settings

BioInfo/mcphub

Repository files navigation

MCPHub

CI License: MIT macOS

A native macOS application for managing MCP (Model Context Protocol) server configurations across Claude Code, Claude Desktop, Roo Code, Cursor, and Windsurf.

MCPHub Screenshot

Features

  • 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

Supported Tools

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

Installation

Download Release

Download the latest .dmg from the Releases page.

Build from Source

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 build

The built app will be in src-tauri/target/release/bundle/.

Usage

Server List

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

Server Details

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

Per-System Controls

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]

Testing Servers

Click "Test Connection" to verify a server can start successfully. MCPHub will:

  1. Resolve the command path (dynamically discovers nvm, pyenv, cargo, pnpm, bun, deno)
  2. Verify all file paths exist
  3. Start the server briefly
  4. Report success or show error messages

Syncing

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.

Architecture

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

Project Structure

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

Development

# Start dev server with hot reload
npm run tauri dev

# Type check
npm run lint

# Build for production
npm run tauri build

Tauri Commands

The 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

Backups

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.

Security

  • 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

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

MIT License - see LICENSE for details.

Acknowledgments

  • Anthropic for Claude and the MCP protocol
  • Tauri for the excellent app framework
  • Cursor for AI-first code editing
  • Windsurf for AI IDE with Cascade
  • Roo Code for VS Code MCP support

About

Native macOS app for managing MCP server configurations across Claude Code, Claude Desktop, Roo Code, Windsurf, and Cursor

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors