loading…
Search for a command to run...
loading…
Enables remote Docker management over SSH via a local MCP server, providing tools to manage containers, images, Compose, and system resources.
Enables remote Docker management over SSH via a local MCP server, providing tools to manage containers, images, Compose, and system resources.
Personal note: Keep in mind that all AIs are essentially retarded geniuses. Refactor instructions as needed if your child acts up.
Remote Docker management over SSH — exposed as a local MCP server for GitHub Copilot sessions.
No server-side component required. The MCP runs locally and SSHes into the remote host to execute Docker commands.
| Tool | Description |
|---|---|
docker_ps |
List containers |
docker_logs |
Fetch logs (tail, since, grep) |
docker_exec |
Run command inside container |
docker_run |
Start new container |
docker_start / docker_stop / docker_restart |
Lifecycle control |
docker_rm |
Remove container(s) |
docker_inspect |
Detailed container/image info |
docker_stats |
Resource usage snapshot |
docker_top |
Processes inside container |
docker_images |
List images |
docker_pull / docker_rmi / docker_build |
Image management |
docker_compose_ps/up/down/logs/restart/pull |
Compose operations |
docker_system_df |
Disk usage |
docker_info / docker_version |
System info |
docker_network_ls / docker_volume_ls |
Network & volume listing |
git clone [email protected]:Isak-Landin/mcp-docker-engine.git ~/mcp-docker-engine
cd ~/mcp-docker-engine
sudo apt install python3.12-venv
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
cp config.example.json config.json
# Edit config.json with your server details
config.json fields:
{
"host": "your-server.example.com",
"user": "ubuntu",
"key_path": "~/.ssh/id_rsa",
"port": 22
}
Using the values from your config.json:
ssh -i <key_path> <user>@<host> docker ps
mcp-config.jsonAdd the docker-mcp entry to the mcpServers object in your Copilot home's mcp-config.json:
"docker-mcp": {
"command": "/home/<your-username>/mcp-docker-engine/.venv/bin/python3",
"args": ["/home/<your-username>/mcp-docker-engine/server.py"]
}
.vscode/mcp.jsonAdd the docker-mcp entry to the servers object:
"docker-mcp": {
"type": "stdio",
"command": "/home/<your-username>/mcp-docker-engine/.venv/bin/python3",
"args": ["/home/<your-username>/mcp-docker-engine/server.py"]
}
copilot-instructions.mdAdd the contents of copilot-instructions.md to your Copilot home's copilot-instructions.md or instructions.md.
StrictHostKeyChecking=accept-new - safe for known hosts, will warn on key changes.docker_build and docker_pull use a 5-10 min timeout; adjust timeout in server.py if needed.project_dir is the remote path containing docker-compose.yml.docker_logs and docker_exec redirect stderr to stdout so output is always captured.Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"docker-mcp": {
"command": "npx",
"args": []
}
}
}