Everyone Is Sleeping on MCP Docker
One JSON block and your AI has a full browser. Nobody noticed.
MCP Docker adoption grew rapidly. The pre-built servers on Docker Hub kept multiplying. The npx-versus-Docker discourse resolved itself — Docker won for anything that needed to be sandboxed and reliable.
There is an entire namespace of pre-built MCP servers sitting on Docker Hub right now — Puppeteer, Slack, probably more by the time you read this — and the discourse is still dominated by people complaining about npx cold starts and dependency conflicts.
The config to give Claude a full headless browser:
{
"puppeteer": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer"]
}
}
That's it. That's the whole thing. Drop that in your mcpServers block and you're done. Claude can now navigate pages, click buttons, fill forms, scrape whatever it wants — sandboxed, no npm, no version hell, no "peer dependency requires node >= 18.something" at 11pm.
The Docker approach is obviously correct in retrospect — MCP servers are just processes, Docker is the thing we already use to run processes in predictable environments — but nobody seems to have connected that until now, and now there's a whole curated namespace sitting there fully operational while people are still writing setup guides about installing Node.
Throw Slack in alongside it and you have an agent with eyes on the web and ears in your company's communication infrastructure, configured in about forty characters of JSON, running in containers that vanish when the session ends. The sandboxing is a gift you didn't have to ask for.
I don't know what more you want from a tool. It does the thing. It cleans up after itself. It fits in a config file.
Go check the mcp namespace on Docker Hub. Count the servers. Then figure out why you've been doing this the hard way.
Counterpoints
Push back, extend the argument, or sharpen it. New counterpoints go through review before they show up here.
No approved counterpoints yet.