The Docker MCP server (ckreiling/mcp-server-docker) gives an AI assistant direct control of a Docker daemon over the Model Context Protocol: containers, images, networks and volumes, as tools rather than shell commands. Built by ckreiling, it is community-built and best for Cloud.
by ckreiling
About
The Docker MCP server (ckreiling/mcp-server-docker) gives an AI assistant direct control of a Docker daemon over the Model Context Protocol: containers, images, networks and volumes, as tools rather than shell commands. It is the community server most people mean by "Docker MCP" — distinct from Docker’s own Docker MCP Gateway, which does not manage your containers at all but runs *other* MCP servers inside containers. If you want to ask Claude why the postgres container keeps restarting, you want this one; if you want a single secure endpoint in front of twenty catalog servers, you want the gateway. The tool surface is explicit and small enough to reason about: list_containers, create_container, run_container, recreate_container, start_container, fetch_container_logs, stop_container and remove_container for containers; list_images, pull_image, push_image, build_image and remove_image for images; list_networks / create_network / remove_network and list_volumes / create_volume / remove_volume for the rest. Two resource templates, docker://containers/{id}/logs and docker://containers/{id}/stats, let a client read logs and live stats by container ID or name without a tool call. It also ships a docker_compose prompt that puts the model into a plan-then-apply loop — you describe the containers you want under a project name, the model proposes a concise plan, and nothing runs until you approve it; reopening the prompt with the same project name re-reads the state of everything created under it, which is how you clean up after a lost chat. It runs on the Python Docker SDK’s from_env, so DOCKER_HOST applies: set ssh://user@host and the same server administers a remote engine. Two limits are deliberate and stated by the project — privileged options like --privileged and --cap-add/--cap-drop are not supported, and container configuration passes through the model, so no secrets belong in it.
Trust verdict
How grades are computed →Grade A (94/100, reliable) from 1 measured signal, based on repository evidence. Only one signal stands behind it, so treat the grade as provisional.
What was measured
- Repository maintenance100/100 · weight 20
The repository has been pushed to or released within the last six months. — last push 2026-07-23.
- Source verification100/100 · weight 25
The repository URL was confirmed to resolve against the live GitHub API and is not archived.
- Provenance65/100 · weight 10
Community-built. That is not a mark against it — most of the ecosystem is community-built — but there is no vendor accountable for keeping it working.
- Listing ↔ repository match100/100 · weight 5
The listing name lines up with the linked repository ckreiling/mcp-server-docker.
What could not be measured
These contributed nothing to the score — not a penalty, not a zero. They are why the confidence reads the way it does.
- Live MCP handshakeunknown
No remote endpoint to handshake — this server installs and runs locally over stdio, so there is nothing to probe from the outside.
- Measured uptimeunknown
No probe history recorded for this server yet.
- Tool-schema stabilityunknown
Drift is a difference between two successive checks, and this server has none recorded.
Installation
uvx mcp-server-dockerSearching "Docker MCP" returns two completely different products and the names do not help you tell them apart. This page is ckreiling/mcp-server-docker, the community server that hands an assistant your Docker daemon — containers, images, networks, volumes. Docker’s own Docker MCP Gateway is not a rival implementation of that; it manages no containers of yours at all, it is a CLI plugin that runs *other* MCP servers inside containers behind one endpoint. If the sentence you want to type is "why does the postgres container keep restarting", you are in the right place. If it is "give Cursor and Claude Desktop the same twenty tools without twenty stdio processes", you want the gateway instead. The other thing to settle before installing: this server can create, recreate and remove containers, and Docker is not a sandbox, so it reaches the host. Decide up front whether it points at a throwaway engine or a real one.
Setting up the Docker MCP server
1.Install with uv (recommended)
The server is published to PyPI as mcp-server-docker and needs no clone or build — uvx fetches and runs it. Install uv first if you do not have it. The same block works in Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json) and VS Code, and no token or API key is involved: authorisation is whatever your local Docker socket already grants.
claude_desktop_config.json{ "mcpServers": { "mcp-server-docker": { "command": "uvx", "args": ["mcp-server-docker"] } } }2.Or run the server itself in a container
There is a Dockerfile in the repository for convenience — clone it and build the image, then run it with the Docker socket mounted, which is what lets the containerised server reach the daemon on the host. Note the trade this makes: mounting /var/run/docker.sock into a container grants that container effective control of the host’s Docker, so this is a packaging convenience, not a security boundary.
shelldocker build -t mcp-server-docker . # then, in your MCP config: "args": ["run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "mcp-server-docker:latest"]3.Point it at a remote engine over SSH
The server builds its client with the Python Docker SDK’s from_env, so every variable that SDK reads applies — in practice DOCKER_HOST is the one that matters. Set it to an ssh:// URL in the env block and the same server administers a remote host, which is the server-administrator use case the project names first. SSH key auth has to already work for that user from the machine running the server.
env entry"env": { "DOCKER_HOST": "ssh://myusername@myhost.example.com" }
What the server can do
Twenty tools across four object types, plus two resource templates. Roughly half mutate — create_container, run_container, recreate_container, remove_container, build_image, push_image, remove_image, remove_network and remove_volume all change state on the daemon.
list_containersEvery container on the daemon. The usual entry point, and read-only.
create_container / run_containerCreate, or create and start. Mutating — this is where the assistant brings something up.
recreate_containerReplace a container with a new one from an updated spec. The tool behind "bump the image and restart it".
start_container / stop_container / remove_containerLifecycle. remove_container destroys; nothing here asks twice.
fetch_container_logsContainer logs without a terminal. The tool that changes day-to-day debugging.
list_images / pull_image / push_imageThe image registry side. push_image writes to a remote registry with whatever credentials the daemon holds.
build_image / remove_imageBuild from a Dockerfile, and prune. Both mutate.
list_networks / create_network / remove_networkNetworks, which is where most multi-container connectivity bugs actually live.
list_volumes / create_volume / remove_volumePersistent data. remove_volume deletes data that no image rebuild brings back.
docker://containers/{id}/logsResource template, text/plain. Read logs by container ID or name with no tool call — the server exposes templates rather than enumerating live containers.
docker://containers/{id}/statsResource template, application/json. Live CPU and memory stats for one container.
What people use it for
Stand up a stack with the docker_compose prompt
“Use the docker_compose prompt with project name "wordpress": deploy a WordPress container and a supporting MySQL container, exposing WordPress on port 9000.”
The docker_compose prompt puts the model in a plan-then-apply loop — it writes a concise natural-language plan and waits, so you approve or send it back for another pass before anything runs. That approval step is the difference between this and letting a model call run_container freehand.
Find out why a container keeps dying
“The api container is restarting. List the containers, pull the last 100 lines of its logs, check its stats, and tell me whether it is crashing or being OOM-killed.”
list_containers, fetch_container_logs and the stats resource answer this without a single context switch to a terminal, and all three are read-only — safe against an engine you care about.
Clean up after a chat you lost
“Reopen the docker_compose prompt for project name "wordpress" and tear down everything it created.”
Starting the prompt with an existing project name re-reads the status of every container, volume and network created under that name. The project explicitly calls this out as the recovery path when the conversation that created a stack is gone.
Which one should you use?
Three servers get called "Docker MCP" in listings. They are not interchangeable, and the choice follows from what you want to control.
Docker MCP Gateway
When the problem is distributing MCP servers, not managing containers. It runs catalog servers in isolated containers, keeps secrets in Docker Desktop rather than JSON config, and gives VS Code, Cursor and Claude Desktop one identical endpoint. Docker Desktop 4.59+ with the MCP Toolkit enabled.
QuantGeekDev/docker-mcp
The other community Docker server. Smaller and, as of this check, last pushed in December 2024 — it installs and runs, but nothing warns you it is frozen. Prefer ckreiling unless you specifically depend on its behaviour.
Kubernetes MCP
When containers are scheduled by a cluster rather than started by hand. Asking a Docker server about a pod gets you the node’s view of a container, not the workload’s.
Every command, environment variable, and endpoint above was read from the project’s own documentation on 2026-08-22: ckreiling/mcp-server-docker README, docker/mcp-gateway README, Docker SDK for Python — client.from_env.
Categories
Frequently Asked Questions
Is this the same as Docker’s official Docker MCP Gateway?
Can I safely put secrets in containers the assistant creates?
Why can it not run a privileged container for me?
How do I stop it from touching production?
It cannot reach Docker from inside the container. What is missing?
What is Docker MCP Server?
Who built Docker MCP Server?
Is Docker MCP Server free?
How do I install Docker MCP Server?
What does Docker MCP Server integrate with?
Related Guides
Best MCP Servers for DevOps: Kubernetes, Docker, Cloud & CI/CD
7 min read • Guides
Best MCP Servers for Claude Code in 2026: Complete Setup Guide
10 min read • Guides
Best MCP Servers for Automation in 2026: Build AI-Powered Workflows
11 min read • Guides
Best MCP Servers for Python Developers in 2026
8 min read • Guides
Best MCP Servers for Kubernetes & Cloud-Native Operations in 2026
8 min read • Guides
Best MCP Servers for Docker & Container Development in 2026
7 min read • Guides
GitLab MCP Server: Complete Setup Guide 2026
8 min read • Tutorials
Best MCP Servers for Cline: Complete Setup Guide 2026
9 min read • Guides
Best MCP Servers for Full-Stack Developers in 2026
10 min read • Guides
MCP Server Troubleshooting Guide: Fix Common Issues & Errors 2026
10 min read • Guides
Best MCP Servers for Windsurf IDE in 2026
8 min read • Guides
Best MCP Servers for Go Developers in 2026
7 min read • Guides
Best MCP Servers for JavaScript Developers in 2026
9 min read • Guides
Best MCP Servers for Backend Development in 2026
10 min read • Guides
Best MCP Servers for Rust Developers in 2026
9 min read • Guides
Best MCP Servers for System Administrators in 2026
9 min read • Guides
Best MCP Servers for Cloud Engineers in 2026
9 min read • Guides
Best MCP Servers for Docker and Kubernetes in 2026
8 min read • Guides
Best MCP Servers for Backend Developers in 2026
9 min read • Guides
Best MCP Servers for Ruby Developers in 2026
7 min read • Guides
Best MCP Servers for Java Developers in 2026
8 min read • Guides
Best MCP Servers for Security Engineers in 2026
8 min read • Guides
Best MCP Servers for Embedded Systems Developers in 2026
7 min read • Guides
Best MCP Servers for API Testing and QA Engineers in 2026
7 min read • Guides
Best MCP Servers for Rust Developers in 2026
8 min read • Guides
Best MCP Servers for Go Developers in 2026
8 min read • Guides
Best MCP Servers for GitHub Copilot: Supercharge VS Code Agent Mode
8 min read • Guides
Best MCP Servers for Go Developers in 2026
7 min read • Guides
Best MCP Servers for ML Engineers in 2026
8 min read • Guides
Best MCP Servers for PHP Developers in 2026
7 min read • Guides
Best MCP Servers for DevOps Engineers in 2026
8 min read • Guides
Best MCP Servers for Kubernetes Developers in 2026
7 min read • Guides
Best MCP Servers for Python Developers in 2026
8 min read • Guides
Best MCP Servers for Windsurf in 2026
6 min read • Tools
Best MCP Servers for Go Developers in 2026
7 min read • Guides
Best MCP Servers for Java Developers in 2026
7 min read • Guides
Best MCP Servers for Kotlin Developers in 2026
7 min read • Guides
Best MCP Servers for Elixir Developers in 2026
7 min read • Guides
Best MCP Servers for Scala Developers in 2026
7 min read • Guides
Best MCP Servers for FastAPI Developers in 2026
7 min read • Guides
Best MCP Servers for Spring Boot Developers in 2026
7 min read • Guides
Best MCP Servers for Ruby on Rails Developers in 2026
7 min read • Guides
Best MCP Servers for Nuxt Developers in 2026
7 min read • Guides
Best MCP Servers for Laravel Developers in 2026
7 min read • Guides
Best MCP Servers for NestJS Developers in 2026
7 min read • Guides
Best MCP Servers for Flask Developers in 2026
7 min read • Guides
Best MCP Servers for AWS Developers in 2026
8 min read • Guides
Deploying MCP Servers to Google Cloud Run: A Complete Guide
10 min read • Deployment
Deploying MCP Servers to Kubernetes — Production-Grade Container Orchestration
12 min read • Deployment
MCP Integration Guide: Continue.dev — Add MCP Tools to Your AI Coding Assistant
10 min read • Integrations
Repo Health
Local/stdio install — runs on your machine, so there is no remote endpoint to verify live. Trust signal below is from the source repo.
- Last commit
- 1mo ago
- Install
- binary
Quick Info
- Install Type
- pip
- Author
- ckreiling
- Categories
- 2
- Integrations
- 5
Related Servers
Git
Tools to read, search, and manipulate Git repositories. Full Git operations support.
GitHub MCP Server
authenticated access to the whole GitHub platform — repositories, files, branches, issues, pull requests, Actions runs, security alerts, discussions and notifications — from Claude, Cursor, VS Code, Copilot CLI and any other MCP host. There is no npm package for this server, and that trips up most people who try to install it: `@github/mcp-server` is not published to the npm registry, so any `npx` line you find for it will fail. GitHub ships it three other ways. The easiest is the hosted remote server at https://api.githubcopilot.com/mcp/, which needs no install at all — point an HTTP-transport MCP client at that URL and log in with OAuth (VS Code 1.101+, Claude Desktop, Claude Code, Cursor and Windsurf all support this). The second is the official Docker image ghcr.io/github/github-mcp-server, which is what the copy-paste command on this page runs; on github.com it now performs a browser-based OAuth login on first use and keeps the token in memory only, which is why the published Docker configs map a fixed loopback callback port (-p 127.0.0.1:8085:8085 with GITHUB_OAUTH_CALLBACK_PORT=8085) so the container can receive the callback. Prefer a token? Set GITHUB_PERSONAL_ACCESS_TOKEN instead — it takes precedence over OAuth, and the minimum useful scopes are repo, read:org and read:packages. The third is the native Go binary from the repository's releases, which needs no fixed port for the OAuth flow. GitHub Enterprise Server has no hosted option: use the local server with --gh-host or GITHUB_HOST set to your instance (include the https:// scheme — it defaults to http://, which GHES rejects). Toolsets can be narrowed with GITHUB_TOOLSETS, and an insiders channel is available at /mcp/insiders or via the X-MCP-Insiders header.
GitLab MCP Server
a first-party MCP endpoint built into the GitLab instance itself — there is no package to install, because the server ships inside GitLab and answers at https://<your-gitlab>/api/v4/mcp (gitlab.com exposes the same path, so https://gitlab.com/api/v4/mcp works for SaaS projects). It landed as an experiment in GitLab 18.3 and moved to beta in 18.6. Authentication is the part that makes it different from every community GitLab server: it uses OAuth 2.0 Dynamic Client Registration, so the first time a client connects it registers itself as an OAuth application on your instance and is issued an access token — no personal access token pasted into a config file. Administrators who do not want one OAuth application per tool can pre-create a shared application instead. Three prerequisites are what actually block most first connections: GitLab Duo must be set to Always on or On by default, beta and experimental features must be enabled, and MCP access must be switched on at the group or instance level. The tool surface covers issues and merge requests (create_issue, get_issue, create_merge_request, get_merge_request, list_merge_requests, get_merge_request_commits, get_merge_request_diffs, get_merge_request_pipelines, create_merge_request_note, get_merge_request_notes), CI/CD (manage_pipeline for list/create/delete/retry/cancel, get_pipeline_jobs, get_job_log), work items (create_workitem_note, get_workitem_notes, link_work_items, get_saved_view_work_items), search (search across the instance, search_labels, semantic_code_search), list_wiki_pages, and attach_scan_profile. HTTP is the recommended transport — claude mcp add --transport http GitLab https://gitlab.com/api/v4/mcp — and clients that only speak stdio can wrap it with npx mcp-remote <url> on Node 20+. Send the X-Gitlab-Mcp-Server-Tool-Name-Prefix header if generic names like search collide with another connected server. If your instance predates 18.3 or Duo is not available to you, the community alternative most teams land on is zereight/gitlab-mcp (1,889 stars as of 2026-08-16, npm @zereight/mcp-gitlab), which authenticates with a plain personal access token and ships 217 tools — including merge_merge_request, approve_merge_request, execute_graphql and full CI/CD variable management, none of which the built-in server exposes — behind GITLAB_PERMISSION_MODE=readonly/modify and GITLAB_TOOLSETS/GITLAB_TOOLS filtering. One further change worth noting: MCP server access moved from GitLab Premium to GitLab Free in 19.2 and became a setting of its own.
AWS MCP Servers
AWS Labs maintains a monorepo of specialized, open-source MCP servers that bring AWS best practices directly into AI-assisted development workflows, spanning infrastructure, data, AI/ML, cost management, and healthcare/life-sciences domains. Rather than one monolithic server, the project ships dozens of focused servers you install individually depending on the task: the AWS Documentation MCP Server for real-time official docs and API references, dedicated servers for Terraform/CDK/CloudFormation infrastructure-as-code, container and serverless platforms (ECS, EKS, Lambda), SQL/NoSQL databases (DynamoDB, RDS, Aurora), search and analytics (OpenSearch), messaging (SQS/SNS), and cost/billing analysis. Most servers install via uvx with a package name like awslabs.aws-documentation-mcp-server, run locally over stdio, and use standard AWS credential chains (IAM roles, profiles, or access keys) rather than exposing raw account credentials to the model. AWS also now offers a managed, remote "AWS MCP Server" (in preview) that combines full API coverage with pre-built agent SOPs, syntactically validated API calls, and complete CloudTrail audit logging for teams that want centralized governance instead of running servers locally. The Getting Started with Kiro/Cursor/VS Code/Claude Code sections in the repo provide one-click install configs for each server, making it straightforward to wire up only the AWS services a given project actually touches.
Cloudflare MCP Server
Cloudflare ships two different things under this name. The mcp-server-cloudflare repo provides 16 remote, domain-specific MCP servers rather than one monolith — Documentation, Workers Bindings (storage/AI/compute primitives), Workers Builds, Observability (logs/analytics), Container sandboxes, Browser Rendering (fetch pages, convert to markdown, screenshots), Logpush health, AI Gateway (prompt/response search), AI Search, Audit Logs, DNS Analytics, Digital Experience Monitoring, Cloudflare One CASB, Radar, GraphQL analytics and the Agents SDK docs server, each on its own `*.mcp.cloudflare.com/mcp` hostname. Separately, the Cloudflare API MCP server at mcp.cloudflare.com/mcp (repo: cloudflare/mcp) exposes the whole 2,500+ endpoint Cloudflare API through just two tools, `search` and `execute`, using the Code Mode pattern — model-written JavaScript runs in an isolated Dynamic Worker, costing ~1,000 tokens of context against the ~1.17M an equivalent native-tool server would need. Pick a domain server when you want a readable, curated tool list for one product area; pick the API server for breadth or for endpoints nobody wrote a tool for. All endpoints are Streamable HTTP on `/mcp` and support the MCP 2026-07-28 spec; the historical `/sse` URLs remain as aliases for the same Streamable HTTP handler but no longer serve the deprecated HTTP+SSE transport, so clients pinned to SSE must switch. Auth is OAuth on connect, or a scoped Cloudflare API token as a bearer header for CI. Clients without native remote-MCP support bridge via `npx mcp-remote https://<subdomain>.mcp.cloudflare.com/mcp`.
Sponsored
Better Stack
Free PlanGet alerted when your APIs, browser tests, payment pipelines, or MCP server dependencies go down. Used by 100K+ developers.
Start monitoring free →