agent-chatroom
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agent-chatroomPause for my approval before deploying the new model to production"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Agent Chatroom MCP
Public preview in preparation: Core features work, but installer distribution and the latest Claude Code channel integration are still under development. See
ROADMAP.mdfor the public roadmap andCONTRIBUTING.mdfor how to contribute.
When multiple subagents are working, this MCP tool stops an agent right before a critical decision and lets a human approve, give feedback, or intervene in real time from a dashboard or phone.
The core is the blocking gate β an agent pauses right before a risky or hard-to-reverse action (deploy, delete, external callβ¦) and waits until a human responds. The response isn't given in the terminal; the human answers from a dedicated operations dashboard (including a phone on the same Wi-Fi) via buttons and input fields.

Above: Live demo of the operations dashboard β on the right, NEEDS YOU gates (approve button, feedback input, blocker resolution) are handled directly by a human. On the left, the roster (per-agent status); in the center, the stream (date separators, type filter). The desktop uses a 3-pane layout; mobile adapts with a bottom sheet. (Demo state from
seed.py)
Why it exists (core value)
π¦ Blocking gates β the agent stops right before a decision and waits for a human. Not a polled notification that can be ignored, but a real intervention point that only resolves when the human answers.
π± Dashboard/phone interaction β approve/reject with [Approve]/[Reject] buttons, feedback fields, and blocker-resolution fields with no terminal needed. Intervene even from a phone while away.
ποΈ SQLite as single source of truth β distinct subagents share one DB file (WAL) and merge state. Everything is in-memory free; all timestamps are UTC ISO 8601.
Related MCP server: @looppause/mcp
Why it was built (core value)
π¦ Blocking gates β the agent pauses before a decision and waits for a human. Not a polled notification that can be ignored, but a real intervention point that only proceeds when the human answers.
π± Dashboard/phone β approve, reject, give feedback, or clear blockers with buttons and inputs, no terminal needed. Intervene from your phone while away.
ποΈ SQLite as the single source of truth β distinct subagents share one DB file (WAL) and all state; no in-memory-only state, timestamps are UTC ISO 8601.
Three kinds of gates (MCP tools)
Gate | Character | How the human answers |
| Hard gate β waits forever until a decision is made | [Approve]/[Reject] buttons on the dashboard |
| Soft gate β auto-continues after | Feedback input on the dashboard |
| Blocked state created/cleared | Blocker resolution input on the dashboard (or via tool) |
Implementation is DB-polling β the server polls the DB for a decision (the dashboard writes the human's choice to the DB). The agent stays blocked until then.
Monitoring dashboard
Room separation & switching β per-task rooms, switched via deep links (
mcp://).Per-room attention badges β pending approvals (amber) and open blockers (red) shown even when the room is not focused.
NEEDS YOU panel β highlights the three gate kinds waiting for a human.
Roster with 4 states β per-agent status derived (waiting π‘, blocker π΄, done π’, working π‘*).
Type filter β message-type chips filter the stream.
Date separators β stream shows date dividers (
YYYY-MM-DD (weekday), with Today/Yesterday).Auto-refresh β polls every few seconds, with an empty-state hint.
Other MCP tools
post_messageβ record a message Β·read_messagesβ query withsince/limit.wait_for_messageβ wait for a mention from legacy session-based workers. The replacement channel-based path is planned for v6.join_room/leave_room/kick/set_presenceβ room membership and status.
Current extensions
Room management β create, rename, soft-delete, restore from trash, backup then permanent delete.
v4 local mediator PoC β GGUF model judgment, routing, DB bridge. Models are never auto-downloaded.
v5 event spawn β mention-based Claude CLI workers, with role, model, effort, autonomy ping-pong, and dashboard controls.
v6 planning β wake idle sessions without pinging, workspaces, shared/role memory, and session handover. Not yet implemented.
Quick start
Beginner friendly: run each step line by line. Prerequisites: Python 3.13 and a virtual environment (
.venv) created in this folder.
1) Install dependencies
.venv/bin/python3 -m pip install -r requirements.txt2) Register the MCP server (stdio)
Register this server in Claude Code. Replace /absolute/path with the actual path to this project.
claude mcp add agent-chatroom -e CHATROOM_DB=/μ λκ²½λ‘/chatroom.db -- /μ λκ²½λ‘/.venv/bin/python3 /μ λκ²½λ‘/src/server.pyβ After registration, run /mcp in Claude Code and you'll see the tools as mcp__agent_chatroom__*.
3) Turn on the dashboard (separate from the MCP server)
The easiest way is a one-liner (prints startup checks + starts the dashboard; no new behavior):
python launch.pyThe original manual command still works too:
.venv/bin/python3 src/dashboard/server.pyThen open http://127.0.0.1:7777 in your browser. If a gate is waiting, the dashboard must be running for a human to answer.
To view from a phone on the same Wi-Fi:
DASHBOARD_HOST=0.0.0.0 .venv/bin/python3 src/dashboard/server.pyWhen it starts, it will print the LAN address like http://192.168.x.x:7777; open that on your phone.
4) Tour the dashboard with sample data
To see the actual behavior without a real agent, seed the dashboard with a demo state:
.venv/bin/python3 seed.pyβ This fills the dashboard with sample agents, gates, and messages (screenshot above). The demo data is in-memory only; restart clears it.
π Security
Dashboard access is local/trusted-network only. The
0.0.0.0flag exposes it to the whole Wi-Fi, so anyone on the network can approve or reject. Use only on networks you trust.Do not port-forward it to the internet β that would expose the controls publicly.
For access from outside your Wi-Fi (e.g., LTE), use Tailscale. It connects only your own devices, with no open internet port, so auth is handled by your tailnet. When you start with
0.0.0.0, the startup output shows aβ Tailscale: http://100.x:7777address. Steps:PHASE3-TAILSCALE.md. (Do not expose via Tailscale Funnel or similar.)On first launch, macOS may ask to allow incoming connections β allow it so your phone can connect. Change the port with the
DASHBOARD_PORTenv var.
Usage notes
Keep the dashboard open while a gate is waiting.
request_approvalblocks the agent until a human decides (or untiltimeout_seconds). If the dashboard is closed, no one can answer and the agent stays blocked.wait_for_messageis session-based and legacy. It works, but the newer mention-based channel (v6) is recommended.SQLite concurrency β The server uses WAL mode and busy timeout; concurrent reads from the dashboard and writes from MCP tools are safe.
Contributing
Bug reproductions, docs improvements, and OS compatibility checks are all welcome. For larger features, open an issue first to agree on scope and safety boundaries, then submit a small PR. Details in CONTRIBUTING.md.
License
Mozilla Public License 2.0. If you distribute modified files, those files must be released under MPL-2.0 terms; larger works that combine them may use other terms.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceThe Control Plane for Autonomous AI Enforce policy before execution, require human approvals where risk demands it, and keep a full audit trail β from first action to final result.495
- AlicenseNot gradedqualityCmaintenancePauses AI agent execution and routes approval requests to humans via Slack or email, with cryptographically signed proof of the human's decision.197MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to request human approvals with customizable forms, webhooks, and team features.64MIT
- AlicenseNot gradedqualityDmaintenanceEnables real-time communication and orchestration of multiple AI agents with a web dashboard for monitoring agent activities, tasks, and artifacts.MIT
Related MCP Connectors
Human-in-the-loop for AI agents. Submit choices, get a human decision.
Human-in-the-loop for AI coding agents β ask questions, get approvals via Slack.
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/meeeeeca2/agent-chatroom'
If you have feedback or need assistance with the MCP directory API, please join our Discord server