Docker MCP Server
概要
作者による説明(英語の原文)
Manage Docker (containers, images, Compose, Swarm, registries) via the Docker SDK and CLI.
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi2項目中2項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況i初期↓ 514/週 · ★ 12
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio
- カテゴリ: 開発者ツール
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:2項目中2項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- レジストリには、入力が必要なキーは載っていません。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
リンク先は作者自身のファイルです。私たちが置いたり再パッケージしたりしたものではありません。ファイルを開くと、Claude Desktopがインストールします。
ターミナルでこれを実行します
claude mcp add docker -- uvx docker-mcp-serverまたは、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"docker": {
"command": "uvx",
"args": [
"docker-mcp-server"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"docker": {
"type": "stdio",
"command": "uvx",
"args": [
"docker-mcp-server"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
使えるアプリ
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月11日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント L337-org で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:昨日
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
開発者ツールのほかのサーバーとの比較i
- このカテゴリのほかの5739件のうち90%よりスターが多い
- このカテゴリのほかの5739件のうち94%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5739件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Docker MCP Serverは安全ですか?
当てはまる基本チェック2項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は昨日、最新バージョン(2.3.0)がレジストリに届いたのは昨日です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv), Docker, MCPBも必要です。
代わりに使えるものは?
同じカテゴリには:REA, Netdata, Front-End Checklist
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Front-End Checklist
Review frontend code and live pages against 386 quality-gated web development rules.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
docker-mcp-server
More than just a fully featured MCP server that lets AI agents manage Docker - containers, images, networks, volumes, swarm services, secrets, configs, nodes, plugins, etc., it helps you create workflows to easily manage your Docker environments.
It gives you much more control and flexibility than calling the Docker CLI directly: each operation is exposed as its own typed tool, marked read-only or not, with destructive actions separately flagged. This means a client can auto-approve reads while always confirming anything destructive, and the whole server can also be switched into a read-only or no-destructive mode as a blanket safeguard. Output is bounded rather than left to grow unboundedly - capped with a truncated flag instead of silently overflowing the agent's context.
For simple cases, you can just install and go with no configuration required - once loaded it will discover your local Docker socket and expose the full command surface to your AI agent. For more advanced users it can manage multiple Docker daemons, e.g. both your local dev environment and also a remote production environment over TCP, TLS or SSH in a single session. It can also be configured to mark some daemons as read-only, so you can monitor them without the risk of making accidental changes.
It can even be run on a machine without Docker installed and manage remote daemons over SSH, TLS or TCP (some features require SSH). The AI itself does not require shell or SSH access.
The MCP server also exposes things like logs and stats as resources so that you can monitor and triage, enabling you to answer questions like 'why did my container crash?', 'what is the state of my swarm?', 'am I suffering memory pressure?', 'what is the disk usage of my volumes?', 'what differences are there between my test and production systems?', and more...
Documentation is built for the agent, not just the person configuring it: an MCP resource exposes the Docker SDK reference in-session (with a tool-callable fallback for clients that can't read resources), and a live tool-catalog resource reports exactly what's registered under the current configuration. Each tool's own description names its nearest siblings and when to prefer each, states preconditions and side effects in plain language, and is honest about when it can still fail - so an agent can pick the right tool on the first try among 150+ options, not guess.
docker-mcp-server is optimized to work efficiently with the new generation of MCP clients that support lazy tool loading. For clients that still eagerly load all tools, the server can optionally be configured to exclude tools from a subset of domains (e.g. exclude 'swarm' and 'scout' tools) to reduce the tool list size. It's also possible to put the MCP server into 'read-only' or 'no-destructive' modes that prevent any tools with write or destructive capabilities from being registered, which again reduces the footprint.
The server runs entirely on your machine, either natively, as an mcpb bundle, as a Claude plugin, or containerized, and sends no telemetry. You are entirely in control - see the Privacy Policy.
Requirements
Note: If you're using the containerized MCP server or MCPB bundle, the Python and uv requirements are taken care of for you.
- A running Docker daemon reachable from the host that runs the server (the standard
DOCKER_HOST/ unix socket conventions apply) - Python ≥ 3.14
- uv for dependency management
- Intel (x86_64) macOS only: installing natively (via
uvx/pip, the Claude plugin, or the.mcpbbundle, all of which resolve dependencies locally) requires Rust and OpenSSL 3.x, becausecryptography- a transitive dependency, viamcp->pyjwt[crypto]- has shipped no x86_64 macOS wheel since version 49.0.0 and must be built from source there. If you'd rather not install a build toolchain, use the container image instead - it runs the same prebuilt Linux binary regardless of your Mac's CPU architecture, so this doesn't apply to it. See Security considerations for more.
Using the server
The server is published to PyPI as `docker-mcp-server`. Add an entry to your AI tool's MCP configuration (commonly mcp.json or the equivalent in your client) pointing uvx at it - uv will fetch and cache the package on first use:
{
"mcpServers": { "docker-mcp-server": { "command": "uvx", "args": ["docker-mcp-server"], "env": {} } } }
To pin a specific version, append == to the package name (e.g. docker-mcp-server==1.5.0). If you'd rather install it onto your PATH, pipx install docker-mcp-server gives you the docker-mcp-server console script (a docker-mcp alias is also installed).
Installing from git instead. To run an unreleased revision straight from this repository:
{
"mcpServers": { "docker-mcp-server": { "command": "uvx", "args": [ "--from", "git+https://github.com/L337-org/docker-mcp.git", "docker-mcp-server" ], "env": {} } } }
To pin a specific revision, append @ to the git URL.
Install as a Desktop Extension (.mcpb)
For Claude Desktop, a one-click bundle is attached to each GitHub Release as docker-mcp-server- .mcpb (with a matching .sha256). Download it and drag it into Settings > Extensions, or use Settings > Extensions > Advanced settings > Install extension... and pick the file. The install dialog surfaces a Docker host(s) field and the read-only / no-destructive / disabled-domain switches, so no manual JSON editing is needed.
It's a uv-type bundle: Claude Desktop's managed uv resolves the dependencies and runs the server, so the only host prerequisite is Docker itself - no separate Python, uv, or git. Leave the Docker host(s) field blank to use your default Docker context; set one endpoint (ssh://user@host) for a remote daemon, or list several (see Managing several daemons).
Install as a Claude plugin
The claude-plugin/ folder packages the server as a plugin for Claude Code and Cowork, for Anthropic's plugin directory. It runs uvx docker-mcp-server== , pinned to the release the plugin was built from, so it needs uv on the host. It ships a lockfile pinning every dependency by hash, which the directory describes its locked launch as installing exactly; loaded any other way, uvx resolves the dependencies at install time. It offers the same settings as the .mcpb install dialog (Docker host(s), read-only, no-destructive and disabled domains), set in the plugin's settings in Claude Code (/plugin). The release pipeline updates the plugin the directory serves only after a release has been published to PyPI and the plugin has been installed and tested from it.
Run as a container
Running the server as a container removes the Python / uv / git prerequisites entirely - the only thing the host needs is Docker, which you already have. Prebuilt multi-arch images (linux/amd64 + linux/arm64) are published on each release to Docker Hub (gavinlucas/docker-mcp-server) and GHCR (ghcr.io/l337-org/docker-mcp-server) - the two are identical. Point your MCP client at docker run:
{
"mcpServers": { "docker-mcp-server": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "/var/run/docker.sock:/var/run/docker.sock", "gavinlucas/docker-mcp-server:latest" ], "env": {} } } }
-i is required (the server speaks MCP over stdio); --rm cleans up when the client disconnects. To pin a version, replace :latest with a release tag (e.g. :1.5.1). To pull from GHCR instead, use ghcr.io/l337-org/docker-mcp-server:latest.
Image renamed. As of 1.5.0 the image is published as
docker-mcp-server(matching the PyPI
name). The old
ghcr.io/gavinlucas/docker-mcpimage is frozen at 1.4.0 and no longer updated -
point new pulls at
ghcr.io/l337-org/docker-mcp-server.
Image variants. Two variants are published to both registries (gavinlucas/docker-mcp-server on Docker Hub and ghcr.io/l337-org/docker-mcp-server on GHCR), both built from one Dockerfile. The CLI-backed domains (Compose, Stack, Buildx, Scout, Context) shell out to the docker CLI and its plugins; in Stack, only stack_deploy does.
| Variant | Tags | Approx. size | Includes |
|---|---|---|---|
full *(default)* | :latest, : | ~510 MB | docker CLI + compose + buildx + scout |
no-scout | :no-scout, : -no-scout | ~315 MB | docker CLI + compose + buildx |
Scout's plugin binary alone accounts for the ~195 MB jump from no-scout to full. The no-scout image also defaults DOCKER_MCP_SERVER_DISABLE=scout, so the scout *tools* don't register - the agent is never offered tools whose CLI plugin isn't present (it sees a smaller, fully-working tool list rather than scout tools that error on every call). Override at runtime with -e DOCKER_MCP_SERVER_DISABLE=... if you ever need to change the disabled set (note it replaces, not appends).
Building it yourself. All variants build from the repo's Dockerfile via build args:
docker build -t docker-mcp-server:full . # full (default)
docker build --build-arg INSTALL_SCOUT=0 --build-arg DISABLE_DOMAINS=scout \ -t docker-mcp-server:no-scout . # no-scout docker build --build-arg INSTALL_CLI=0 -t docker-mcp-server:lite . # lite (SDK-only, ~165 MB)
The lite image (docker-py SDK tools only - Compose/Buildx/Scout/Context degrade to "plugin unavailable") is buildable but not published.
Reaching the daemon from inside the container. The image defaults DOCKER_HOST to unix:///var/run/docker.sock, so mounting your host's socket onto that path is all that's needed. Where the host socket *is*, however, varies - and the server prints a platform-aware hint to stderr if it can't connect at startup:
- Linux:
-v /var/run/docker.sock:/var/run/docker.sock(rootless:-v $XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock). - macOS (Docker Desktop): the real socket is usually
~/.docker/run/docker.sock- mount it onto the in-container path:-v $HOME/.docker/run/docker.sock:/var/run/docker.sock(or enable *Settings > Advanced > Allow the default Docker socket* and use/var/run/docker.sock). - Windows (Docker Desktop / WSL2): the engine uses a named pipe, not a Unix socket - prefer
-e DOCKER_HOST=tcp://host.docker.internal:2375(enable the TCP endpoint in Docker Desktop). That endpoint is unauthenticated and unencrypted - keep it bound to localhost, disable it when you're not using it, and use TLS orDOCKER_HOST=ssh://...for any remote daemon. - Remote / TLS / SSH daemon: skip the socket mount and pass
-e DOCKER_HOST=...(plus the TLS vars below)