Skip to main content
Glama
zai-one

telegram-ads-mcp

by zai-one

Edit ad

edit_ad

Edit a Telegram ad's copy, CPM, active status, or budget without altering targeting. Activation and budget updates need confirm=true; clone_ad handles targeting changes.

Instructions

Edit only the fields passed: copy, CPM, pause/activate, budget_action+budget_amount or budget_target. budget_target is read back. Targeting is immutable, use clone_ad. Activate/budget need confirm=true.

Input Schema

NameRequiredDescriptionDefault
cpmNo
textNo
ad_idYes
mediaNo
titleNo
activeNo
buttonNo
confirmNo
pictureNo
scheduleNo
audience_idNo
clear_mediaNo
promote_urlNo
schedule_tzNo
daily_budgetNo
website_nameNo
activate_dateNo
budget_actionNo
budget_amountNo
budget_targetNo
views_per_userNo
deactivate_dateNo
conversion_eventNo
schedule_tz_customNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.6.0
    • addedInput schema / properties / budget_target
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Budget Target"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / confirm
      Added value: +{
      +  "default": false,
      +  "title": "Confirm",
      +  "type": "boolean"
      +}
  3. First observedv0.2.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower, yet the description still adds meaningful behavior: partial-update semantics ('only the fields passed'), the confirm=true guard on activate/budget, and that budget_target is read back rather than round-tripped. It omits what happens on failure, whether edits are reversible, and any rate limits, so not a 5.

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?

Three short sentences, each front-loaded with an actionable fact: scope, immutability/alternative, and the confirmation prerequisite. No filler, no restatement of the tool name, and the most important constraint (edit only what is passed) comes first.

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

Completeness3/5

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

For a 24-parameter mutation tool this is adequate but thin: an output schema exists so return values need no explanation, and annotations cover the safety profile, but the description documents only a small fraction of the parameters. An agent trying to edit media, scheduling, or audience-related fields gets no guidance on whether those are supported or what values are expected.

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

Parameters3/5

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

Schema coverage is 0% across 24 parameters, so the description carries the full burden and only partially meets it. It adds genuine semantics for the budget parameters (budget_action must pair with budget_amount, or use budget_target, which is read back) and maps 'pause/activate' to the active field. However, the majority of parameters (media, clear_media, title, button, schedule, schedule_tz, audience_id, promote_url, conversion_event, etc.) are never mentioned, leaving most of the schema opaque.

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

Purpose4/5

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

States a specific verb (edit) plus resource (ad) and enumerates the editable field groups (copy, CPM, pause/activate, budget), which is far more than a restatement of the name. It also explicitly carves out targeting as out of scope and points to the sibling `clone_ad`, so an agent can separate it from clone_ad/create_ad/delete_ad. It falls short of 5 only because it does not frame itself against get_ad or preview_ad, the other ad-level tools.

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

Usage Guidelines4/5

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

Gives concrete when-to-use rules: only pass the fields you want changed, targeting is immutable so use `clone_ad` instead, and activate/budget operations require confirm=true. That is a real routing condition plus a prerequisite. It does not say when *not* to use edit_ad versus launch_ad or create_ad, which keeps it from a 5.

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