此 MCP 可以做什么
Sends mobile notifications, asks questions, requests approvals, and coordinates human handoffs through rooms and live status updates.
工具
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'prompt'], 'properties': {'ttl': {'type': 'integer', 'minimum': 1, 'description': 'Seconds the question stays open before it expires.'}, 'data': {'type': 'object', 'properties': {'location': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'label': {'type': 'string', 'maxLength': 100, 'description': 'Optional place name shown to the recipient.'}, 'address': {'type': 'string', 'maxLength': 255, 'description': 'Optional formatted street address.'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees.'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees.'}}, 'description': 'A shareable geographic location.', 'additionalProperties': False}}, 'description': 'Arbitrary structured context (max 25 keys / 8KB). Read surfaces return it after connector privacy filtering; do not put secrets in data. data.location is reserved for a shareable location.', 'maxProperties': 25, 'additionalProperties': True}, 'prompt': {'type': 'string', 'maxLength': 500, 'description': 'The question the person reads.'}, 'context': {'type': 'string', 'maxLength': 40, 'description': 'Optional secondary line, e.g. a build number.'}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['value', 'label'], 'properties': {'label': {'type': 'string', 'maxLength': 40, 'description': 'Button text shown to the person.'}, 'style': {'enum': ['primary', 'danger', 'default'], 'type': 'string', 'description': 'primary = affirmative (brand color), danger = destructive (red), default = quiet.'}, 'value': {'type': 'string', 'maxLength': 40, 'description': 'Stable token returned as the answer.'}}, 'additionalProperties': False}, 'maxItems': 4, 'minItems': 2, 'description': 'Answer options in display order. Omit for a default Approve/Deny.'}, 'reply_to': {'type': 'string', 'maxLength': 255, 'description': 'Optional routing pointer, echoed back unchanged.'}, 'text_input': {'type': 'object', 'properties': {'max_length': {'type': 'integer', 'maximum': 60, 'minimum': 1, 'description': 'Max characters (default 60).'}, 'placeholder': {'type': 'string', 'maxLength': 60, 'description': 'Hint shown in the reply field.'}}, 'description': 'Invite a typed answer (on its own, or alongside options). max_length is capped at 60.', 'additionalProperties': False}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'attachment_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 4, 'description': 'Ids of up to 4 uploaded attachments (see upload_attachment) to include. Uploading requires a Pro account.'}, 'correlation_id': {'type': 'string', 'maxLength': 255, 'description': 'Your own id, echoed back unchanged on read.'}, 'idempotency_key': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Stable key so a retried call cannot create a second one.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'message'], 'properties': {'data': {'type': 'object', 'properties': {'url': {'type': 'string', 'format': 'uri', 'maxLength': 2048, 'description': 'Reserved: an absolute http:// or https:// URL. Present turns the ping into a tappable link.'}, 'label': {'type': 'string', 'maxLength': 26, 'description': 'Reserved: short caption shown with the link ping.'}, 'location': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'label': {'type': 'string', 'maxLength': 100, 'description': 'Optional place name shown to the recipient.'}, 'address': {'type': 'string', 'maxLength': 255, 'description': 'Optional formatted street address.'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees.'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees.'}}, 'description': 'A shareable geographic location.', 'additionalProperties': False}, 'button_label': {'type': 'string', 'maxLength': 26, 'description': 'Reserved: label for the link button rendered for data.url.'}}, 'description': 'Arbitrary structured context (max 25 keys / 8KB). Read surfaces return it after connector privacy filtering; do not put secrets in data. data.location is reserved for a shareable location, and data.url + data.button_label are reserved for a tappable link ping.', 'maxProperties': 25, 'additionalProperties': True}, 'title': {'type': 'string', 'maxLength': 40, 'description': 'Optional headline. Defaults to the room name.'}, 'message': {'type': 'string', 'maxLength': 160, 'description': 'Ping body text (max 120 characters in private rooms, 160 in public rooms).'}, 'ack_mode': {'enum': ['any', 'all'], 'type': 'string', 'description': 'With requires_ack: any (default) resolves on the first confirmation; all waits for every original eligible recipient. Read action_state.confirmed_count and required_count for progress.'}, 'reply_to': {'type': 'string', 'maxLength': 255, 'description': 'Id of the ping this one answers (notification id or correlation id).'}, 'is_urgent': {'type': 'boolean', 'description': 'Deliver time-sensitive so the ping breaks through Focus / Do Not Disturb and reaches members who muted the room or you (a block still wins). Independent of requires_ack: urgent affects delivery only and asks nothing of the recipient.'}, 'action_icon': {'type': 'string', 'maxLength': 50, 'description': 'Optional emoji shown with the ping.'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'requires_ack': {'type': 'boolean', 'description': 'Keep this ping open until its confirmation rule is met, and show it as a lock-screen card with an Acknowledge button. Does not raise the interruption level on its own — combine with is_urgent for an ack that also breaks through Focus.'}, 'action_number': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Optional quick-action slot to attribute the ping to.'}, 'attachment_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 4, 'description': 'Ids of up to 4 uploaded attachments (see upload_attachment) to include. Uploading requires a Pro account.'}, 'correlation_id': {'type': 'string', 'maxLength': 255, 'description': 'Your own id, echoed back unchanged on read.'}, 'ack_timeout_seconds': {'type': 'integer', 'maximum': 86400, 'minimum': 60, 'description': 'Optional acknowledgement deadline in seconds.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'data': {'type': 'object', 'description': 'Structured context after connector privacy filtering. Credential, account, and direct-contact fields are removed.', 'maxProperties': 25, 'additionalProperties': True}, 'room': {'type': 'object'}, 'state': {'type': 'string'}, 'sender': {'type': 'object'}, 'status': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'question': {}, 'attachments': {'type': 'array'}, 'action_state': {'type': 'object'}, 'origin_agent': {'type': 'object', 'description': 'Present when a connected agent originated the ping: its handle and display name.'}, 'correlation_id': {'type': ['string', 'null']}, 'delivery_state': {'type': 'string'}, 'notification_id': {'type': 'string', 'format': 'uuid'}}, 'description': 'A privacy-minimized, chainable PingRoom notification result.', 'additionalProperties': True}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['question_id'], 'properties': {'question_id': {'type': 'string', 'format': 'uuid', 'description': 'Question id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['status', 'handle', 'owner'], 'properties': {'owner': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'pattern': '^[A-Z0-9]{12}$', 'description': 'The human public User ID shown in PingRoom, not an internal database identifier.'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'handle': {'type': 'string'}, 'status': {'enum': ['active', 'revoked'], 'type': 'string'}}, 'description': 'The authenticated robot and its owner public User ID, for account verification.', 'additionalProperties': True}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['kind', 'prompt', 'audience'], 'properties': {'data': {'type': 'object', 'description': 'Structured context returned on read surfaces after connector privacy filtering. Do not put secrets in data.'}, 'kind': {'enum': ['ack', 'question'], 'type': 'string', 'description': 'ack asks the human to acknowledge; question asks them to choose an option.'}, 'prompt': {'type': 'string', 'maxLength': 500, 'description': 'The work/request shown to the human.'}, 'options': {'type': 'array', 'items': {'oneOf': [{'type': 'string', 'maxLength': 40}, {'type': 'object', 'required': ['value', 'label'], 'properties': {'label': {'type': 'string', 'maxLength': 40}, 'style': {'enum': ['primary', 'danger', 'default'], 'type': 'string'}, 'value': {'type': 'string', 'maxLength': 40}}, 'additionalProperties': False}]}, 'maxItems': 4, 'minItems': 2, 'description': 'Required for question and forbidden for ack. Each item may be a label string or a structured option.'}, 'urgency': {'enum': ['active', 'passive'], 'type': 'string', 'description': 'Notification interruption level. Defaults to active.'}, 'audience': {'type': 'object', 'required': ['type', 'user_id'], 'properties': {'type': {'enum': ['direct'], 'type': 'string'}, 'user_id': {'enum': ['me'], 'type': 'string', 'description': 'The authorizing human, expressed as the literal value "me".'}}, 'additionalProperties': False}, 'reply_to': {'type': 'string', 'maxLength': 255, 'description': 'Optional routing pointer.'}, 'expires_in': {'type': 'integer', 'description': 'Seconds before the handoff expires; the server clamps this to its safe range.'}, 'correlation_id': {'type': 'string', 'maxLength': 255, 'description': 'Your own stable correlation id.'}, 'idempotency_key': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Stable key for at-most-once creation across both Ack and Question kinds.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['name', 'icon', 'color', 'handle'], 'properties': {'icon': {'type': 'string', 'description': 'A v3 room-icon catalog id, e.g. "bell". Call list_room_icons to discover the valid ids.'}, 'name': {'type': 'string', 'maxLength': 24, 'description': 'Room display name.'}, 'color': {'type': 'string', 'description': 'Hex color, e.g. "#e33122".'}, 'handle': {'type': 'string', 'pattern': '^[a-z0-9_]{3,20}$', 'description': 'Globally unique @handle (vanity URL): lowercase letters, digits, underscores.'}, 'category': {'type': 'string', 'maxLength': 100, 'description': 'Discovery category.'}, 'show_owner': {'type': 'boolean', 'description': 'Whether the owner is shown publicly. Defaults to true.'}, 'description': {'type': 'string', 'maxLength': 120, 'description': 'Short room description shown in public discovery.'}, 'location_name': {'type': 'string', 'maxLength': 160, 'description': 'Place name shown in nearby discovery. Send all three location fields or none.'}, 'location_latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees. Send all three location fields or none.'}, 'location_longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees. Send all three location fields or none.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['name', 'icon', 'color'], 'properties': {'icon': {'type': 'string', 'description': 'A v3 room-icon catalog id, e.g. "bell". Call list_room_icons to discover the valid ids.'}, 'name': {'type': 'string', 'maxLength': 24, 'description': 'Room display name.'}, 'color': {'type': 'string', 'description': 'Hex color, e.g. "#e33122".'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'name'], 'properties': {'icon': {'type': 'string', 'description': 'A v3 room-icon catalog id, e.g. "bell". Call list_room_icons to discover the valid ids.'}, 'name': {'type': 'string', 'maxLength': 100, 'description': 'Webhook name (shown to the owner).'}, 'color': {'type': 'string', 'description': 'Hex color, e.g. "#e33122".'}, 'sound': {'type': 'string', 'description': 'Canonical sound id, e.g. "ting". Omit for the room default.'}, 'title': {'type': 'string', 'maxLength': 40, 'description': 'Optional push title used when the webhook fires.'}, 'enabled': {'type': 'boolean', 'description': 'Whether the webhook is active. Defaults to true.'}, 'message': {'type': 'string', 'maxLength': 160, 'description': 'Optional default push body (max 120 characters in private rooms, 160 in public rooms).'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'action_number': {'type': ['integer', 'null'], 'maximum': 16, 'minimum': 1, 'description': 'Quick-action slot whose label, sound, and acknowledgement preset fires use. Omit or pass null for an independent webhook with no Quick Ping preset.'}, 'cooldown_seconds': {'type': 'integer', 'maximum': 60, 'minimum': 0, 'description': 'Minimum seconds between fires. Defaults to 5.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'properties': {'id': {'type': ['string', 'null'], 'format': 'uuid'}, 'icon': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}, 'color': {'type': ['string', 'null']}, 'sound': {'type': ['string', 'null']}, 'title': {'type': ['string', 'null']}, 'enabled': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'webhook_url': {'type': ['string', 'null']}, 'action_number': {'type': ['integer', 'null']}, 'cooldown_seconds': {'type': ['integer', 'null']}}, 'description': 'An incoming webhook. `webhook_url` embeds the secret — treat it as a credential.', 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['attachment_id'], 'properties': {'attachment_id': {'type': 'string', 'format': 'uuid', 'description': 'Attachment id returned by upload_attachment.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'webhook_id'], 'properties': {'webhook_id': {'type': 'string', 'description': 'Webhook id (from list_webhooks or create_webhook).'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['status', 'handle', 'owner'], 'properties': {'owner': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'pattern': '^[A-Z0-9]{12}$', 'description': 'The human public User ID shown in PingRoom, not an internal database identifier.'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'handle': {'type': 'string'}, 'status': {'enum': ['active', 'revoked'], 'type': 'string'}}, 'description': 'The authenticated robot and its owner public User ID, for account verification.', 'additionalProperties': True}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['approval_id'], 'properties': {'approval_id': {'type': 'string', 'format': 'uuid', 'description': 'Approval request id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['attachment_id'], 'properties': {'attachment_id': {'type': 'string', 'format': 'uuid', 'description': 'Attachment id returned by upload_attachment.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['handoff_id'], 'properties': {'handoff_id': {'type': 'string', 'format': 'uuid', 'description': 'Handoff id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'correlation_id'], 'properties': {'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'correlation_id': {'type': 'string', 'maxLength': 255, 'description': 'The stream key used when the stream was started.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['notification_id'], 'properties': {'notification_id': {'type': 'string', 'format': 'uuid', 'description': 'Room notification id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'data': {'type': 'object', 'description': 'Structured context after connector privacy filtering. Credential, account, and direct-contact fields are removed.', 'maxProperties': 25, 'additionalProperties': True}, 'room': {'type': 'object'}, 'state': {'type': 'string'}, 'sender': {'type': 'object'}, 'status': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'question': {}, 'attachments': {'type': 'array'}, 'action_state': {'type': 'object'}, 'origin_agent': {'type': 'object', 'description': 'Present when a connected agent originated the ping: its handle and display name.'}, 'correlation_id': {'type': ['string', 'null']}, 'delivery_state': {'type': 'string'}, 'notification_id': {'type': 'string', 'format': 'uuid'}}, 'description': 'A privacy-minimized, chainable PingRoom notification result.', 'additionalProperties': True}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['question_id'], 'properties': {'question_id': {'type': 'string', 'format': 'uuid', 'description': 'Question id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code'], 'properties': {'invite_code': {'type': 'string', 'description': 'Room invite code.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code'], 'properties': {'password': {'type': 'string', 'description': 'Only required for password-protected rooms.'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Page number, newest first.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'Handoffs per page. Defaults to 10; maximum 25.'}, 'state': {'enum': ['open', 'all'], 'type': 'string', 'description': 'Filter to open Handoffs or include all states.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['handoffs', 'page', 'per_page', 'has_more'], 'properties': {'page': {'type': 'integer'}, 'handoffs': {'type': 'array', 'items': {'type': 'object'}}, 'has_more': {'type': 'boolean'}, 'per_page': {'type': 'integer'}}, 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {'date': {'type': 'string', 'format': 'date', 'description': 'Only pings created on this calendar date, e.g. "2026-08-25".'}, 'page': {'type': 'integer', 'minimum': 1, 'description': 'Page number, newest first.'}, 'type': {'enum': ['received', 'sent'], 'type': 'string', 'description': 'Narrow to pings you received or pings you sent. Omit for both.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'Pings per page. Defaults to 10; maximum 25.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'properties': {'page': {'type': ['integer', 'null']}, 'total': {'type': ['integer', 'null']}, 'has_more': {'type': 'boolean'}, 'per_page': {'type': ['integer', 'null']}, 'last_page': {'type': ['integer', 'null']}, 'notifications': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'data': {'type': 'object', 'description': 'Structured context after connector privacy filtering. Credential, account, and direct-contact fields are removed.', 'maxProperties': 25, 'additionalProperties': True}, 'room': {'type': 'object'}, 'state': {'type': 'string'}, 'sender': {'type': 'object'}, 'status': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'question': {}, 'attachments': {'type': 'array'}, 'action_state': {'type': 'object'}, 'origin_agent': {'type': 'object', 'description': 'Present when a connected agent originated the ping: its handle and display name.'}, 'correlation_id': {'type': ['string', 'null']}, 'delivery_state': {'type': 'string'}, 'notification_id': {'type': 'string', 'format': 'uuid'}}, 'description': 'A privacy-minimized, chainable PingRoom notification result.', 'additionalProperties': True}}}, 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Page number, newest first.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'Questions per page. Defaults to 10; maximum 25.'}, 'state': {'enum': ['pending', 'answered', 'expired', 'cancelled', 'all'], 'type': 'string', 'description': 'Filter by state. Omit for all.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['questions', 'page', 'per_page', 'has_more'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': 'boolean'}, 'per_page': {'type': 'integer'}, 'questions': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code'], 'properties': {'invite_code': {'type': 'string', 'description': 'Room invite code.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'properties': {'icon': {'type': ['string', 'null']}, 'label': {'type': ['string', 'null']}, 'input_type': {'enum': ['none', 'location', 'link', 'file', 'photo', 'pdf'], 'type': 'string'}, 'requires_ack': {'type': 'boolean'}, 'action_number': {'type': ['integer', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'properties': {'icon': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}, 'type': {'type': ['string', 'null']}, 'color': {'type': ['string', 'null']}, 'muted': {'type': 'boolean'}, 'paused': {'type': 'boolean'}, 'is_public': {'type': 'boolean'}, 'description': {'type': ['string', 'null']}, 'invite_code': {'type': ['string', 'null']}, 'quick_actions': {'type': 'array', 'items': {'type': 'object', 'properties': {'icon': {'type': ['string', 'null']}, 'label': {'type': ['string', 'null']}, 'input_type': {'enum': ['none', 'location', 'link', 'file', 'photo', 'pdf'], 'type': 'string'}, 'requires_ack': {'type': 'boolean'}, 'action_number': {'type': ['integer', 'null']}}, 'additionalProperties': False}}, 'quick_action_count': {'type': 'integer', 'maximum': 16, 'minimum': 0}, 'quick_action_limit': {'enum': [4, 16], 'type': 'integer'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code'], 'properties': {'invite_code': {'type': 'string', 'description': 'Room invite code.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': ['string', 'null'], 'format': 'uuid'}, 'icon': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}, 'color': {'type': ['string', 'null']}, 'sound': {'type': ['string', 'null']}, 'title': {'type': ['string', 'null']}, 'enabled': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'webhook_url': {'type': ['string', 'null']}, 'action_number': {'type': ['integer', 'null']}, 'cooldown_seconds': {'type': ['integer', 'null']}}, 'description': 'An incoming webhook. `webhook_url` embeds the secret — treat it as a credential.', 'additionalProperties': False}}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'correlation_id', 'live_status'], 'properties': {'data': {'type': 'object', 'description': 'Arbitrary structured context (max 25 keys / 8KB), returned on read surfaces after connector privacy filtering. Do not put secrets in data.'}, 'title': {'type': 'string', 'maxLength': 40, 'description': "Card title. Defaults to the selected quick action's label."}, 'action': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Quick-action slot to attribute the stream to (supplies the icon and sound).'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'live_status': {'type': 'object', 'required': ['state'], 'properties': {'left': {'type': 'object', 'required': ['label', 'value'], 'properties': {'label': {'type': 'string', 'maxLength': 24}, 'value': {'type': 'string', 'maxLength': 24}}, 'description': 'Left side {label,value} for the matchup template.', 'additionalProperties': False}, 'right': {'type': 'object', 'required': ['label', 'value'], 'properties': {'label': {'type': 'string', 'maxLength': 24}, 'value': {'type': 'string', 'maxLength': 24}}, 'description': 'Right side {label,value} for the matchup template.', 'additionalProperties': False}, 'state': {'enum': ['running', 'done', 'failed'], 'type': 'string', 'description': 'running keeps the card live; done/failed end it with one completion alert.'}, 'steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 8, 'minItems': 2, 'description': 'Step labels. Required on the first ping of a steps stream; immutable afterwards.'}, 'center': {'type': 'string', 'maxLength': 40, 'description': 'Center score/clock for the matchup template.'}, 'eta_at': {'type': 'integer', 'description': 'Epoch seconds; renders a live ETA on status/progress.'}, 'prompt': {'type': 'string', 'maxLength': 256, 'description': 'The ask, for the question template.'}, 'message': {'type': 'string', 'maxLength': 256, 'description': "The card's live message line."}, 'metrics': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'label': {'type': 'string', 'maxLength': 24}, 'value': {'type': 'string', 'maxLength': 24}}, 'additionalProperties': False}, 'maxItems': 3, 'description': 'Up to 3 {label,value} counters for the metrics template.'}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['value', 'label'], 'properties': {'label': {'type': 'string', 'maxLength': 40}, 'value': {'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'maxItems': 4, 'description': 'Up to 4 {value,label} choices for the question template.'}, 'category': {'enum': ['status', 'steps', 'alert'], 'type': 'string', 'description': 'Legacy rendering category; prefer template. "alert" has NO template equivalent and is the only way to start a stream time-sensitive (breaks through Focus). Fixed at stream creation.'}, 'progress': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Progress bar / Dynamic Island gauge, 0..1.'}, 'template': {'enum': ['status', 'steps', 'progress', 'metrics', 'countdown', 'question', 'matchup'], 'type': 'string', 'description': 'Which layout the OS renders. Fixed at stream creation.'}, 'deadline_at': {'type': 'integer', 'description': 'Epoch seconds the countdown template counts down to.'}, 'current_step': {'type': 'integer', 'maximum': 8, 'minimum': 0, 'description': 'Index into steps; the only mutable steps field.'}, 'accent_override': {'type': 'string', 'description': 'Hex #rrggbb; a semantic accent for one frame (e.g. deadline red).'}, 'duration_seconds': {'type': 'integer', 'maximum': 4102444800, 'minimum': 1, 'description': 'Original countdown duration in seconds. Set on creation; preserved through updates and completion.'}}, 'description': "The live card's state. Only state is required.", 'additionalProperties': False}, 'requires_ack': {'type': 'boolean', 'description': 'Add an Acknowledge button; the first eligible member to tap resolves it for everyone. Does not raise the interruption level — set category "alert" for a time-sensitive start.'}, 'correlation_id': {'type': 'string', 'maxLength': 255, 'description': 'The stream key. Reuse it on every ping of the same stream.'}, 'ack_timeout_seconds': {'type': 'integer', 'maximum': 86400, 'minimum': 1, 'description': 'Optional acknowledgement deadline in seconds.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'pattern': '^[ \\t\\r\\n]*[A-Za-z0-9]{12}[ \\t\\r\\n]*$', 'description': 'The 12-letter/digit gift or promo code. Case-insensitive; surrounding whitespace is trimmed.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['message', 'kind', 'reward_days', 'package', 'lifetime', 'plan', 'plan_expires_at'], 'properties': {'kind': {'enum': ['gift', 'redeem'], 'type': 'string'}, 'plan': {'enum': ['pro'], 'type': 'string'}, 'message': {'type': 'string'}, 'package': {'enum': ['monthly', 'yearly', 'lifetime', None], 'type': ['string', 'null']}, 'lifetime': {'type': 'boolean'}, 'reward_days': {'type': ['integer', 'null']}, 'plan_expires_at': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'question'], 'properties': {'ttl': {'type': 'integer', 'minimum': 1, 'description': 'Seconds the request stays open before it expires.'}, 'data': {'type': 'object', 'description': 'Arbitrary structured context, returned on reads after connector privacy filtering. Do not put secrets in data.'}, 'title': {'type': 'string', 'maxLength': 40, 'description': 'Optional short title for the request.'}, 'options': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 4, 'minItems': 2, 'description': 'Answers to choose between. Defaults to ["approve","deny"].'}, 'question': {'type': 'string', 'maxLength': 500, 'description': 'What you want the human to decide on.'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'correlation_id': {'type': 'string', 'maxLength': 255, 'description': 'Your own id, echoed back unchanged on read.'}, 'idempotency_key': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Stable key so a retried call cannot create a second one.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['avatar_id'], 'properties': {'avatar_id': {'type': 'string', 'description': 'Bot avatar id, e.g. "bots-3".'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'action_number'], 'properties': {'data': {'type': 'object', 'properties': {'url': {'type': 'string', 'format': 'uri', 'maxLength': 2048, 'description': 'An absolute http:// or https:// URL.'}, 'location': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'label': {'type': 'string', 'maxLength': 100, 'description': 'Optional place name shown to the recipient.'}, 'address': {'type': 'string', 'maxLength': 255, 'description': 'Optional formatted street address.'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees.'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees.'}}, 'description': 'A shareable geographic location.', 'additionalProperties': False}}, 'description': 'The detail this press carries. data.location satisfies an action whose input_type is location; data.url satisfies link. Only these two keys are accepted on a trigger.', 'additionalProperties': False}, 'ack_mode': {'enum': ['any', 'all'], 'type': 'string', 'description': 'Confirmation rule for this press: any (default) resolves on the first confirmation; all waits for every original eligible recipient. Applies only when this press requires acknowledgement.'}, 'is_urgent': {'type': 'boolean', 'description': "Deliver this one press time-sensitive so it breaks through Focus / Do Not Disturb and reaches members who muted the room or you (a block still wins). Send-time only — the action's saved configuration is unchanged."}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'requires_ack': {'type': 'boolean', 'description': "Keep this one press open until an eligible recipient acknowledges it. Send-time only and elevating only: true adds the acknowledgement to an action that has none, false never disables the action's stored ack policy."}, 'action_number': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Quick-action slot number (1–16). Slots 5–16 require the room owner to have Pro.'}, 'attachment_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 4, 'description': "Ids of up to 4 uploaded attachments (see upload_attachment). Required when the action's input_type is file, photo (jpg/png only) or pdf (pdf only); a mismatched type is a 422 quick_action_input_type."}, 'trigger_source': {'enum': ['manual', 'location'], 'type': 'string', 'description': 'Defaults to "manual". Only these two are client-settable — "webhook" and "system" are stamped server-side and are rejected here.'}, 'quick_action_id': {'type': 'string', 'format': 'uuid', 'description': 'Optional id of the action as read from list_quick_actions. When the slot has since moved pages the press is refused with 409 quick_action_layout_changed instead of firing the wrong Ping.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'data': {'type': 'object', 'description': 'Structured context after connector privacy filtering. Credential, account, and direct-contact fields are removed.', 'maxProperties': 25, 'additionalProperties': True}, 'room': {'type': 'object'}, 'state': {'type': 'string'}, 'sender': {'type': 'object'}, 'status': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'question': {}, 'attachments': {'type': 'array'}, 'action_state': {'type': 'object'}, 'origin_agent': {'type': 'object', 'description': 'Present when a connected agent originated the ping: its handle and display name.'}, 'correlation_id': {'type': ['string', 'null']}, 'delivery_state': {'type': 'string'}, 'notification_id': {'type': 'string', 'format': 'uuid'}}, 'description': 'A privacy-minimized, chainable PingRoom notification result.', 'additionalProperties': True}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'action_number', 'label', 'icon'], 'properties': {'icon': {'type': 'string', 'description': 'Emoji or icon id.'}, 'label': {'type': 'string', 'maxLength': 255, 'description': 'Button label. Must be sent, but may be empty ("") — a Ping can be named by its emoji alone, and clients render an untitled one as just the emoji.'}, 'sound': {'type': 'string', 'description': 'Canonical sound id, e.g. "ting". Omit for the room default.'}, 'input_type': {'enum': ['none', 'location', 'link', 'file', 'photo', 'pdf'], 'type': 'string', 'description': 'Detail every press of this action must carry: none (default), location (data.location), link (data.url), file (any attachment), photo (jpg/png attachment) or pdf (pdf attachment). A press without it is a 422 quick_action_input_required.'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'requires_ack': {'type': 'boolean', 'description': 'Whether pings from this action remain open until one eligible recipient acknowledges them.'}, 'action_number': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Quick-action slot number (1–16). Slots 5–16 require the room owner to have Pro.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'actions'], 'properties': {'actions': {'type': 'array', 'items': {'type': 'object', 'required': ['action_number', 'label', 'icon'], 'properties': {'icon': {'type': 'string', 'description': 'Emoji or icon id.'}, 'label': {'type': 'string', 'maxLength': 255, 'description': 'Button label. Must be sent, but may be empty ("") — a Ping can be named by its emoji alone, and clients render an untitled one as just the emoji.'}, 'sound': {'type': 'string', 'description': 'Canonical sound id, e.g. "ting". Omit for the room default.'}, 'input_type': {'enum': ['none', 'location', 'link', 'file', 'photo', 'pdf'], 'type': 'string', 'description': 'Detail every press of this action must carry: none (default), location (data.location), link (data.url), file (any attachment), photo (jpg/png attachment) or pdf (pdf attachment). A press without it is a 422 quick_action_input_required.'}, 'requires_ack': {'type': 'boolean', 'description': 'Whether pings from this action remain open until one eligible recipient acknowledges them.'}, 'action_number': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Quick-action slot number (1–16). Slots 5–16 require the room owner to have Pro.'}}, 'additionalProperties': False}, 'maxItems': 16, 'minItems': 1, 'description': 'Add new pages as complete groups of four in order (5–8, 9–12, 13–16); the room owner needs Pro. The slots to write. Each action_number must appear at most once. Slots omitted here keep their current configuration — nothing in this tool deletes an action.'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['invite_code', 'webhook_id'], 'properties': {'icon': {'type': 'string', 'description': 'A v3 room-icon catalog id, e.g. "bell". Call list_room_icons to discover the valid ids.'}, 'name': {'type': 'string', 'maxLength': 100, 'description': 'Webhook name (shown to the owner).'}, 'color': {'type': 'string', 'description': 'Hex color, e.g. "#e33122".'}, 'sound': {'type': 'string', 'description': 'Canonical sound id, e.g. "ting".'}, 'title': {'type': 'string', 'maxLength': 40, 'description': 'Push title used when the webhook fires.'}, 'enabled': {'type': 'boolean', 'description': 'Whether the webhook is active.'}, 'message': {'type': 'string', 'maxLength': 160, 'description': 'Default push body (max 120 characters in private rooms, 160 in public rooms).'}, 'webhook_id': {'type': 'string', 'description': 'Webhook id (from list_webhooks or create_webhook).'}, 'invite_code': {'type': 'string', 'description': 'Room invite code.'}, 'action_number': {'type': ['integer', 'null'], 'maximum': 16, 'minimum': 1, 'description': 'Quick-action slot whose label, sound, and acknowledgement preset fires use. Pass null to clear the preset and make the webhook independent.'}, 'cooldown_seconds': {'type': 'integer', 'maximum': 60, 'minimum': 0, 'description': 'Minimum seconds between fires.'}, 'regenerate_secret': {'type': 'boolean', 'description': 'Rotate the secret trigger URL.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'properties': {'id': {'type': ['string', 'null'], 'format': 'uuid'}, 'icon': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}, 'color': {'type': ['string', 'null']}, 'sound': {'type': ['string', 'null']}, 'title': {'type': ['string', 'null']}, 'enabled': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'webhook_url': {'type': ['string', 'null']}, 'action_number': {'type': ['integer', 'null']}, 'cooldown_seconds': {'type': ['integer', 'null']}}, 'description': 'An incoming webhook. `webhook_url` embeds the secret — treat it as a credential.', 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['filename', 'content_base64'], 'properties': {'filename': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'File name including extension, e.g. report.md.'}, 'mime_type': {'type': 'string', 'maxLength': 100, 'description': 'Optional MIME type, e.g. text/markdown. Defaults from the filename extension.'}, 'content_base64': {'type': 'string', 'maxLength': 124000, 'minLength': 1, 'description': 'Base64-encoded file bytes (standard alphabet, padding optional).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['notification_id'], 'properties': {'timeout': {'type': 'integer', 'maximum': 30, 'minimum': 0, 'description': 'Seconds to hold the request open. Use 0 for an immediate authoritative state read.'}, 'notification_id': {'type': 'string', 'format': 'uuid', 'description': 'Room notification id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'data': {'type': 'object', 'description': 'Structured context after connector privacy filtering. Credential, account, and direct-contact fields are removed.', 'maxProperties': 25, 'additionalProperties': True}, 'room': {'type': 'object'}, 'state': {'type': 'string'}, 'sender': {'type': 'object'}, 'status': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'question': {}, 'attachments': {'type': 'array'}, 'action_state': {'type': 'object'}, 'origin_agent': {'type': 'object', 'description': 'Present when a connected agent originated the ping: its handle and display name.'}, 'correlation_id': {'type': ['string', 'null']}, 'delivery_state': {'type': 'string'}, 'notification_id': {'type': 'string', 'format': 'uuid'}}, 'description': 'A privacy-minimized, chainable PingRoom notification result.', 'additionalProperties': True}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['question_id'], 'properties': {'timeout': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Seconds to hold the request open (server-capped).'}, 'question_id': {'type': 'string', 'format': 'uuid', 'description': 'Question id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['approval_id'], 'properties': {'timeout': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Seconds to hold the request open (server-capped).'}, 'approval_id': {'type': 'string', 'format': 'uuid', 'description': 'Approval request id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['handoff_id'], 'properties': {'timeout': {'type': 'integer', 'maximum': 25, 'minimum': 0, 'description': 'Seconds to hold the request open; use 0 for an immediate state read.'}, 'handoff_id': {'type': 'string', 'format': 'uuid', 'description': 'Handoff id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'description': 'Purpose-built PingRoom result with credential and account fields removed.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {'after': {'type': 'string', 'format': 'uuid', 'description': 'Cursor from the previous call; omit to get the current head.'}, 'timeout': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Seconds to hold the request open (server-capped).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'properties': {'cursor': {'type': ['string', 'null'], 'format': 'uuid'}, 'notifications': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'data': {'type': 'object', 'description': 'Structured context after connector privacy filtering. Credential, account, and direct-contact fields are removed.', 'maxProperties': 25, 'additionalProperties': True}, 'room': {'type': 'object'}, 'state': {'type': 'string'}, 'sender': {'type': 'object'}, 'status': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'question': {}, 'attachments': {'type': 'array'}, 'action_state': {'type': 'object'}, 'origin_agent': {'type': 'object', 'description': 'Present when a connected agent originated the ping: its handle and display name.'}, 'correlation_id': {'type': ['string', 'null']}, 'delivery_state': {'type': 'string'}, 'notification_id': {'type': 'string', 'format': 'uuid'}}, 'description': 'A privacy-minimized, chainable PingRoom notification result.', 'additionalProperties': True}}}, 'additionalProperties': False}}, 'additionalProperties': False}
近期工具变更
类似的 MCP 服务器
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…
mu
Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact manage…
Agent Commons
Provides rooms, threads, messaging, file sharing, invitations, subscriptions, search, and resumable events for agent collaboratio…
Dock
Provides collaborative workspaces with tables, documents, HTML surfaces, files, formulas, comments, activity tracking, agent mess…
agendaforge
Manages events, agendas, sessions, speakers, attendees, sponsors, forms, contacts, email templates, approvals, and organizer work…
Kythene
Provides shared team memory, collections, wikis, artifacts, comments, approvals, review workflows, presence, and controlled shari…
northreach
Supports direct agent questions and answers, shared memories, broadcasts, polls, compute jobs, governance, and persistent network…
lyra-mcp-server
Searches Lyra profiles and supports contact management, profile information, gift recommendations, calendar availability, group o…