Для AI-агентов: markdown этой страницы — /docs/mcp-broadcasts.mdиндекс документации — /llms.txt
MCP: broadcasts
Обновлено
Определения инструментов. Обновляйте tools/list после изменения прав. required_scopes: ALL.
create_broadcast
Create a rich broadcast draft in one call: give required `content` and optional structured `segment_filter`, schedule, delivery target, reply setting, TTL and button. This never sends. The declared rich-launch workflow has exactly four calls: create_broadcast, one get_content_draft poll that must return published `seqNum`, prepare_broadcast_launch, then (only after final human confirmation) execute_broadcast_launch. If that one poll is not published, stop: it is not a hidden retry budget.
Scopes (ALL): ["broadcasts:write"]. Risk: "write".
create_saved_segment
Save a named audience filter. Conditions use the canonical segment axes; recursive saved-segment references are rejected. This never sends a broadcast.
Scopes (ALL): ["broadcasts:write"]. Risk: "write".
delete_broadcast
Soft-delete a broadcast by `seqNum`. Idempotent (deleting an absent/already-deleted broadcast returns deleted:true).
Scopes (ALL): ["broadcasts:write"]. Risk: "destructive".
delete_saved_segment
Delete a named filter by seq_num and expectedVersion. Detach every broadcast reference first; referenced or stale deletion is rejected.
Scopes (ALL): ["broadcasts:write"]. Risk: "write".
describe_segment_axes
Describe the audience taxonomy you build a broadcast segment from: categories → axes → (for entity axes) their `{seq, title}` targets. Use it to discover the `kind`/`key`/`targetIds` that make up a SegmentFilter. Ids are per-tenant `seq_num` (never internal ids). 0-cost read.
Scopes (ALL): ["broadcasts:read"]. Risk: "read".
execute_broadcast_launch
Launch the reviewed broadcast from its matching prepared scenario. Call this tool only after final human confirmation of the prepared scenario.
Scopes (ALL): ["broadcasts:write"]. Risk: "money".
get_broadcast_status
Poll a broadcast by `seqNum`: returns its engine-driven status (draft/scheduled/sending/completed/failed/cancelled) and the latest execution progress (recipients/sent/failed), or null execution if it was never launched. Use after execute_broadcast_launch to watch a launch to completion. 0-cost read.
Scopes (ALL): ["broadcasts:read"]. Risk: "read".
get_saved_segment
Read a named filter and its current version by per-tenant seq_num.
Scopes (ALL): ["broadcasts:read"]. Risk: "read".
list_broadcasts
List the tenant broadcasts. Returns each with its `seqNum` (the id you pass to update/delete), engine-driven status (draft/scheduled/…/completed — read-only), audience description, schedule, TTL and optional button. 0-cost read.
Scopes (ALL): ["broadcasts:read"]. Risk: "read".
list_saved_segments
List named audience filters. seqNum is the per-tenant id you pass to get/update/delete. Follow nextAfterSeqNum to download the complete list.
Scopes (ALL): ["broadcasts:read"]. Risk: "read".
list_segment_targets
List the second-level targets of a segmentation `kind` (e.g. the products for `commerce`, the events for `event`) as `{seq, title}` rows, optionally filtered by a `search` substring. The `seq` is what you put in a selection's `targetIds`. 0-cost read.
Scopes (ALL): ["broadcasts:read"]. Risk: "read".
prepare_broadcast_launch
Prepare launch of a broadcast by its tenant-local `seq_num`. Review the immutable prepared scenario with a human before execution; this tool never sends a message or spends balance.
Scopes (ALL): ["broadcasts:write"]. Risk: "write".
preview_segment_reach
Estimate how many people a `filter` reaches BEFORE you attach it to a broadcast. Returns {valid, issues, reachable}: a malformed filter is a LOUD zero (valid:false + issues telling you what to fix), so you can tell "your filter is broken" from "the segment is genuinely empty". Build the filter from describe_segment_axes. 0-cost read.
Scopes (ALL): ["broadcasts:read"]. Risk: "read".
sample_segment_audience
Return a bounded SAMPLE of the people a `filter` resolves to, as per-tenant `seq_num` strings (contacts) — to spot-check a segment before sending. A malformed filter is rejected (fix it with preview_segment_reach first); this never returns a sample from a filter it could not parse. Scope: broadcasts:read. 0-cost read.
Scopes (ALL): ["broadcasts:read"]. Risk: "read".
update_broadcast
Update a broadcast draft by its `seqNum` (a partial patch — send only the fields you change; `status` is NOT settable here). Idempotent. Returns the updated broadcast. Errors NOT_FOUND if the seqNum does not exist for your tenant.
Scopes (ALL): ["broadcasts:write"]. Risk: "write".
update_saved_segment
Update a named filter by seq_num and expectedVersion. Existing draft broadcast references see the new filter until launch; launched executions retain their snapshot. A stale version is rejected.
Scopes (ALL): ["broadcasts:write"]. Risk: "write".