Skip to main content
Glama
zai-one

telegram-ads-mcp

by zai-one

Launch ad (on_hold)

launch_ad

Create a Telegram ad on hold with budget and send it to review without activating it. Use for new ad campaigns before full targeting and final approval.

Instructions

Create on_hold, add budget (default 1 Gram), send to review; never activates. Use for new ads; full targeting via create_ad. Spends: confirm=true unless gate=open. Returns per-step results.

Input Schema

NameRequiredDescriptionDefault
cpmYes
botsNo
textNo
langsNo
mediaNo
titleYes
budgetNo1
topicsNo
confirmNo
channelsNo
countriesNo
locationsNo
user_langsNo
audience_idNo
promote_urlYes
skip_reviewNo
target_typeNochannels
user_topicsNo
daily_budgetNo0
exclude_cryptoNo
exclude_topicsNo
search_queriesNo
exclude_politicNo
exclude_channelsNo
exclude_user_topicsNo
exclude_user_channelsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.3.0
    • addedInput schema / properties / exclude_channels
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Exclude Channels"
      +}
    • addedInput schema / properties / exclude_crypto
      Added value: +{
      +  "default": false,
      +  "title": "Exclude Crypto",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / exclude_politic
      Added value: +{
      +  "default": false,
      +  "title": "Exclude Politic",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / exclude_topics
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Exclude Topics"
      +}
    • addedInput schema / properties / exclude_user_channels
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Exclude User Channels"
      +}
    • addedInput schema / properties / exclude_user_topics
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Exclude User Topics"
      +}
    • addedInput schema / properties / langs
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Langs"
      +}
    • addedInput schema / properties / locations
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Locations"
      +}
    • addedInput schema / properties / topics
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Topics"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / confirm
      Added value: +{
      +  "default": false,
      +  "title": "Confirm",
      +  "type": "boolean"
      +}
  3. First observedv0.2.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish write (readOnly=false), non-destructive, non-idempotent, open-world behavior. The description adds genuinely non-obvious traits: the ad never activates (stays on_hold), it goes to review, and it carries a spend-confirmation gate. It does not explain skip_review semantics or failure modes, so it stops short of 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.

Conciseness4/5

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

Three dense, front-loaded sentences with no filler; the core flow (create on_hold, budget, review) comes first. 'Returns per-step results' is mildly redundant given an output schema exists, but it is not wasteful enough to drop the score.

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?

Output schema exists, so return values need no explanation, and annotations cover the safety profile. However, for a 26-parameter tool the description is thin: it leaves the targeting/param surface essentially unexplained and creates ambiguity about whether the tool's own targeting fields apply or whether create_ad is required.

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

Parameters2/5

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

Schema description coverage is 0% across 26 parameters, so the description must carry parameter meaning and largely does not. It usefully documents two high-value params (budget defaulting to 1 Gram, confirm=true gate for spending), but the remaining ~24 params, including all targeting fields, are undocumented in both description and schema.

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?

The description states a specific composite action: create the ad in on_hold, set budget, send to review, and never activate it. It names the sibling it is not (create_ad for full targeting). Clarity is slightly undercut by ambiguity over whether the tool's own targeting params are usable, since the description points to create_ad for 'full targeting' while the schema carries 20+ targeting fields.

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?

'Use for new ads' gives a clear positive selection rule, and 'full targeting via create_ad' names an alternative with its distinguishing condition. The spend precondition 'confirm=true unless gate=open' adds a concrete gate. No explicit when-not-to-use beyond the create_ad pointer, so not a 5.

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