PingRoom is a remote MCP server that gives an AI agent 42 tools, among them activate_agent_inbox, ask_question, broadcast. It answers at https://api.pingroom.io/api/agent/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 24 October 2026, succeeded.
Send mobile pings and route human questions, approvals, and handoffs from AI agents.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
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 r |
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. Inputs: invite_code, prompt, context, options, text_input, correlation_id |
broadcast | Send a custom ping to a room the account belongs to. Rate-limited. Not available in personal rooms (use trigger_quick_action there). Inputs: invite_code, message, title, action_number, action_icon, data |
cancel_question | Withdraw a still-pending question you asked. Inputs: question_id |
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 mi |
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. Inputs: kind, prompt, audience, expires_in, urgency, options |
create_public_room | Create a publicly discoverable room with a unique @handle. Counts toward the free-plan five-room cap. Inputs: name, icon, color, handle, description, category |
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 Inputs: name, icon, color |
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. Inputs: invite_code, name, title, message, icon, color |
delete_attachment | Delete an attachment this agent uploaded that is not yet claimed by a ping. Inputs: attachment_id |
delete_webhook | Delete an incoming webhook (by id) from a room the account owns. Inputs: invite_code, webhook_id |
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 run |
get_approval | Fetch the current status of an approval request without blocking. Inputs: approval_id |
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. Inputs: attachment_id |
get_handoff | Fetch the authoritative current state of one Handoff without blocking. Inputs: handoff_id |
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 correlat Inputs: invite_code, correlation_id |
get_notification | Fetch one visible ping by notification id, including its current action_state. Inputs: notification_id |
get_question | Fetch the current state of a question without blocking. Inputs: question_id |
get_room | Fetch a single room by its invite code, including members and quick actions. Inputs: invite_code |
join_room | Join a room using its invite code. Include the password only if the room is protected. Inputs: invite_code, password |
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. Inputs: state, limit, page |
list_notifications | List a bounded page of recent pings across approved rooms, newest first. Use page to continue while has_more is true. Inputs: type, date, limit, page |
list_questions | List a bounded page of questions you asked, newest first. Optionally filter by state; use page while has_more is true. Inputs: state, limit, page |
list_quick_actions | List the quick actions configured for a room. Inputs: invite_code |
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_rooms | List the rooms the authenticated account belongs to. |
list_webhooks | List the incoming webhooks (with their trigger URLs) for a room the account owns. Inputs: invite_code |
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, furthe Inputs: invite_code, correlation_id, live_status, title, action, data |
redeem_code | Redeem a gifted Pro or promo code for the human account that connected this agent. Consumes a single-use code and grants Pro; no room or paid plan is required. Use only a code the user supplied for redemption. Existing eligibility and one-p Inputs: code |
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 user. Rate-limited. Inputs: invite_code, question, title, options, correlation_id, data |
rotate_handle | Rotate this agent's public handle — kill-switch for a leaked handle. |
set_avatar | Set this agent's avatar. Must be one of the PingRoom bot avatars. Inputs: avatar_id |
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 de Inputs: invite_code, action_number, trigger_source, is_urgent, ack_mode, requires_ack |
update_quick_action | Configure a numbered quick-action slot for a room the account owns. Inputs: invite_code, action_number, label, icon, sound, requires_ack |
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 the owner's device with its own background refresh, so setting up four Pings one at a time spends four Inputs: invite_code, actions |
update_webhook | Update an incoming webhook (by id) on a room the account owns — e.g. change its icon, title, message, or sound. Inputs: invite_code, webhook_id, name, title, message, icon |
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. Inputs: filename, content_base64, mime_type |
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 use wait_for_answer instead. Inputs: notification_id, timeout |
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. Inputs: question_id, timeout |
wait_for_approval | Long-poll an approval request until the human decides or it expires. Returns the status and, once decided, the chosen option. Inputs: approval_id, timeout |
wait_for_handoff, wait_for_notification
Every block below points at https://api.pingroom.io/api/agent/mcp. Pick your client and copy.
claude mcp add --transport http pingroom https://api.pingroom.io/api/agent/mcp
{
"mcpServers": {
"pingroom": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.pingroom.io/api/agent/mcp"]
}
}
}{
"mcpServers": {
"pingroom": {
"url": "https://api.pingroom.io/api/agent/mcp"
}
}
}{
"servers": {
"pingroom": {
"type": "http",
"url": "https://api.pingroom.io/api/agent/mcp"
}
}
}{
"context_servers": {
"pingroom": {
"url": "https://api.pingroom.io/api/agent/mcp"
}
}
}{
"mcpServers": {
"pingroom": {
"serverUrl": "https://api.pingroom.io/api/agent/mcp"
}
}
}{
"mcpServers": {
"pingroom": {
"url": "https://api.pingroom.io/api/agent/mcp"
}
}
}name: PingRoom
version: 0.0.1
schema: v1
mcpServers:
- name: PingRoom
type: streamable-http
url: https://api.pingroom.io/api/agent/mcp{
"mcpServers": {
"pingroom": {
"httpUrl": "https://api.pingroom.io/api/agent/mcp"
}
}
}{
"mcpServers": {
"pingroom": {
"type": "http",
"url": "https://api.pingroom.io/api/agent/mcp"
}
}
}{
"mcpServers": {
"pingroom": {
"url": "https://api.pingroom.io/api/agent/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapi.pingroom.io%2Fapi%2Fagent%2Fmcp&type=streamable_http&id=pingroom&name=PingRoom
It answered our last check on 24 October 2026 in 163 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by pingroom.io and served from api.pingroom.io, the vendor's own domain: https://api.pingroom.io/api/agent/mcp.
42, as returned by the server's own tools/list on 22 September 2026: activate_agent_inbox, ask_question, broadcast, cancel_question, connection_info, create_handoff, create_public_room, create_room, and 34 more.
It answered our last check on 24 October 2026 in 163 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.pingroom.io/api/agent/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.pingroom. Endpoint host: api.pingroom.io. ARD identifier: urn:air:io.pingroom:mcp:pingroom.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.