An MCP server that exposes the full Docker CLI as tools, letting any MCP client (Claude Code, Claude Desktop, etc.) manage containers, images, volumes, networks, Compose services, and more on your system.
| Category | Tools |
|---|---|
| Containers (22) | ps, run, create, start, stop, restart, rm, logs, exec, inspect, top, stats, cp, kill, pause, unpause, rename, port, wait, diff, update, export |
| Images (14) | images, pull, push, build, rmi, tag, inspect, history, search, save, load, image_prune, import |
| Volumes (5) | ls, create, rm, inspect, prune |
| Networks (7) | ls, create, rm, inspect, connect, disconnect, prune |
| Compose (13) | up, down, ps, logs, build, pull, restart, stop, start, exec, config, rm, top |
| System (5) | info, version, system_df, system_prune, events |
| Registry (2) | login, logout |
| Contexts (5) | ls, create, inspect, use, rm |
| Buildx (6) | ls, create, rm, use, inspect, build |
| Raw (1) | Execute any arbitrary docker command |
- Python 3.10+
- uv
- Docker CLI installed and accessible
git clone https://github.com/bottobot/docker-mcp-server.git
cd docker-mcp-server
uv syncAdd to your project's .mcp.json or run:
claude mcp add --transport stdio docker -- \
uv run --directory /path/to/docker-mcp-server python server.pyAdd to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"docker": {
"command": "uv",
"args": ["run", "--directory", "/path/to/docker-mcp-server", "python", "server.py"]
}
}
}uv run python server.pyThe server runs over stdio transport by default.
MIT