Docker MCP server
Docker's official MCP Gateway: run, secure, and aggregate containerized MCP servers behind one endpoint, with on-demand discovery from the Docker MCP Catalog.
The Docker MCP Gateway is Docker's official MCP server, shipped as the `docker mcp` Docker CLI plugin and part of the Docker MCP Toolkit. Rather than exposing a single app's API, it solves the operational problem of running MCP servers safely: it launches each downstream server as an isolated Docker container, manages its lifecycle, injects secrets and OAuth credentials, applies security restrictions, and presents the combined tools, prompts, and resources to your client through one unified endpoint. Clients like Claude, Cursor, VS Code, and Zed connect to the Gateway instead of to a dozen separate servers.
The Gateway runs over stdio with `docker mcp gateway run` (or as a streaming HTTP server with `--port` and `--transport`). On recent Docker Desktop the CLI plugin is already installed; on Docker Engine you drop the binary into ~/.docker/cli-plugins. The `docker mcp` CLI manages profiles, catalogs, clients, secrets, OAuth, and tool inspection. Its standout capability is Dynamic MCP: a set of built-in primordial tools — mcp-find, mcp-add, mcp-config-set, mcp-remove, mcp-exec, and the experimental code-mode — that let an agent search the Docker MCP Catalog, add and configure servers mid-conversation, execute their tools, and even compose several servers' tools into one JavaScript-backed tool, all without restarting or pre-configuring the agent.
Quick install
Copy-paste configs are provided for all 8 supported clients. Pick your client below.
Add to ~/.claude.json
{
"mcpServers": {
"docker": {
"command": "docker",
"args": [
"mcp",
"gateway",
"run"
]
}
}
}claude mcp add docker -- docker mcp gateway runAvailable tools
| Tool | Description |
|---|---|
| mcp-find | Search for MCP servers in the Docker MCP Catalog by name or description. |
| mcp-add | Add a discovered MCP server to the current session so its tools become available. |
| mcp-config-set | Configure settings (such as secrets or options) for an MCP server in the session. |
| mcp-remove | Remove an MCP server from the current session. |
| mcp-exec | Execute a tool by name that exists on a server in the current session. |
| code-mode | Experimental: create a JavaScript-enabled tool that combines tools from multiple MCP servers. |
What you can do with it
Run MCP servers safely in containers
Point your client at the Docker MCP Gateway and it runs each downstream MCP server as an isolated container, injecting secrets and OAuth tokens at call time and applying resource and security limits — so a third-party server never runs unsandboxed on your host.
Discover and add tools mid-conversation
With Dynamic MCP the agent calls mcp-find to search the Docker MCP Catalog, mcp-add to pull in the right server, and mcp-exec to run its tools — adding capabilities on demand instead of pre-configuring every server before the session starts.
FAQ
- Is it free?
- Yes. The MCP Gateway is open source and the `docker mcp` CLI plugin ships with Docker Desktop at no extra cost. You only need Docker installed; the servers you run from the catalog are themselves open source or follow their own vendors' pricing.
- Does it support remote/OAuth?
- The Gateway connects to clients over stdio by default (docker mcp gateway run) and can also serve streaming HTTP with --port and --transport. It has built-in OAuth flows for authenticating the downstream servers it manages, and injects those credentials securely so they are never exposed to the model.