Categories › Communication › Team chat (Slack, Discord, Teams)
Send mobile pings and route human questions, approvals, and handoffs from AI agents.
Remote server: your requests and data go to api.pingroom.io. Claude Code: claude mcp add --transport http pingroom https://api.pingroom.io/api/agent/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
connection_info — Verify the current connection: owner.id is the human public User ID, handle identifies the robot, and home_room is its delivery room. After disconnect — Revoke this authenticated robot connection, including its access and refresh credentials and room memberships. Use only when the human explilist_rooms — List the rooms the authenticated account belongs to.list_quick_actions — List the quick actions configured for a room.trigger_quick_action — Press a room quick action, notifying its members. Rate-limited. Read the action's input_type first (list_quick_actions): location needs databroadcast — Send a custom ping to a room the account belongs to. Pass data.checklist.items to send a checklist the room ticks through together; read thelive_status — Start, update, or end a live progress card on the room members' lock screen (an iOS Live Activity / Android live update). Reuse the same corget_live_status — Read back the current state of a live stream you created, so a restarted producer can reconcile instead of starting a duplicate. Only returnlive_claim — Act on a "Who's on it?" request (a live_status stream with template "claim") as your human: "claim" takes an open request (anyone but its aslist_room_icons — List the room-icon catalog (icon ids, tags, and categories). Call this before create_room / create_public_room / create_webhook to pick a valist_notifications — List a bounded page of recent pings across approved rooms, newest first. Use page to continue while has_more is true.get_notification — Fetch one visible ping by notification id, including its current action_state and, once anything on its data.checklist is checked, checklistwait_for_notification — Long-poll for the next ping. Blocks until one arrives or the timeout elapses — the real-time inbound channel for an agent. Excludes everythiwait_for_ack — Long-poll a generic acknowledgement-required ping until its confirmation rule is met (any: first confirmation; all: every original eligible request_approval — Ask the human to approve or reject an action, then block on their answer (pair with wait_for_approval). Delivered as a push to the connectedwait_for_approval — Long-poll an approval request until the human decides or it expires. Returns the status and, once decided, the chosen option.get_approval — Fetch the current status of an approval request without blocking.ask_question — Ask a person a question with 2-4 tappable options, then block on their answer (pair with wait_for_answer). Delivered as a push they can answwait_for_answer — Long-poll a question until it is answered or expires. Returns the state and, once answered, the chosen option value + label and the respondeget_question — Fetch the current state of a question without blocking.list_questions — List a bounded page of questions you asked, newest first. Optionally filter by state; use page while has_more is true.cancel_question — Withdraw a still-pending question you asked.activate_agent_inbox — Start or resume the onboarding Question in the private room the human chose during authorization. If recipient_not_ready, ask the human to icreate_handoff — Hand work to exactly one human as either an acknowledgement or a tappable question. The server verifies that one of the recipient's current wait_for_handoff — Long-poll a Handoff until the human resolves it, it expires, or the bounded timeout elapses. For the onboarding Question returned by activatget_handoff — Fetch the authoritative current state of one Handoff without blocking.list_handoffs — List a bounded page of this agent's Handoffs, newest first. Omit state (or use open) for unresolved work; use all for history and page whileupload_attachment — Upload a small file (max ~90 KiB over MCP; Pro account required) and get an attachment id to include in broadcast or ask_question via attachget_attachment — Fetch an attachment visible to this agent as base64 content plus metadata. Results over the connector size limit return attachment_too_largedelete_attachment — Delete an attachment this agent uploaded that is not yet claimed by a ping.get_room — Fetch a single room by its invite code, including members and quick actions.create_room — Create a new private room owned by the authenticated account. Free accounts may own up to five rooms. If this agent was granted every room acreate_public_room — Create a publicly discoverable room with a unique @handle. Counts toward the free-plan five-room cap.join_room — Join a room using its invite code. Include the password only if the room is protected.list_webhooks — List the incoming webhooks (with their trigger URLs) for a room the account owns.create_webhook — Create an incoming webhook for a room the account owns. The bound account must be Pro. Returns the secret trigger URL — treat it as a credenupdate_webhook — Update an incoming webhook (by id) on a room the account owns — e.g. change its icon, title, message, or sound.delete_webhook — Delete an incoming webhook (by id) from a room the account owns.update_quick_action — Configure a numbered quick-action slot for a room the account owns. Sends a background room refresh to room members' devices.update_quick_actions — Configure several of a room's quick-action slots in one call. Prefer this over repeated update_quick_action: each single-slot write wakes roNot tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.