Skip to main content
Glama

Create TG Campaign

create_tg_campaign
Destructive

[write] Create a Telegram campaign as a DRAFT. It never approves, starts or sends anything: a person reviews the audience, approves and starts it in the panel. account_id = tg_account_id (or account_uuid) is OPTIONAL: a campaign belongs to the merchant and the account that sends it is picked when a person approves it. title up to 120 characters; text up to 1000 ({name} becomes the person's first name; a /stop line is always added). Audience (optional): last_inbound_days 1-90 (default 30) and tg_chat_ids (limit to these chats); only people who wrote to the account in that time AND agreed to receive messages are ever included - check preview_tg_campaign_audience. window (optional) = {timezone: IANA name, start_hour: 0-23, end_hour: 1-24}: messages go out only inside it (default Europe/Istanbul 9-20). tg_list_id / tg_list_uuid (optional) = a saved chat list of the same account (see list_tg_lists): its chats become the audience (a copy). Returns the draft with its tg_campaign_id / tg_campaign_uuid.

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": {
      "title": "<title>",
      "text": "<text>"
    },
    "name": "create_tg_campaign"
  }
}

Input Schema

NameRequiredDescriptionDefault
textYes
titleYes
windowNo
account_idNo
tg_list_idNo
tg_chat_idsNo
account_uuidNo
tg_list_uuidNo
last_inbound_daysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior4/5

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

Far beyond the annotations: it discloses the draft-only lifecycle, that only people who recently wrote in AND opted in are ever included, that a /stop line is always appended, that {name} is substituted, and the default sending window (Europe/Istanbul 9-20). It does not reconcile the destructiveHint=true annotation (nothing here is destroyed; the risk is downstream sending) or mention required permissions, so the safety story is strong but not fully closed.

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?

Front-loaded and waste-free — purpose and lifecycle first, then audience, then window, then lists, then return value. The heavy parenthetical nesting makes some clauses dense to parse, but no sentence is redundant.

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

Completeness5/5

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

No output schema exists, and the description compensates by naming the return value (the draft with its tg_campaign_id / tg_campaign_uuid), while documenting every input's defaults and constraints. An agent has everything needed to call it correctly on the first try.

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

Parameters5/5

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

Schema coverage is 0%, yet all nine parameters are given meaning: title ≤120 chars, text ≤1000 with placeholder semantics, account_id/account_uuid explicitly OPTIONAL and resolved at approval, last_inbound_days 1-90 with default 30, tg_chat_ids as an audience limiter, the window object's timezone/start_hour/end_hour shapes, and tg_list_id/tg_list_uuid being copied rather than referenced.

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?

"Create a Telegram campaign as a DRAFT" gives a specific verb, resource and an immediately qualifying scope (draft-only), which separates it from get_tg_campaign, list_tg_campaigns and preview_tg_campaign_audience without opening any 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?

It states the hard when-not explicitly ("It never approves, starts or sends anything: a person reviews the audience, approves and starts it in the panel") and routes the agent to the right companions: preview_tg_campaign_audience for audience checking and list_tg_lists for saved chat lists.

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.