list_containersLABSCO 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
USE CASES
Standing up a stack from a description
Say what you want running, read the plan it writes back, and apply it once the plan is right.
Finding out why a container keeps restarting
List what is running, pull the logs for the unhealthy one, and recreate it once the fix is clear.
Trying an open-source app for ten minutes
Pull the image, run it with the ports you want, then remove the container and its volume when you are done.
Reclaiming disk on a machine that has been running for months
List the images and volumes, work out which ones nothing uses, and remove them one by one.
Managing a server you only reach over SSH
Point DOCKER_HOST at the remote engine and the same tools operate it, without a shell session.
19 tools
Listed in project docs. Your client may show a different list.
create_containerrun_containerrecreate_containerstart_containerfetch_container_logsstop_containerremove_containerlist_imagespull_imagepush_imagebuild_imageremove_imagelist_networkscreate_networkremove_networklist_volumescreate_volumeremove_volumeBEFORE YOU INSTALL
What to know first
Tools you get
19 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.12 or newer
- A Docker daemon it can reach: the local one, or a remote one set with DOCKER_HOST (ssh:// works)
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx mcp-server-dockerMCP Clients
Claude Desktop
{
"mcpServers": {
"mcp-server-docker": {
"command": "uvx",
"args": [
"mcp-server-docker"
]
}
}
}