# MCP: broadcasts

Source: <https://telegafirst.com/docs/mcp-broadcasts>
Locale: ru
releaseGitSha: 0bb11ef116e17ec64c802d5476eaff442e53d252
sourceContentDigest: f857bc58d1c271c6b4274c871fd06f8eb7fa35cf1cb8f4431881ec1657453d86
Version: 9

# 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-create-broadcast)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-create-saved-segment)

## delete\_broadcast

Soft-delete a broadcast by \`seqNum\`. Idempotent (deleting an absent/already-deleted broadcast returns deleted:true).

Scopes (ALL): \["broadcasts:write"]. Risk: "destructive".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-delete-broadcast)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-delete-saved-segment)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-describe-segment-axes)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-execute-broadcast-launch)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-get-broadcast-status)

## get\_saved\_segment

Read a named filter and its current version by per-tenant seq\_num.

Scopes (ALL): \["broadcasts:read"]. Risk: "read".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-get-saved-segment)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-list-broadcasts)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-list-saved-segments)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-list-segment-targets)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-prepare-broadcast-launch)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-preview-segment-reach)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-sample-segment-audience)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-update-broadcast)

## 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".

[Вход, результат и права](https://telegafirst.com/docs/mcp-tool-update-saved-segment)
