Comparison
Docker MCP Toolkit vs MCPProxy:
containers or an approval layer?
Docker MCP Toolkit is built into Docker Desktop and runs catalog MCP servers as containers. MCPProxy is a separate local MCP proxy for stdio and remote HTTP or SSE servers. It focuses on review and access control. They solve different halves of the problem.
The short answer
- Pick the Docker MCP Toolkit if you already use Docker Desktop and want ready-made, containerized servers from Docker’s catalog with signed images and resource limits.
- Pick MCPProxy if you want one place to review servers and tool changes and limit what each coding agent can reach, across servers from any source, without needing Docker Desktop.
- You can run MCPProxy’s Docker isolation for your own stdio servers too, so the two ideas are not opposites.
Side by side
Docker facts are from the MCP Toolkit and Dynamic MCP docs and the open-source mcp-gateway repository, read 2026-10-22. MCPProxy facts are from docs.mcpproxy.app.
| Docker MCP Toolkit | MCPProxy | |
|---|---|---|
| Where it lives | A feature of Docker Desktop (the docs describe the interface in 4.62 and later) | A separate local app and CLI. Docker is optional |
| Where servers come from | Docker’s MCP Catalog. Images under mcp/ are built and signed by Docker, with an SBOM | Any stdio, HTTP or SSE server you add, from any source |
| Isolation | Each server in a container. Docker documents limits of 1 CPU and 2 GB of memory, and no host filesystem access by default | Optional Docker isolation for stdio servers, with settings you choose |
| Grouping | Profiles: named collections of servers per project | Profiles: named groups of servers, with an optional read, write or destructive tool cap |
| Tool discovery | Dynamic MCP (mcp-find, mcp-add), marked experimental by Docker | BM25 search through retrieve_tools |
| Adding servers mid-session | Agents can search the catalog and add servers for the session | Servers added through an AI client are held in quarantine until you approve them |
| Detect a tool changing after you approved it | Not found in the Toolkit and Dynamic MCP pages we read on 2026-10-22 | Yes: tool definitions are hashed, and a change is held until reviewed (unless you set a server to auto-approve) |
| Scanners | Not found in the pages we read on 2026-10-22 | Built-in offline tool-description scanner, plus optional scanner plugins |
| Per-agent credentials | Choose a profile when you connect a client | A separate credential per client and scoped agent tokens, pinned to a profile |
| OAuth | Built into Docker Desktop for catalog servers such as GitHub, Notion and Linear | OAuth 2.1 with PKCE for remote servers, with tokens kept in your OS keyring |
“Not found” means we did not see it in the Toolkit and Dynamic MCP pages on that date. Check Docker’s docs for the current state.
Where Docker is stronger
- Zero extra install if you have Docker Desktop. The toolkit is already there.
- Signed catalog images. For servers Docker publishes, you get provenance and an SBOM.
- Container limits by default. The resource and filesystem limits are part of the product.
Where MCPProxy is stronger
- It is not tied to a catalog or to Docker Desktop. Use stdio or remote HTTP or SSE servers from any source, with the clients MCPProxy supports, on macOS, Windows or Linux.
- Review first, and notice changes. With the default trust mode, a new server waits for you, and a tool whose description or schema changes afterwards is held for review. See detect tool poisoning and rug pulls.
- Different access per agent. A reviewer agent can get read-only tools while your deploy agent gets more. See per-agent MCP tools in Claude Code.
- One setup for four clients. See the same MCP servers in Claude Code, Codex, OpenCode and Cursor.
A note on Dynamic MCP
Docker’s Dynamic MCP lets an agent find and add servers while it works, and Docker says added servers last for the session. That is convenient. It also means the agent decides what to add. MCPProxy takes the opposite default: a server added by an AI client is quarantined, and you release it. Which one you want depends on how much you want to be in the loop.
Try MCPProxy
brew install smart-mcp-proxy/mcpproxy/mcpproxy
mcpproxy serve
Docs: security quarantine, Docker isolation, profiles.