Skip to main content
Glama

Schedule a message

telegram_schedule_message
Idempotent

Schedule one plain text message to a group or channel. Telepath sends it even after this conversation closes. Resolve the destination first. Explicitly select bot_api or session; never silently change sender. Bot API needs a connected group or owned channel (/channels) and bot posting permission. Session sends using the connected Telegram account and its actual permissions; connect via /session in @lemma_telepath_bot if needed. Ask for timezone if not established; reuse the saved timezone. Confirm destination, sender, exact text and local time. Default pending-message allowance: Free 3, Plus 20, Unlimited 100, shared across groups, channels and both transports. Use the list response quota for any personal allowance. Delivery/cancellation frees a slot; plan expiry preserves existing schedules and allows edits/cancellation. Normally delivered within 15 seconds; more than 15 minutes late fails instead of sending. No automatic retry of uncertain deliveries. These are scheduled sends, not personal reminders or recurring tasks.

Input Schema

NameRequiredDescriptionDefault
atYesExact future ISO 8601 time including UTC offset, e.g. 2026-11-08T18:00:00+04:00. Between one minute and one year ahead.
textYesExact plain text to send once. No Markdown/HTML parsing, media, repeats or attachments.
chat_idYes
timezoneNoUser-confirmed IANA timezone, e.g. Europe/Ulyanovsk. Required the first time; afterwards the saved timezone can be reused. Never guess it from language.
confirmedYesThe user has approved the destination, sender (bot or account), exact text and local date/time. An explicit request containing all of these is sufficient; ask only for missing details.
transportYes
request_idYesStable ID for this approved action. Reuse for retries; never change it to retry uncertain delivery.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly=false, idempotent=true, openWorld=true) by disclosing pending-message quotas per plan tier and that they are shared across transports, that delivery/cancellation frees a slot, that expiry preserves existing schedules, that delivery is normally within 15 seconds and fails past 15 minutes late, and that uncertain deliveries are not auto-retried. That is exactly the operational context an agent needs before committing a scheduled write.

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 with purpose and the destination/transport/timezone ordering, and nearly every sentence carries a distinct constraint (quota, timing, failure, no-retry). It is dense to the point of being a single unbroken block; slight trimming of the quota enumeration would improve scanability without losing information.

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?

For a 7-parameter, 6-required mutation tool with no output schema, the description covers transport selection, confirmation requirements, timezone reuse, quota accounting, delivery timing, and failure semantics. Nothing an agent needs to call it correctly or interpret a refusal appears to be missing.

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 coverage is 71%, and the description compensates for the two undocumented fields: transport is explained by precondition (bot_api needs a connected group or owned channel plus posting permission; session uses the account's actual permissions), and timezone handling is spelled out. chat_id still gets only an indirect 'resolve the destination first' rather than a pointer to telegram_find_chat/channels, so it falls just short of full coverage.

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?

States a specific verb and resource with scope: 'Schedule one plain text message to a group or channel.' It also explicitly separates itself from the reminder siblings with 'These are scheduled sends, not personal reminders or recurring tasks,' so an agent can distinguish it from create_reminder and telegram_send_message without opening a 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?

Gives ordered preconditions (resolve destination, explicitly pick bot_api vs session, ask for timezone if unestablished) and names the setup routes (/channels, /session in @lemma_telepath_bot). It also states the exclusion case, so when-to-use and when-not-to-use are both covered.

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.

Resources