Skip to main content
Glama

Start TG Chat

start_tg_chat
Destructive

[publish] Start a conversation on a Telegram account with ONE person who has not written to it, and send them the first message. Name the person by username (with or without @) or by phone (with the country code, e.g. +905551112233) - exactly one of the two. account_id = tg_account_id (or pass account_uuid). Returns tg_chat (tg_chat_id / tg_chat_uuid: send_chat_message with platform tg answers inside it from then on) and tg_message. Delivered to a real person from a real account. One person per call - there is no list and no bulk version; sending to many people is a campaign, which only a person starts in the panel. A person who has already been written to and has not answered is refused (ERR_TG_CHAT_AWAITING_REPLY): do not write again until they do, and a chat that sent /stop refuses automated messages (ERR_TG_CHAT_OPTOUT). Nobody found = ERR_TG_CONTACT_NOT_FOUND; bots and deleted accounts = ERR_TG_CONTACT_INVALID. Cold first messages are what gets an account restricted: the account has a daily cap on new chats and on lookups (ERR_TG_RATE_LIMITED comes with retry_after - do not retry sooner), so write only people with a reason to expect it.

Input Schema

NameRequiredDescriptionDefault
phoneNo
messageYes
usernameNo
account_idNo
account_uuidNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations mark this destructive, open-world, non-idempotent, but the description adds the operational reality the annotations cannot express: delivery to a real person from a real account, account-level daily caps on new chats and lookups, and ERR_TG_RATE_LIMITED with retry_after. The catalog of refusal error codes (AWAITING_REPLY, OPTOUT, CONTACT_NOT_FOUND, CONTACT_INVALID) is genuine behavioral disclosure, not restatement.

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?

The purpose and the one-person scope are front-loaded, and every sentence carries information. The closing run of error codes and the rate-limit warning is dense but disproportionately long relative to the rest, so it is not maximally tight.

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?

There is no output schema, yet the description defines the return shape (tg_chat with tg_chat_id/tg_chat_uuid and how send_chat_message addresses it later, plus tg_message). Combined with the mutation risks, rate limits, and failure modes, an agent has everything needed to call this correctly.

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 description coverage is 0%, so the description carries the burden and mostly does: it defines username vs. phone formats (with @ optional, country code required), enforces mutual exclusivity ('exactly one of the two'), and explains that account_id takes a tg_account_id while account_uuid is an alternative. The message parameter is only implied by 'send them the first message', which is a minor gap.

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?

The opening sentence names a specific verb (start a conversation), the platform (Telegram), the resource (a chat with exactly one person), and the side effect (send the first message). It is clearly separable from siblings like send_chat_message, join_tg_target, or list_tg_targets.

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 both when to use (contacting one person who has not written first) and when not to: awaiting-reply contacts, /stop opt-outs, and bulk outreach (an explicit 'campaign... only a person starts in the panel'). The preconditions and refusal modes leave nothing to inference.

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.