A desktop application for managing Model Context Protocol (MCP) servers in Claude Code. Features a modern GUI with modal-based editing, dual-mode JSON/Form editors, and support for both project-specific and global server configurations.
git clone https://github.com/teo-mateo/mcp-manager.git
cd mcp-manager
npm install && npm run build && npm install -g .Then run from any Claude Code project directory:
mcp-managerMCP Manager showing the table view with server list and console logging
- π View & Organize - Clean list view of all MCP servers with status indicators
- βοΈ Dual Editor Modes - Toggle between JSON and Form editors when adding/editing servers
- π Enable/Disable - Quick toggle to enable or disable servers
- ποΈ Delete - Remove servers you no longer need
- π§ͺ Test Servers - Test connectivity and view available capabilities
- π― Project Scope - Manage servers specific to the current Claude Code project
- π Global Scope - Manage servers available across all projects
- π Easy Switching - Toggle between project and global scopes instantly
- π¬ Modal-Based Editing - Add and edit servers without leaving the main view
- π¨ Modern Design - Clean, responsive interface with Tailwind CSS
- π Smart Validation - Real-time validation with helpful error messages
- π‘ Example Configs - Built-in examples to get you started quickly
- Node.js 18+ - Download here
- npm (comes with Node.js)
- Claude Code - The app manages servers for Claude Code projects
π‘ Recommended: Install globally to use
mcp-managerfrom any directory!
π¦ Global Installation (Recommended)
Install MCP Manager globally to use it from any directory:
# Clone the repository
git clone https://github.com/teo-mateo/mcp-manager.git
cd mcp-manager
# Install dependencies and build
npm install
npm run build
# Install globally
npm install -g .Now you can run it from anywhere:
cd /path/to/your/claude/project
mcp-managerπ§ Development Mode
For development with hot-reload:
# Clone and install
git clone https://github.com/teo-mateo/mcp-manager.git
cd mcp-manager
npm install
# Terminal 1: Start build watchers
npm run dev
# Terminal 2: Run the app
NODE_ENV=development npx electron .π Shell Alias (Alternative)
Add this to your ~/.bashrc or ~/.zshrc:
alias mcp-manager='node /path/to/mcp-manager/bin/mcp-manager.js'Then reload: source ~/.bashrc (or ~/.zshrc)
Navigate to your Claude Code project and run:
mcp-managerThe app will:
- β Detect the current directory as your project path
- β
Load project-specific MCP servers from
~/.claude.json - β Display an intuitive GUI for managing servers
You can specify a different project path:
mcp-manager /path/to/another/projectAdd a Server:
- Click "Add Server" button
- Choose JSON or Form mode
- Enter server configuration
- Click "Add Server" to save
Edit a Server:
- Click "Edit" on any server card
- Modify settings in JSON or Form mode
- Click "Save Changes"
Toggle Server:
- Click the toggle button to enable/disable
Delete Server:
- Click "Delete" on the server card, or use the delete button in the edit modal
Test Server:
- Click "Test" to check connectivity and view capabilities
Use the scope toggle at the top to switch between:
- Project - Servers specific to current project
- Global - Servers available to all Claude Code projects
# Install dependencies
npm install
# Run in development mode (with hot reload)
npm run dev
# In another terminal, start Electron with the dev server
NODE_ENV=development npx electron .# Build for production
npm run build
# Run production build
npm start
# Run linter
npm run lint
# Format code
npm run formatmcp-manager/
βββ src/
β βββ main/ # Electron main process
β β βββ main.ts # Entry point, IPC handlers
β β βββ preload.ts # Secure IPC bridge
β β βββ services/ # Business logic
β βββ renderer/ # React frontend
β β βββ App.tsx # Main app component
β β βββ components/ # Reusable UI components
β β βββ screens/ # Screen components
β β βββ hooks/ # React hooks
β β βββ services/ # Frontend API layer
β βββ shared/ # Shared types and utilities
β βββ types.ts # Core types
β βββ mcpTypes.ts # MCP protocol types
β βββ errors.ts # Error definitions
βββ dist/ # Build output
βββ bin/ # Global executable script
βββ package.json
MCP Manager uses a client-server architecture within Electron:
- Main Process - Handles file I/O, configuration management, and MCP server testing
- Renderer Process - React-based UI running in a sandboxed environment
- IPC Bridge - Secure communication via
preload.tswith context isolation
The app integrates seamlessly with Claude Code's configuration structure:
File Location: ~/.claude.json
Structure:
{
"projects": {
"/absolute/path/to/project": {
"mcpServers": { /* active servers */ },
"mcpServers_disabled": { /* disabled servers */ }
}
},
"mcpServers": { /* global active servers */ },
"mcpServers_disabled": { /* global disabled servers */ }
}Key Features:
- β Project Detection - Uses current working directory as project path
- β Dual Scope - Manages both project-specific and global servers
- β Atomic Writes - Safe file operations with backup creation
- β Conflict Detection - Timestamp-based change detection
- β Preservation - Keeps all other settings intact when updating
Problem: Your current directory isn't registered in Claude Code.
Solution:
- Open the project in Claude Code first
- This initializes the project in
~/.claude.json - Run
mcp-manageragain
Alternative: Switch to Global scope to manage global servers
Check your installation:
# Verify build succeeded
npm run build
# Check global installation
npm list -g mcp-manager
# Try reinstalling
npm install -g .Recommended Solutions:
-
Use Node Version Manager (Best):
# Install nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # Install Node via nvm nvm install 18 nvm use 18
-
Configure npm prefix:
npm config set prefix ~/.npm-global export PATH=~/.npm-global/bin:$PATH
-
Use sudo (Not Recommended):
sudo npm install -g .
If running in development mode and seeing connection errors:
- Make sure
npm run devis running in one terminal - Use
NODE_ENV=development npx electron .in another terminal - Check that port 5173 is not in use by another process
Common causes:
- Node.js version too old (need 18+)
- Missing dependencies: run
npm install - TypeScript errors: run
npm run lintto check
To remove the globally installed package:
npm uninstall -g mcp-managerContributions are welcome! Please feel free to submit a Pull Request.
ISC
