MCP Manager
PythonYAMLCLIuv
A centralized Model Context Protocol server management and routing system built before Docker MCP Toolkit existed as an official solution. Manages multiple MCP servers through a single interface with fine-grained per-client access control.
Features
- Centralized Management: Manage multiple MCP servers from a single YAML config
- Access Control: Rule-based allow/deny permissions per client (VSCode, Claude Desktop, etc.)
- Auto-Installation: Automatic discovery and installation from NPM, GitHub, or local sources
- Hot Reload: Configuration changes without service restart
- Health Monitoring: Automatic health checks and server restart
- Request Routing: Intelligent routing to appropriate backend servers
- Response Caching: Configurable TTL for performance
- CLI: Full command-line interface for management operations
Quick Start
uv sync
cp mcp-manager.example.yaml mcp-manager.yaml
# edit mcp-manager.yaml
mcp-manager start --config mcp-manager.yaml Connect your MCP clients (VSCode, Claude Desktop, etc.) to the manager instead of individual servers.
Configuration
manager:
name: "central-mcp-manager"
log_level: "info"
servers:
weather:
source: "npm:@weather/mcp-weather"
transport: "stdio"
auto_install: true
filesystem:
source: "github:anthropics/mcp-filesystem"
transport: "stdio"
config:
allowed_paths: ["/home/user/documents"]
clients:
vscode:
identify_by:
- client_info.name: "vscode-mcp"
allow:
- server: "filesystem"
tools: ["read_file", "write_file"]
deny:
- server: "weather"
claude_desktop:
identify_by:
- client_info.name: "claude-desktop"
allow:
- server: "weather"
tools: ["get_weather"]
- server: "filesystem"
tools: ["read_file"] Client Integration
VSCode
{
"mcp.servers": {
"manager": {
"command": "python",
"args": ["/path/to/MCP-manager/main.py", "/path/to/mcp-manager.yaml"],
"transport": "stdio"
}
}
}