Request Send¶
Create a request, deliver to all available surfaces, and optionally poll for the user's response. Supports choice, boolean, freeform, and range response types. Without timeout_seconds: non-blocking (returns immediately, use request_poll later). With timeout_seconds: blocks until response or timeout (max recommended: 110s to stay within MCP call limits).
MCP name: request_send
Category: notifications
Mutates state (retry policy: manual)
Parameters¶
| Name | Type | Required | Description |
|---|---|---|---|
body |
str |
No | Request body/explanation |
callback |
dict |
No | Dispatch on response: {capability, params} |
callback_session_id |
str |
No | Resume this session on response |
choices |
list |
No | For choice type: [{key, label, description}] |
custom_template |
dict |
No | For custom type: surface-specific rendering data (e.g., {type: 'triage_clarify', presentation: ...}) |
expandable |
bool |
No | None=auto-detect, True=rich dashboard view, False=toast-only. |
interval_seconds |
int |
No | Seconds between polls (default: 3) |
number_range |
dict |
No | For range type: {min, max, step} |
priority |
str |
No | low, normal, high, urgent |
response_type |
str |
No | choice, boolean, freeform, range, custom |
source |
str |
No | Who is sending |
source_type |
str |
No | agent or programmatic |
surfaces |
list |
No | Target surfaces (e.g. ['telegram']). Default: all available. |
tags |
list |
No | Tags for filtering |
timeout_seconds |
int |
No | Poll timeout. Omit for non-blocking. Max recommended: 110s |
title |
str |
Yes | Request title |