Skip to main content
Glama
jetapi

jetapi-mcp-server

Official
by jetapi

Send bulk message

send_bulk

Send one message to many recipients at once via SMS, WhatsApp, Telegram, and other channels. Supports scheduling, delivery routing cascades, and UTM tracking for announcements and campaigns.

Instructions

Send the same message to multiple phone numbers at once. Supports scheduling, UTM marks, dispatch routing cascade, Telegram usernames and tdlib user IDs.

Use it for announcements, campaigns or reminders to a list of recipients. For one recipient, or when a delivery ID is needed for tracking, use send_message.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesMessage text.
utm_markNoLabel for tracking dispatches (see get_utm_tags).
usernamesNoTelegram usernames (tdlib only): requires "tdlib" in dispatch_routing.
sender_nameNoRegistered SMS sender name (see get_balance → sender names).
scheduled_atNoDelayed sending time, format YYYY-MM-DD HH:MM:SS in UTC+0. At least 1 minute and at most 1 month ahead.
tdlib_user_idNoTelegram user ID (positive = private chat, negative = group chat). tdlib channel only.
phones_numbersYesPhone numbers in international format, e.g. ["79991234567", "+995598464533"].
dispatch_routingNoChannels in the order JetAPI should try them (cascade: the next channel is used only if delivery through the previous one fails). whatsapp = WhatsApp, tdlib = personal Telegram account, telegram = Telegram Bot, notify = VK/OK, max = MAX messenger, sms = SMS. If omitted, the account's default routing is used.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.2

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark the operation as non-read-only, non-idempotent, and non-destructive, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: scheduling, UTM marks, dispatch routing cascade, Telegram usernames and tdlib user IDs, and the implication that bulk sends do not return a delivery ID for tracking. Minor caveats such as cost, rate limits, or failure handling are not disclosed, so it stops short of 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?

The description is compact: a clear first sentence stating the core action, a feature-support list, and then usage guidance with a routing instruction. Every sentence earns its place; no filler or redundant 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 a tool with eight parameters and no output schema, the description covers purpose, typical usage, and the key limitation around delivery tracking. It is slightly incomplete on what the caller should expect back from a bulk send, but the explicit redirect to send_message when tracking is needed mitigates that gap.

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 description coverage is 100%, so the input schema already fully documents all eight parameters, including formats, constraints, and relationships like 'requires "tdlib" in dispatch_routing.' The description only summarizes feature areas rather than adding meaning beyond the schema, making the baseline 3 appropriate.

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 description opens with a specific verb and resource: 'Send the same message to multiple phone numbers at once.' It clearly differentiates from send_message by emphasizing bulk recipients and also names the sibling it should not be used for ('For one recipient... use send_message').

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 gives explicit use cases ('announcements, campaigns or reminders to a list of recipients') and an explicit exclusion with alternative: 'For one recipient, or when a delivery ID is needed for tracking, use send_message.' This leaves no ambiguity about when to choose this tool over its sibling.

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