Skip to main content
Glama

Update broadcast

update_broadcast
Idempotent

Replace a draft or scheduled broadcast's name, audience and content, all at once: every field is required. Read it with get_broadcast first and send back what should stay; filter_groups [] means every contact. Once a broadcast is sending it cannot be edited. The status never changes here (set_broadcast_status).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "broadcast_id": "<broadcast_id>",
      "name": "<name>",
      "filter_groups": "<filter_groups>",
      "subject": "<subject>",
      "preview_text": "<preview_text>",
      "html": "<html>",
      "markdown": "<markdown>",
      "template_id": "<template_id>"
    },
    "name": "update_broadcast"
  }
}

Input Schema

NameRequiredDescriptionDefault
htmlYesThe body as HTML. Null when you send markdown or a template_id.
nameYes
subjectYes
markdownYesThe body as markdown. Null when you send html or a template_id.
template_idYesCopy a template's subject, preview text and body; then subject, preview_text, html and markdown are null.
broadcast_idYes
preview_textYesThe line inbox previews show after the subject.
filter_groupsYesA contact matches when it passes every filter of at least one group. An empty list means every contact in the project.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavior beyond annotations: this is a full replace rather than a patch, every field is mandatory, and the status is never modified here. Annotations already declare idempotentHint=true and destructiveHint=false, consistent with a same-input-same-result overwrite of a draft; the description does not contradict them. The remaining gap is what happens on an invalid target (error vs. silent no-op) and what the call returns, which the absence of an output schema leaves unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the replace semantics and the all-fields-required rule before the procedure, the sentinel case, and the preconditions. No filler and no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-required-parameter mutation with no output schema, the definition covers the essential risks: it destroys unreferenced fields, it fails on already-sending broadcasts, and it won't change status. Only the error/failure surface and the response shape are left unaddressed, which is a minor residual gap given the annotation coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is moderate (63%) with descriptions on html, markdown, template_id, and filter_groups but not on name, subject, preview_text, or broadcast_id. The description compensates with the two facts an agent most needs: all eight fields are required, and an empty filter_groups means every contact in the project. It does not spell out the null-vs-populated interplay among html/markdown/template_id, but the schema already documents that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (replace) plus resource (broadcast) plus applicability scope (draft or scheduled), and enumerates the fields replaced (name, audience, content). It also implicitly separates itself from create_broadcast, get_broadcast, and set_broadcast_status, so an agent can route without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call get_broadcast first and send back the fields that should stay, warns that sending broadcasts cannot be edited, and names set_broadcast_status as the alternative for the one field this tool won't touch. When-to-use, when-not-to-use, and the alternative are all present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources