Skip to content
Back to search
100
MCP live MCP 2025-11-25 streamable-http

PingRoom

io.pingroom/pingroom

Send mobile pings and route human questions, approvals, and handoffs from AI agents.

Watch this dependency Share evidence report
Uptime
100.0%
5 direct probes · 30d
Response
504ms
last probe
Tools
42
callable
Resources
0
readable
Prompts
0
available
Score: 100/100
Handshake verified by our own probe.
pass Answers the MCP handshake 50/50
The handshake and the list calls succeeded on the primary URL.
pass Lists tools, resources or prompts 30/30
42 tools, 0 resources, 0 prompts returned.
pass 3 or more catalogue items 10/10
42 items in total; 3 or more earns these points.
pass Describes itself 10/10
84 characters; more than 30 earns these points.

Tools · 42

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 login or reconnect, match owner.id and handle to the approve…

disconnect

Revoke this authenticated robot connection, including its access and refresh credentials and room memberships. Use only when the human explicitly requests logout, disconnection, or reconnection. Call …

list_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 data.location, link needs data.url, file/photo/pdf need attachme…

broadcast

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 the ticks back as checklist_state. Rate-limited. In someone els…

live_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 correlation_id for every ping of one stream: the first ping sta…

get_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 returns streams started by this credential, within the last 24 hou…

live_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 asker), "release" lets go of one you hold, "done" finishes it …

list_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 valid icon id, and to interpret icon values returned by reads.

list_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, checklist_state.

wait_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 everything your connected human sends (and your own sends); you rece…

wait_for_ack

Long-poll a generic acknowledgement-required ping until its confirmation rule is met (any: first confirmation; all: every original eligible recipient), it expires, or the timeout elapses. Questions us…

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 connected human only, so like a direct ask_question to them it needs …

wait_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 answer from the lock screen or in-app; the first valid answer wi…

wait_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 responder.

get_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 install or update PingRoom from install_url, open the app, si…

create_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 devices supports the complete Handoff action before creating…

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 activate_agent_inbox, success requires an answered result with acti…

get_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 while has_more is true.

upload_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 attachment_ids. Larger files: use the PingRoom CLI or agent REST A…

get_attachment

Fetch an attachment visible to this agent as base64 content plus metadata. Results over the connector size limit return attachment_too_large — fetch those via the agent REST API instead.

delete_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 and has no delivery room yet, the new room becomes its delive…

create_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 credential.

update_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 room members' devices with its own background refresh, so sett…

set_avatar

Set this agent's avatar. Must be one of the PingRoom bot avatars.

rotate_handle

Rotate this agent's public handle — kill-switch for a leaked handle.

How to use

Claude Desktop or claude.ai: add a custom connector (Customize → Connectors; on Team and Enterprise plans an owner adds it under Organization settings → Connectors) with this server URL: https://api.pingroom.io/api/agent/mcp

Cursor or Cline: add to your MCP config:

{
  "mcpServers": {
    "pingroom": {
      "url": "https://api.pingroom.io/api/agent/mcp",
      "transport": "streamable-http"
    }
  }
}