К содержанию
TelegaFirst

Для 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".

Вход, результат и права