TL;DR: Everyone says "MCP doesn't work in Cowork." We solved it using supergateway + pm2. It worked on the first try. Here's the full setup.
The Problem
Claude Code's Cowork mode runs inside a sandboxed VM. This means local stdio MCP servers — which run as child processes on your machine — simply can't connect. The VM has no access to your local processes.
The community response has been universal: "MCP is not supported in Cowork."
But that's not entirely true.
The Solution: Two Layers
We discovered that Cowork actually supports MCP through two different mechanisms — and by combining them, we got 18+ MCP servers working reliably in production.
Layer 1: Claude Desktop SDK Bridge (Built-in, Undocumented)
What most people don't realize: if you configure MCP servers in your claude_desktop_config.json, Claude Desktop automatically bridges them into the Cowork VM via its SDK layer.
// claude_desktop_config.json (on your local machine)
{
"mcpServers": {
"outlook-mcp": {
"command": "node",
"args": ["C:/apps/outlook-mcp/dist/index.js"]
},
"Windows-MCP": {
"command": "npx",
"args": ["-y", "@anthropic/windows-mcp"]
}
}
}
These show up in Cowork as "type": "sdk" — meaning Desktop proxies them transparently. No extra configuration needed.
This alone gives you access to any stdio MCP server you've configured locally.
Layer 2: supergateway HTTP Bridge (For Additional Servers)
For MCP servers that aren't in your Desktop config — or that you want to host on a separate machine — we use supergateway to convert stdio MCP servers into HTTP endpoints.
Architecture:
[Cowork VM] --HTTP--> [Your Server:8001-800x] --supergateway--> [MCP Server (stdio)]
Setup steps:
1. Install supergateway
npm install -g supergateway
2. Create a startup script for each MCP server
# start-mcp-servers.sh
supergateway --stdio "npx -y @anthropic/alphabanana-mcp" --port 8001 --baseUrl /mcp &
supergateway --stdio "npx -y @anthropic/mermaid-mcp" --port 8002 --baseUrl /mcp &
supergateway --stdio "npx -y @anthropic/pandoc-mcp" --port 8003 --baseUrl /mcp &
supergateway --stdio "npx -y @anthropic/antv-chart-mcp" --port 8004 --baseUrl /mcp &
supergateway --stdio "npx -y @anthropic/un-markdown-mcp" --port 8005 --baseUrl /mcp &
3. Use pm2 for process management
npm install -g pm2
pm2 start start-mcp-servers.sh --name mcp-bridge
pm2 save
pm2 startup # auto-start on boot
4. Add to your project's .mcp.json
{
"mcpServers": {
"alphabanana": {
"type": "streamable-http",
"url": "http://localhost:8001/mcp"
},
"mermaid": {
"type": "streamable-http",
"url": "http://localhost:8002/mcp"
}
}
}
5. (Optional) Access from other machines via Tailscale
If your MCP host machine is on a Tailscale network, replace localhost with the Tailscale IP — and you can access these MCP servers from any device on your network.
The Full Architecture
Cowork VM
|
+-- SDK Bridge (automatic)
| +-- Claude Desktop proxies locally-configured MCPs
| +-- outlook-mcp
| +-- Windows-MCP
| +-- PDF Tools
| +-- Notion
| +-- Claude in Chrome
| +-- Playwright
| +-- Excel MCP
| +-- ... (any stdio MCP in claude_desktop_config.json)
|
+-- HTTP Bridge (supergateway)
+-- Remote HTTP endpoints on your server
+-- :8001 -> alphabanana (image generation)
+-- :8002 -> mermaid (diagram preview)
+-- :8003 -> pandoc (document conversion)
+-- :8004 -> antv-chart (30+ chart types)
+-- :8005 -> un-markdown (document publishing)
Results
This worked on the first attempt. We now have:
- 18 MCP servers active simultaneously in Cowork
- Zero downtime (pm2 auto-restarts on crash)
- Full functionality — document generation, browser automation, email, calendar, Excel, charts, diagrams, all working inside Cowork
Why This Matters
The "MCP doesn't work in Cowork" narrative is holding back a lot of teams. With this two-layer approach, you get the full power of MCP inside Cowork sessions — which makes Claude Desktop + Cowork a genuinely viable team collaboration platform.
— Murat_construction_Germany
