A bash script to manage multiple MCP (Model Context Protocol) servers running in Docker containers.
This repository provides a CLI tool to run and manage MCP servers in sandboxed Docker containers.
- ✅ List all registered MCP servers with their status
- ✅ Start/stop servers by name or index number
- ✅ View real-time logs
- ✅ Check server status
- ✅ Restart servers
- ✅ Color-coded output for better visibility
- ✅ Tab completion support
chmod +x /mnt/c/Users/joakim.valand/projects/mcp/scripts/mcp-manager.shFor ZSH (most common in WSL/Ubuntu):
cat /mnt/c/Users/joakim.valand/projects/mcp/scripts/shell-snippet.sh >> ~/.zshrcFor BASH:
cat /mnt/c/Users/joakim.valand/projects/mcp/scripts/shell-snippet.sh >> ~/.bashrcNot sure which shell? Check with: echo $SHELL
If your MCP project is in a different location, edit the MCP_SCRIPT_PATH variable in your shell config file:
export MCP_SCRIPT_PATH="/path/to/your/mcp/scripts/mcp-manager.sh"For ZSH:
source ~/.zshrcFor BASH:
source ~/.bashrcEdit scripts/mcp-servers.conf to register your MCP servers.
Format: name|directory|port
# Example:
mermaid|mermaid|3033
myserver|myserver|3034
- name: Unique identifier for the server
- directory: Relative path from the
mcp/base directory - port: Localhost port where the server is accessible
mcp --helpmcp --list
# or
mcp -lExample output:
[1] mermaid
Directory: mermaid
Port: 3033
Status: running
[2] another-server
Directory: another-server
Port: 3034
Status: stopped
By name:
mcp run mermaidBy index:
mcp run 1By name:
mcp stop mermaidBy index:
mcp stop 1mcp restart mermaid
mcp restart 1mcp status mermaid
mcp status 1mcp logs mermaid
mcp logs 1Press Ctrl+C to exit logs view.
| Command | Description | Example |
|---|---|---|
--help, -h |
Show help message | mcp --help |
--list, -l |
List all servers | mcp -l |
run <name|index> |
Start a server | mcp run mermaid |
stop <name|index> |
Stop a server | mcp stop 1 |
restart <name|index> |
Restart a server | mcp restart mermaid |
status <name|index> |
Check server status | mcp status 1 |
logs <name|index> |
View server logs | mcp logs mermaid |
- Create a new directory with a
docker-compose.ymlfile in themcp/folder - Add an entry to
scripts/mcp-servers.conf:myserver|myserver|3035 - Run
mcp -lto verify it's registered
Make sure the path in your shell config is correct:
echo $MCP_SCRIPT_PATH
ls -la $MCP_SCRIPT_PATHCheck Docker is running:
sudo docker psView detailed logs:
cd /mnt/c/Users/joakim.valand/projects/mcp/mermaid
sudo docker compose logsMake the script executable:
chmod +x /mnt/c/Users/joakim.valand/projects/mcp/scripts/mcp-manager.shIn WSL, Windows paths are mounted under /mnt/. For example:
- Windows:
C:\Users\joakim.valand\projects\mcp - WSL:
/mnt/c/Users/joakim.valand/projects/mcp
The script automatically handles path conversions.
Tab completion is automatically enabled after installation. Try:
mcp <TAB>This will show available commands: --help -h --list -l run stop restart status logs