Docker MCP Server
Official Docker registry, toolkit, and gateway for discovering, deploying, and managing containerized MCP servers from a single Docker Desktop interface.
The Docker MCP Catalog and Toolkit is Docker's official system for discovering, deploying, and managing Model Context Protocol (MCP) servers. It combines three pieces: the MCP Registry (github.com/docker/mcp-registry), a curated catalog of MCP servers published as container images on Docker Hub under the mcp/ namespace; the MCP Toolkit, a management UI built into Docker Desktop (4.62+); and the MCP Gateway (docker mcp CLI plugin), which exposes all enabled servers to MCP clients through a single connection called MCP_DOCKER.
Instead of installing and configuring each MCP server individually in Claude Desktop, Cursor, or VS Code, users browse the catalog (300+ verified servers from publishers like GitHub, AWS, Stripe, MongoDB, and Elasticsearch), add servers to a named "profile", and connect their AI client once to the gateway. Docker provides container isolation, cryptographic signatures, provenance, and SBOMs for Docker-built images, giving teams a more controlled way to run untrusted third-party MCP servers than running them as bare local processes.
This is the official Docker offering: the registry is maintained by docker/mcp-registry, the gateway by docker/mcp-gateway, and the catalog is hosted at hub.docker.com/mcp. It is the standard distribution channel for containerized MCP servers in the Docker ecosystem.
Tools
| Tool | Description |
|---|---|
docker mcp catalog show |
Show the contents of an MCP catalog by OCI reference. |
docker mcp catalog server ls |
List MCP servers available in a given catalog. |
docker mcp catalog server add |
Add an MCP server to a catalog. |
docker mcp catalog push / pull |
Push or pull an MCP catalog to/from an OCI registry. |
docker mcp profile create |
Create a named profile that groups MCP servers for a project. |
docker mcp profile list / show / remove |
Manage existing MCP profiles. |
docker mcp profile server add |
Add an MCP server from the catalog to a profile. |
docker mcp profile config |
Set, get, or delete config values (e.g. API keys) for servers in a profile. |
docker mcp gateway run |
Run the MCP gateway that exposes all enabled servers to clients as a single MCP_DOCKER endpoint. |
docker mcp client connect |
Wire a supported MCP client (claude-desktop, cursor, vscode, etc.) to a profile via the gateway. |
docker mcp list |
List currently active MCP servers and their connection status across clients. |
Prerequisites
- Docker Desktop 4.62 or later
- An MCP-compatible client (Claude Desktop, Cursor, VS Code, Claude Code, Zed, etc.)
Step 1: Enable the MCP Toolkit
Open Docker Desktop and go to Settings → Beta features → Enable Docker MCP Toolkit → Apply.
Step 2: Add servers from the catalog
In Docker Desktop, open MCP Toolkit → Catalog, browse the available MCP servers, and click Add to to add them to a profile. Some servers display a "Configuration Required" badge for API keys or env vars.
Step 3: Connect your MCP client
In MCP Toolkit → Clients, find your client (Claude Desktop, Cursor, VS Code, etc.) and click Connect. Docker writes the gateway entry directly into the client's config. After restarting the client, a single MCP server named MCP_DOCKER becomes available, exposing the tools of every server enabled in the profile.
Manual config (Claude Desktop)
If you prefer to wire it up manually, point your client at the gateway:
{
"mcpServers": {
"MCP_DOCKER": {
"command": "docker",
"args": ["mcp", "gateway", "run"]
}
}
}
Useful docker mcp CLI commands
# Profiles
docker mcp profile create --name dev
docker mcp profile list
docker mcp profile show dev
# Catalog and servers
docker mcp catalog show <oci-ref>
docker mcp catalog server ls <catalog-ref>
docker mcp profile server add dev --server <uri>
# Gateway and clients
docker mcp gateway run --profile dev
docker mcp client connect vscode --profile dev
- Run third-party MCP servers (GitHub, Stripe, MongoDB, Elasticsearch, Slack, etc.) inside isolated containers instead of as raw Node or Python processes on the host
- Maintain separate profiles per project (for example "frontend-web" and "backend-data") and switch which set of MCP tools is exposed to Claude or Cursor
- Distribute a vetted, internal catalog of approved MCP servers to a team via OCI references using
docker mcp catalog push/pull - Avoid rewriting
claude_desktop_config.jsonevery time a new server is added: enable it once in Docker Desktop and it shows up through theMCP_DOCKERgateway - Verify image provenance (signatures and SBOMs) for MCP servers before letting an agent execute them on a developer machine
- "Using the GitHub MCP server in my Docker MCP profile, list open pull requests on docker/mcp-registry."
- "Search Docker Hub for official Postgres images and show the most recent tags."
- "Create a new MCP profile called 'data-team' and add the MongoDB and Elasticsearch servers from the catalog."
- "Run the MCP gateway against my 'frontend' profile and list which tools are currently exposed."
- "Show me which MCP servers are connected to Claude Desktop right now via
docker mcp list."
- Official, Docker-maintained registry and gateway, with a curated catalog of 300+ containerized MCP servers
- Container isolation, cryptographic signatures, provenance, and SBOMs for Docker-built images give a real security boundary around third-party MCP code
- One gateway connection (
MCP_DOCKER) replaces per-server entries in every client config, so adding or removing servers does not require editing JSON - Works with the major MCP clients (Claude Desktop, Cursor, VS Code, Claude Code, Zed) through the same toolkit
- Requires Docker Desktop 4.62+; not usable on hosts that only have the Docker Engine or rely on Podman/other runtimes
- The MCP Toolkit was a Beta feature at the time of writing, and the
docker mcpCLI surface is still evolving - The registry only standardizes packaging and discovery: each individual MCP server still has its own auth, env vars, and quirks that you must configure
- Smithery (smithery.ai): hosted MCP server registry and installer, not container-based
- mcp-get / npx-based installs: run MCP servers directly from npm or pip without Docker
- Docker Hub MCP Server (
docker/hub-mcp): a separate, single MCP server specifically for querying Docker Hub repositories and tags, rather than a registry of many servers