Labsco
MCP SERVER

Docker MCP server

by ckreiling

Bring containers up, look inside the ones that are running, and clean up images, volumes and networks by describing what you want.

Containers, Kubernetes & Cluster Operations
Summary
The Docker CLI, minus remembering the flags.

The day-to-day work is all here — bring a container up, read its logs when it misbehaves, drop the volume afterwards — and the compose prompt shows you its plan before it changes anything. Docker is not a sandbox, so what the agent can reach is whatever the daemon can reach; review what it proposes to create.

What it is

An MCP server over the Docker daemon, local or remote. Its tools cover containers, images, volumes and networks, and a guided compose prompt puts a natural-language plan in front of you before anything is created.

What you get
  • Containers listed, created, started, stopped, removed and recreated — list_containers, create_container, start_container, stop_container, remove_container, recreate_container
  • A container run from an image in a single call with run_container
  • Logs pulled from the container that is misbehaving through fetch_container_logs, or read as a resource by container id or name
  • Live stats for a running container, also addressable as a resource rather than a tool call
  • Images through list_images, pull_image, build_image, push_image and remove_image
  • Volumes through list_volumes, create_volume and remove_volume, and networks through list_networks, create_network and remove_network
  • A docker_compose prompt that takes a project name and a description, writes a plan, and applies it only after you agree — and on a later chat, reports the state of everything created under that project name
  • Privileged flags left out on purpose: --privileged and --cap-add or --cap-drop are not supported
Requirements

Uv, and a Docker daemon it can reach. It uses the environment's usual Docker settings, so the local daemon works with nothing configured, and DOCKER_HOST set to an ssh:// URL points it at a remote engine. Running it as a container instead means mounting /var/run/docker.sock so it can still reach the daemon. Keep secrets out of the container definitions you describe: whatever you type goes to the model.

Setup effort

One command — uvx mcp-server-docker