PingRoom

io.pingroomPublished by pingroom.ioOfficial publisherv0.1.0Updated Oct 24, 2026

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

VerifiedStreamable HTTPWeb executableCommunication & Collaboration

Overview

AI-generated overview

Lets an assistant send mobile pings and route human questions, approvals, and handoffs to people.

What you can do
PingRoom is a remote MCP server that connects an AI assistant to people through mobile pings. According to the registry description, it sends mobile pings and routes human questions, approvals, and handoffs from AI agents. No individual tools are listed in the manifest or description, so the exact operations are not documented here.
When to use it
Use it when an agent needs to reach a person on a mobile device, for example to ask a question, request an approval, or hand a task off to a human. It is aimed at workflows where an agent must pause for human input rather than complete everything on its own.
Requirements
A remote MCP endpoint at over streamable HTTP; no local package, runtime, environment variables, or headers are declared. The manifest declares no authentication, so no credentials are documented. Network access to the endpoint is required.
Before you install
The registry description mentions approvals and handoffs, so the server may relay agent requests to people and carry their replies back; treat anything sent through it as leaving your environment. No authentication, environment variables, or headers are declared, so how the endpoint is secured and who can reach it is not shown. No tool list is published, so verify what it can send or change before relying on it.

Installation

In SourceWeft

  1. Open PingRoom in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.pingroom%2Fpingroom/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

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

Tools

41

connection_info

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 approved account and robot before sending. A mismatch means stop and reload or restart the MCP client. Includes a credential-protected latest-pings feed and token-free install URL; never send credentials to the install URL.

Takes no parameters.

disconnect

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 BEFORE clearing local credentials or running MCP logout/login. It affects only the current connection and accepts no account or robot selector. After login, restart or reload the MCP client, then match connection_info owner.id and handle to the approved account and robot before sending.

Takes no parameters.

list_rooms

List Rooms

List the rooms the authenticated account belongs to.

Takes no parameters.

list_quick_actions

List Quick Actions

List the quick actions configured for a room.

Parametersinvite_coderequired

trigger_quick_action

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 attachment_ids — a press without the matching detail is a 422 quick_action_input_required. In someone else's personal room is_urgent and requires_ack are ignored; only the owner's own setting on the action applies.

Parametersdataack_modeis_urgentinvite_coderequiredrequires_ackaction_numberrequiredattachment_idstrigger_sourcequick_action_id

broadcast

Broadcast Ping

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 else's personal room only a Pro account may send it, text only (a link in the message is refused too), without title, is_urgent or requires_ack (all three are ignored there), and it counts toward the visitor's two-ping cap; otherwise use trigger_quick_action there.

Parametersdatatitlemessagerequiredack_modereply_tois_urgentaction_iconinvite_coderequiredrequires_ackaction_numberattachment_idscorrelation_id+1 more

live_status

Publish 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 starts the card and sends one alert, further "running" pings move it silently, and the first "done"/"failed" sends one completion alert and ends it. Free accounts get a small number of NEW streams per day; updates and the final ping of an open stream are never charged; a first ping that is already "done"/"failed" counts as a new stream.

Parametersdatatitleactioninvite_coderequiredlive_statusrequiredrequires_ackcorrelation_idrequiredack_timeout_seconds

get_live_status

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 hours. Returns notification_id and correlation_id, then the stored display state (state, progress, message, category, template, accent_override, eta_at, deadline_at, duration_seconds, metrics, prompt, options, left, right, center, steps, current_step), action_state, and updated_at. Fields you never set come back as null rather than being omitted, so a matchup/metrics/countdown/question stream can be resumed without re-sending content.

Parametersinvite_coderequiredcorrelation_idrequired

list_room_icons

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.

Takes no parameters.

list_notifications

List Notifications

List a bounded page of recent pings across approved rooms, newest first. Use page to continue while has_more is true.

Parametersdatepagetypelimit

get_notification

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.

Parametersnotification_idrequired

wait_for_notification

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. The agent's own sends are excluded.

Parametersaftertimeout

wait_for_ack

Wait for Acknowledgement

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 use wait_for_answer instead.

Parameterstimeoutnotification_idrequired

request_approval

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 no trigger permission in the room; public and personal rooms are refused. Rate-limited.

Parametersttldatatitleoptionsquestionrequiredinvite_coderequiredcorrelation_ididempotency_key

wait_for_approval

Wait for Approval

Long-poll an approval request until the human decides or it expires. Returns the status and, once decided, the chosen option.

Parameterstimeoutapproval_idrequired

get_approval

Get Approval

Fetch the current status of an approval request without blocking.

Parametersapproval_idrequired

ask_question

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 wins. Rate-limited.

Parametersttldatapromptrequiredcontextoptionsreply_totext_inputinvite_coderequiredattachment_idscorrelation_ididempotency_key

wait_for_answer

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.

Parameterstimeoutquestion_idrequired

get_question

Get Question

Fetch the current state of a question without blocking.

Parametersquestion_idrequired

list_questions

List Questions

List a bounded page of questions you asked, newest first. Optionally filter by state; use page while has_more is true.

Parameterspagelimitstate

cancel_question

Cancel Question

Withdraw a still-pending question you asked.

Parametersquestion_idrequired

activate_agent_inbox

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, sign in, and enable notifications before retrying. Read question.id, then call wait_for_handoff only while state is pending and within a bounded local deadline. Success is answered with activation_completed true. Any other terminal result is incomplete: stop polling that attempt, then call activate_agent_inbox again for one numbered retry. The stamp requires native phone receipt before the human answer.

Takes no parameters.

create_handoff

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 anything.

Parametersdatakindrequiredpromptrequiredoptionsurgencyaudiencerequiredreply_toexpires_incorrelation_ididempotency_key

wait_for_handoff

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 activation_completed true; use a bounded local deadline and treat any terminal answer without that stamp as incomplete.

Parameterstimeouthandoff_idrequired

get_handoff

Get Handoff

Fetch the authoritative current state of one Handoff without blocking.

Parametershandoff_idrequired

list_handoffs

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.

Parameterspagelimitstate

upload_attachment

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 API.

Parametersfilenamerequiredmime_typecontent_base64required

get_attachment

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.

Parametersattachment_idrequired

delete_attachment

Delete Attachment

Delete an attachment this agent uploaded that is not yet claimed by a ping.

Parametersattachment_idrequired

get_room

Get Room

Fetch a single room by its invite code, including members and quick actions.

Parametersinvite_coderequired

create_room

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 delivery room — where its handoffs and direct questions land.

Parametersiconrequirednamerequiredcolorrequired

create_public_room

Create Public Room

Create a publicly discoverable room with a unique @handle. Counts toward the free-plan five-room cap.

Parametersiconrequirednamerequiredcolorrequiredhandlerequiredcategoryshow_ownerdescriptionlocation_namelocation_latitudelocation_longitude

join_room

Join Room

Join a room using its invite code. Include the password only if the room is protected.

Parameterspasswordinvite_coderequired

list_webhooks

List Webhooks

List the incoming webhooks (with their trigger URLs) for a room the account owns.

Parametersinvite_coderequired

create_webhook

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.

Parametersiconnamerequiredcolorsoundtitleenabledmessageinvite_coderequiredaction_numbercooldown_seconds

update_webhook

Update Webhook

Update an incoming webhook (by id) on a room the account owns — e.g. change its icon, title, message, or sound.

Parametersiconnamecolorsoundtitleenabledmessagewebhook_idrequiredinvite_coderequiredaction_numbercooldown_secondsregenerate_secret

delete_webhook

Delete Webhook

Delete an incoming webhook (by id) from a room the account owns.

Parameterswebhook_idrequiredinvite_coderequired

update_quick_action

Update Quick Action

Configure a numbered quick-action slot for a room the account owns. Sends a background room refresh to room members' devices.

Parametersiconrequiredlabelrequiredsoundinput_typeinvite_coderequiredrequires_ackaction_numberrequired

update_quick_actions

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 setting up four Pings one at a time spends four of a finite daily push budget on one operation. Slots you do not list are left exactly as they are, so this is also the right tool for editing a single Ping.

Parametersactionsrequiredinvite_coderequired

set_avatar

Set Agent Avatar

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

Parametersavatar_idrequired

rotate_handle

Rotate Agent Handle

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

Takes no parameters.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.