Home › Choosing a gateway › Docker MCP Gateway Explained: Features, Limits, Alternatives
Docker MCP Gateway Explained: Features, Limits, Alternatives
Docker’s MCP Gateway is, according to Docker’s documentation, an open source proxy that sits between AI clients and MCP servers. It starts each server on demand in an isolated container, injects the credentials that server needs, and provides logging and call tracing. It suits local, container-based setups more than shared, public endpoints.
What the documentation says it does
Docker describes the gateway as a single point of configuration. Instead of configuring every server in every application, you configure each application once to talk to the gateway. The gateway then handles the rest.
The stated behaviour, in order:
- A client asks for a tool.
- The gateway finds the server that provides it.
- If that server is not running, the gateway launches it.
- Before forwarding, it injects any required credentials and applies security restrictions.
- Results return to the client through the gateway.
Servers run as Docker containers described as isolated, with restricted privileges and limits on network access and resource usage. Profiles determine which servers clients can access, selected with a --profile flag. Built-in logging and call tracing give visibility into tool activity.
Where it runs
Two installation paths appear in the documentation. With Docker Desktop’s MCP Toolkit, the gateway runs in the background without manual setup. Without Desktop, you install it manually on Docker Engine by placing the docker-mcp binary from the GitHub releases in the Docker CLI plugins directory and making it executable.
Both are local or single-host patterns. That matches the problem the product addresses: one developer or a small group wants a tidy way to run and share a set of servers on machines they control.
What is attractive about the design
- Isolation by default. Running each server in a restricted container limits the damage from a poorly written or malicious server. That is meaningful, because untrusted servers are one of the main risks in the MCP ecosystem.
- Credentials handled for you. Keeping tokens out of per-client config files removes a common leak path.
- On-demand start. Servers that are not in use do not consume resources.
- Profiles. A simple way to give different clients different sets of servers.
- Tracing. You can see what was called.
Key takeaway: Docker’s approach moves the trust boundary to the container. It is strong for isolating servers on a host you control. It is a different thing from controlling which people and agents may call which tools across a company.
Limits to weigh
Read the following as questions, not criticisms. The documentation does not claim to answer them.
| Question | Why it matters |
|---|---|
| Is the product available to you? | The documentation says it is part of Docker AI Governance and is invite-only, so access may need a conversation with Docker |
| Does it expose a public HTTPS endpoint for cloud assistants? | Cloud assistants such as ChatGPT can only use remote servers, a point made in BusinessMCP’s remote versus local MCP guide |
| How is per-user policy handled? | The documentation describes profiles, which are a coarser tool than per-key, per-tool policy |
| How are logs retained and exported? | Tracing is described, but retention and export are not covered in the page we read |
| What about approval gates? | Not described in the documentation we read |
None of this makes the product weak. It means it solves the local-container problem and leaves other problems to other layers.
When to look at alternatives
You need a shared endpoint for a team or for cloud assistants. Then you need an HTTPS service with authentication, which is what self-hosted and managed gateways provide.
You run Kubernetes. A cluster-native option, such as Microsoft’s open source project described in our open source roundup, may fit better than a single-host proxy.
You want business data in an assistant without running servers at all. A managed endpoint can do that. BusinessMCP’s published list of MCP gateway tools shows what one exposes, including 115 platform tools and 48 connected-service tools, access scoped per key, and approval gating on actions such as sending email. Its own hosting page says it hosts your business data connections and not your server code, so it does not replace Docker for running custom servers.
You need per-tool approval and cost ceilings. Check whether your chosen gateway offers them, or whether you must add an application layer.
How it compares with the other shapes of gateway
Docker’s product is one of three common shapes, which we describe in what an MCP gateway is. It sits at the local end of the range. At the other end, a Kubernetes project such as Microsoft’s runs as a shared service with a control plane and identity-provider authentication, and a managed endpoint runs entirely in a vendor’s cloud. Each end answers a different question. The local proxy answers how a developer should run many servers safely on one machine. The cluster project answers how a platform team should operate a shared service. The managed endpoint answers how a business team should get data into an assistant without operating anything.
Comparing them on a single feature list is therefore misleading. A container-isolated, on-demand server runtime is a strength that a hosted endpoint does not try to match, and a per-key approval workflow is a strength that a purely local proxy does not describe. If you are weighing them for a real project, use the best MCP gateway comparison to see them side by side, then test the scenarios that matter to you.
BusinessMCP’s own security best practices guide is useful reading regardless of which proxy you pick, because it frames controls such as least privilege, approval of consequential actions and call logging in vendor-neutral terms. Container isolation addresses where a server runs. It does not address what a model is allowed to ask that server to do, which is why those policy controls still matter on top of any runtime.
Using Docker’s gateway alongside other layers
These choices are not exclusive. A common pattern for a developer is to use a local container-based gateway for experimental servers, and a hosted endpoint for shared business data. The local one keeps untrusted experiments isolated; the hosted one gives a stable, access-controlled surface for production questions. Both can sit in the same client, which supports multiple connections.
A quick evaluation if you try it
- Install it through Docker Desktop’s toolkit or manually, per the current documentation.
- Add one low-risk server and confirm the client sees its tools.
- Create two profiles and verify each client sees only its own servers.
- Check logs for a test call: can you see what was called and with what?
- Try a server that needs a credential and confirm the credential is not in client config.
- Stop the client and confirm the server container stops as you expect.
Then compare against the evaluation checklist, and review the baseline in MCP gateway security. Always confirm current availability and terms on Docker’s own page before planning around it.
Frequently asked questions
What is the Docker MCP Gateway?
Per Docker’s documentation, it is an open source proxy between AI clients and MCP servers that centralises configuration, credentials and access control.
How does Docker MCP Gateway run servers?
It starts them on demand as Docker containers with restricted privileges and limits on network and resource use, then forwards the request.
Is the Docker MCP Gateway free to use?
The documentation describes it as open source but also says it is part of Docker AI Governance and invite-only. Check Docker’s current page for availability.
Can the Docker MCP Gateway serve a whole company?
The documentation focuses on local use with Docker Desktop and Docker Engine. For shared, internet-facing endpoints you would typically look at a hosted or Kubernetes-based option.
Sources
- Docker – MCP Gateway documentation – https://docs.docker.com/ai/mcp-gateway/
- Model Context Protocol – Transports specification – https://modelcontextprotocol.io/specification/2025-06-18/basic/transports