mcp-manager
Allows adding and configuring a Brave Search MCP server for web search capabilities.
Allows adding and configuring a Docker MCP server for container management.
Allows adding and configuring a Git MCP server for Git operations.
Allows adding and configuring a GitHub MCP server for GitHub repository and issue management.
Allows adding and configuring a Google Drive MCP server for file access.
Allows adding and configuring a Google Maps MCP server for location and mapping services.
Allows adding and configuring a PostgreSQL MCP server for database operations.
Allows adding and configuring a Puppeteer MCP server for browser automation.
Allows adding and configuring a Slack MCP server for workspace integration.
Allows adding and configuring a SQLite MCP server for database operations.
Allows adding and configuring a Supabase MCP server for backend services.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
MCP Manager
Universal MCP Server Manager — add, remove, monitor, and configure all your MCP servers from one place.
Features
7 harnesses — OpenCode, Claude Desktop, Cursor, Windsurf, Cline, Zed, Continue.dev
23 tools — server management, health checks, token rotation, cross-harness sync
20+ server catalog — GitHub, Supabase, Playwright, Docker, PostgreSQL, and more
Encrypted tokens — Fernet AES-128-CBC with PBKDF2 key derivation
Cross-harness sync — migrate servers between different AI coding tools
Related MCP server: git-org-group-cred-vault
Quick Start
git clone https://github.com/kobramantra-debug/mcp-manager-mcp-manage.git
cd mcp-manager-mcp-manage
pip install -e .Installation
From source
git clone https://github.com/kobramantra-debug/mcp-manager-mcp-manage.git
cd mcp-manager-mcp-manage
pip install -e .Docker
docker build -t mcp-manager .Configuration
Environment Variables
Variable | Default | Description |
|
| Active harness to manage |
| (auto-detected) | Override config file path |
| (none) | Master password for Fernet encryption |
OpenCode
Add to ~/.config/opencode/opencode.json:
{
"mcp": {
"mcp-manager": {
"type": "local",
"command": ["python", "-m", "src"],
"cwd": "/path/to/mcp-manager",
"enabled": true
}
}
}Claude Desktop
Add to %APPDATA%/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-manager": {
"command": "python",
"args": ["-m", "src"],
"cwd": "/path/to/mcp-manager"
}
}
}Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"mcp-manager": {
"command": "python",
"args": ["-m", "src"],
"cwd": "/path/to/mcp-manager"
}
}
}Docker (STDIO)
{
"mcp": {
"mcp-manager": {
"type": "docker",
"command": ["docker", "run", "-i", "--rm", "mcp-manager"],
"enabled": true
}
}
}Examples
1. List all harnesses and see which are installed
list_harnesses_info(){
"harnesses": [
{"id": "opencode", "name": "OpenCode", "installed": true, "is_active": true},
{"id": "claude-desktop", "name": "Claude Desktop", "installed": true, "is_active": false},
{"id": "cursor", "name": "Cursor", "installed": false, "is_active": false},
{"id": "windsurf", "name": "Windsurf", "installed": false, "is_active": false},
{"id": "cline", "name": "Cline", "installed": false, "is_active": false},
{"id": "zed", "name": "Zed", "installed": false, "is_active": false},
{"id": "continue", "name": "Continue.dev", "installed": false, "is_active": false}
],
"active": "opencode",
"installed_count": 2
}2. Switch to Claude Desktop and list its servers
switch_harness("claude-desktop")
list_servers(){
"harness": "Claude Desktop",
"servers": [
{"name": "github", "enabled": true, "type": "docker"},
{"name": "playwright", "enabled": true, "type": "npx"}
],
"count": 2
}3. Add GitHub MCP server from the catalog
add_from_catalog("github"){
"success": true,
"action": "added",
"server": "github",
"harness": "OpenCode",
"catalog_entry": "github",
"config": {
"type": "docker",
"command": ["docker", "run", "-i", "--rm", "-e", "GITHUB_TOKEN={env:GITHUB_TOKEN}", "ghcr.io/github/github-mcp-server"],
"enabled": true
}
}4. Add a custom remote server
add_server(
name="my-api",
server_type="remote",
url="https://api.example.com/mcp",
env_vars="API_KEY=sk-123,BASE_URL=https://api.example.com"
){
"success": true,
"action": "added",
"server": "my-api",
"config": {
"type": "remote",
"url": "https://api.example.com/mcp",
"environment": {"API_KEY": "sk-123", "BASE_URL": "https://api.example.com"},
"enabled": true
}
}5. Run health check on all servers
health_check(){
"harness": "opencode",
"summary": {"total": 3, "healthy": 2, "unhealthy": 1, "unknown": 0, "timeout": 0},
"results": {
"github": {"status": "healthy", "message": "Server: github-mcp-server", "latency_ms": 1250.3},
"playwright": {"status": "healthy", "message": "Server: playwright", "latency_ms": 890.1},
"my-api": {"status": "unhealthy", "message": "No response (exit 1)", "latency_ms": 5000.0}
}
}6. Sync all servers from OpenCode to Cursor
sync_to_harness("cursor"){
"success": true,
"source": "OpenCode",
"target": "Cursor",
"servers_synced": 3,
"added": 3,
"updated": 0
}7. Rotate a token with expiration
rotate_token("github", "ghp_new_token_abc123", expires_at="2026-12-31"){
"success": true,
"action": "token_rotated",
"server": "github",
"preview": "ghp_***abc123",
"expires_at": "2026-12-31"
}8. Search the server catalog
search_catalog("database"){
"results": [
{"id": "postgres", "name": "PostgreSQL", "description": "PostgreSQL database server", "category": "database"},
{"id": "sqlite", "name": "SQLite", "description": "SQLite database server", "category": "database"}
],
"count": 2
}9. Export config for a different harness
export_for_harness("claude-desktop"){
"source_harness": "opencode",
"target_harness": "claude-desktop",
"config": {
"mcpServers": {
"github": {"command": "docker", "args": ["run", "-i", "--rm", "ghcr.io/github/github-mcp-server"]},
"playwright": {"command": "npx", "args": ["-y", "@anthropic/playwright-mcp"]}
}
},
"note": "Import this JSON into Claude Desktop"
}10. List all stored tokens (safe — previews only)
list_all_tokens(){
"tokens": {
"github": {"token_preview": "ghp_***abc123", "storage_backend": "encrypted_sqlite"},
"supabase": {"token_preview": "sb-***xyz789", "storage_backend": "encrypted_sqlite"}
},
"count": 2
}Tools Reference
Harness Management
Tool | Description |
| List all harnesses and installation status |
| Switch active harness |
| Get current harness info |
Server Management
Tool | Description |
| List configured servers |
| Add a new server |
| Remove a server |
| Get server details |
| Enable a disabled server |
| Disable a server |
Health & Monitoring
Tool | Description |
| Test a single server |
| Test all servers |
| Get health check history |
Token Management
Tool | Description |
| Update API token |
| Get decrypted token (use with caution) |
| List stored tokens (previews only) |
| Get rotation history |
| Show encryption status |
Export / Import / Sync
Tool | Description |
| Export config as JSON |
| Import config from JSON |
| Export in another harness format |
| Sync servers to another harness |
Catalog
Tool | Description |
| Search server catalog |
| Add server from catalog |
Supported Harnesses
Harness | Config Path | Format |
OpenCode |
|
|
Claude Desktop |
|
|
Cursor |
|
|
Windsurf |
|
|
Cline |
|
|
Zed |
|
|
Continue.dev |
|
|
Server Catalog
Server | Type | Description |
github | docker | GitHub MCP Server |
supabase | npx | Supabase MCP Server |
playwright | npx | Playwright browser automation |
chrome-devtools | npx | Chrome DevTools Protocol |
context7 | npx | Context7 documentation lookup |
filesystem | local | Filesystem access |
git | local | Git operations |
postgres | npx | PostgreSQL database |
sqlite | npx | SQLite database |
docker | local | Docker management |
brave-search | npx | Brave Search API |
fetch | npx | HTTP fetch tool |
memory | local | Knowledge graph memory |
slack | npx | Slack workspace integration |
gdrive | npx | Google Drive access |
google-maps | npx | Google Maps API |
puppeteer | npx | Puppeteer browser automation |
everything | npx | Universal search |
stitch | npx | Stitch UI design |
Token Security
Tokens are stored in an encrypted SQLite database using Fernet (AES-128-CBC).
Set MCP_MANAGER_MASTER_PASSWORD to enable encryption:
# Linux/macOS
export MCP_MANAGER_MASTER_PASSWORD="your-secure-password"
# Windows
set MCP_MANAGER_MASTER_PASSWORD=your-secure-passwordWithout a master password, tokens are stored in plaintext (not recommended for production).
License
MIT License — see LICENSE for details.
This server cannot be deployed
Maintenance
Related MCP Connectors
Secure and manage MCP servers through the Speakeasy AI Control Plane from your agent.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
- MeandrOAuthcom.meandr
MCP gateway and cloud hosting for MCP servers, agents and apps like RAG, managed from your agent.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for managing multiple SSH servers via AI assistants, offering tools for remote command execution, file operations, and system monitoring.1137 PyPI2MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for securely managing GitHub & GitLab credentials in an encrypted vault, allowing AI agents to retrieve tokens by org or group name automatically.MIT
- AlicenseNot gradedqualityCmaintenanceEnables centralized MCP server management with connection pooling, a live activity dashboard, and macOS menu bar integration for AI coding agents.MIT
- FlicenseNot gradedqualityAmaintenanceEnables LLMs to manage, aggregate, and proxy other MCP servers dynamically, including discovering, adding, enabling, disabling, and configuring servers while exposing their tools under unified prefixes.-