No description
- Python 100%
| .idea | ||
| .gitignore | ||
| config.example.json | ||
| copilot-instructions.md | ||
| LICENSE | ||
| README.md | ||
| requirements.txt | ||
| server.py | ||
Docker MCP
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.
Tools
| 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 |
Setup
1. Clone the repository
git clone git@github.com:Isak-Landin/mcp-docker-engine.git ~/mcp-docker-engine
cd ~/mcp-docker-engine
2. Install dependencies
sudo apt install python3.12-venv
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
3. Configure SSH target
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
}
4. Verify SSH access
Using the values from your config.json:
ssh -i <key_path> <user>@<host> docker ps
5. Register with GitHub Copilot
Replace $HOME with your actual home directory path (run echo $HOME).
Copilot CLI — mcp-config.json
Add the docker-mcp entry to the mcpServers object in your Copilot home's mcp-config.json:
"docker-mcp": {
"command": "$HOME/mcp-docker-engine/.venv/bin/python3",
"args": ["$HOME/mcp-docker-engine/server.py"]
}
VS Code — .vscode/mcp.json
Add the docker-mcp entry to the servers object:
"docker-mcp": {
"type": "stdio",
"command": "$HOME/mcp-docker-engine/.venv/bin/python3",
"args": ["$HOME/mcp-docker-engine/server.py"]
}
Copilot instructions — copilot-instructions.md
Add the contents of copilot-instructions.md to your Copilot home's copilot-instructions.md.
Notes
- The SSH connection uses
StrictHostKeyChecking=accept-new- safe for known hosts, will warn on key changes. docker_buildanddocker_pulluse a 5-10 min timeout; adjusttimeoutinserver.pyif needed.- For Compose tools,
project_diris the remote path containingdocker-compose.yml. docker_logsanddocker_execredirect stderr to stdout so output is always captured.