# Pingroom MCP server

Source: https://glimind.com/server/mcp-registry%2Fio.pingroom%2Fpingroom
Registry id: `mcp-registry/io.pingroom/pingroom`
Status: live (checked 2026-10-27T17:04:02.063Z)

## Verdict

Pingroom MCP server answered 99.98% of Glimind's liveness checks over 30 days, better than 42% of MCP servers, with 975 ms median handshake and 6 outages in 90 days. Its agent-readiness grade is A (90/100) across 41 tools, costing an agent about 11,424 tokens to load. Checked every few minutes; no tool is ever called.

## Measurements (30 days)

| Metric | Value | Better than |
|---|---|---|
| Uptime, 30 days | 99.98% | 42% of MCP servers |
| Median handshake latency | 975 ms | 16% of MCP servers |
| p95 handshake latency | 3176 ms | — |
| Checks in 30 days | 5,078 | — |
| Outages, 90 days | 6 | — |
| Median recovery | 5 min | — |
| Agent-readiness score | 90/100 (A) | 69% of MCP servers |
| Tools | 41 | — |
| Tool-list size for an agent | ~11,424 tokens | 16% of MCP servers |
| Days observed | 29 | — |

## Install

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

Claude Code:

```sh
claude mcp add --transport http pingroom-mcp-server https://api.pingroom.io/api/agent/mcp
```

## Tools (41)

- `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 Pin
- `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 scr
- `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 check
- `cancel_question`: Withdraw a still-pending question you asked.
- `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, 
- `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
- `create_public_room`: Create a publicly discoverable room with a unique @handle. Counts toward the free-plan five-room cap.
- `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 r
- `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.
- `delete_attachment`: Delete an attachment this agent uploaded that is not yet claimed by a ping.
- `delete_webhook`: Delete an incoming webhook (by id) from a room the account owns.
- `disconnect`: Revoke this authenticated robot connection, including its access and refresh credentials and room memberships. Use only when the human explicitly requests logou
- `get_approval`: Fetch the current status of an approval request without blocking.
- `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 t
- `get_handoff`: Fetch the authoritative current state of one Handoff without blocking.
- `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
- `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.
- `get_question`: Fetch the current state of a question without blocking.
- `get_room`: Fetch a single room by its invite code, including members and quick actions.
- `join_room`: Join a room using its invite code. Include the password only if the room is protected.
- `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.
- `list_notifications`: List a bounded page of recent pings across approved rooms, newest first. Use page to continue while has_more is true.
- `list_questions`: List a bounded page of questions you asked, newest first. Optionally filter by state; use page while has_more is true.
- `list_quick_actions`: List the quick actions configured for a room.
- `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 
- `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.
- `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 ever
- `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
- `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.
- `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 need
- `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 
- `update_webhook`: Update an incoming webhook (by id) on a room the account owns — e.g. change its icon, title, message, or sound.
- `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 fil
- `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 expir
- `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.
- `wait_for_approval`: Long-poll an approval request until the human decides or it expires. Returns the status and, once decided, the chosen option.
- `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, succe
- `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 hu

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
