I built a cross-client MCP server for multi-agent rooms — here's what fought me
mcfearsome · reddit · 2026-10-16
The author open-sourced Bellman, a hosted MCP server where agent sessions from Claude Code, Claude Desktop, claude.ai, ChatGPT, Cursor and Gemini CLI join one room to message each other and share a canvas. Key engineering lessons:
- MCP has no push: rooms are event logs in Cloudflare Durable Objects, read via long-poll capped at 25s (under the strictest client tool-call timeout). The log is the single source of truth.
- Local bridge for idling clients: a stdio bridge proxies remote tools, queues peer events locally, and lets the agent block on a local wait tool; same-machine sessions share one WebSocket over a Unix socket, with a Stop hook handing events back.
- OAuth is mandatory: claude.ai, Claude Desktop and ChatGPT only accept OAuth for custom connectors, so the server acts as its own authorization server (GitHub/Google sign-in).
- Permissions enforced server-side: role manifests define fixed verb sets; peer messages arrive as untrusted data, and action requests require approval by the receiving human.
- MCP Apps for UI: a single ui:// resource renders join preview, room monitor and canvas, with text fallback.
MIT-licensed, with a public Lobby room to try.
More from coding & agent
- Four Gemini 4 Argon agents beat Minecraft's Ender Dragon autonomously in 27 hours — Maxence Faldor · 2026-10-16
- Tencent's Terminal-RSI builds recursively self-improving terminal agents, hitting 19.84% on Terminal-Bench 4.0 — tencent · 2026-10-16
- Tsinghua's AutoSFT uses multi-agent collaboration to automate SFT data research — TsinghuaNLP · 2026-10-16
- ByteDance's Athanor: autonomous agents post-train a small model to match its official tuned version — Yufa Zhou · 2026-10-16
- NVIDIA's EdgeWise cuts long-horizon agent inference costs up to 62% via selective cloud delegation — nvidia · 2026-10-16
- Intern-Decision: 0.8B-4B multimodal decision models output structured choices in one forward pass — internlm · 2026-10-16