mcp servers

Docker MCP Server

Anthropic never shipped a Docker MCP. The dominant community option is `ckreiling/mcp-server-docker` (743 stars, GPL-3.0). Mounts `/var/run/docker.sock`, covers containers / images / networks / volumes. For agent-managed Compose stacks: `friendlygeorge/docker-mcp-server`.
by Community (ckreiling et al.) updated Sep 10, 2026 GPL-3.0
← back to shelf
install via your agent of choice
❯ uvx mcp-server-docker

## what it does

tl;dr: there is no Anthropic Docker MCP. @modelcontextprotocol/server-docker was never published — the old catalog page referenced a package that doesn’t exist. The community server most people install is ckreiling/mcp-server-docker (743 stars, Python, GPL-3.0). It uses the Docker Python SDK to talk to your local daemon via /var/run/docker.sock.

Install

uvx mcp-server-docker

(uvx is the runner from Astral’s uv. pipx run mcp-server-docker works too.)

Docker (server-in-a-container)

docker build -t mcp-server-docker https://github.com/ckreiling/mcp-server-docker.git
{
  "mcpServers": {
    "mcp-server-docker": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/var/run/docker.sock:/var/run/docker.sock",
        "mcp-server-docker:latest"
      ]
    }
  }
}

The Docker socket is mounted so the MCP server can drive the host daemon. That’s the same socket your docker CLI uses.

Claude Desktop config (uvx)

{
  "mcpServers": {
    "docker": {
      "command": "uvx",
      "args": ["mcp-server-docker"]
    }
  }
}

Tools (17)

Containers: list_containers, create_container, run_container, recreate_container, start_container, fetch_container_logs, stop_container, remove_container

Images: list_images, pull_image, push_image, build_image, remove_image

Networks: list_networks, create_network, remove_network

Volumes: list_volumes, create_volume, remove_volume

Resources: docker://containers/{container_id}/logs, docker://containers/{container_id}/stats.

Connect to a remote Docker daemon

The server reads DOCKER_HOST like the Docker CLI does. For SSH access to a remote host:

{
  "mcpServers": {
    "docker": {
      "command": "uvx",
      "args": ["mcp-server-docker"],
      "env": { "DOCKER_HOST": "ssh://[email protected]" }
    }
  }
}

Gotchas

  • GPL-3.0. The license is a copyleft. Fine for internal tools, but it leaks into anything you distribute that links against it. If you ship a product that embeds the MCP, talk to counsel.
  • The server intentionally does not expose --privileged or --cap-add/--cap-drop. If you need either, fork it.
  • Mounting /var/run/docker.sock is full-host access. Any prompt that gets the model to “try a privileged container” or “run with the host network” is root on your machine. Treat this MCP like sudo.

Alternatives

## compatibility

claude-desktop ✓
claude-code ✓
cursor ✓

## exposed tools

→ unspecified

## embed this badge

cache ✓ in cache.directory
![cached](https://cache.directory/badge/docker-mcp.svg)