13 tools with consistent naming (verb_noun pattern: telegram_*) and complete input schemas using Zod. Descriptions are present but brief (avg 80 chars, below 194-char baseline). All parameters have type definitions and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. No error handling guidance, no recovery hints, and no parameter constraints (enums, ranges). Missing idempotency/destructiveness annotations despite destructive operations (delete_message). Tool composition is sound (single responsibility), but descriptions lack WHEN/WHY context needed for LLM selection.
Delete a Telegram message using explicit chat and message IDs.
Edit a previously sent Telegram text message using explicit chat and message IDs.
Forward an existing Telegram message to another chat using explicit source chat and message IDs.
Get details for a Telegram chat by numeric ID or username.
List administrators for a Telegram group, supergroup, or channel.
Return the current session details for the connected Telegram bot.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Breaks downstream tool chaining and forces agents to guess field names.
Descriptions are too brief (avg 80 chars vs 194-char baseline). Missing WHEN/WHY context. E.g., 'Get details for a Telegram chat' does not explain when to use telegram_get_chat vs telegram_lookup_chat. LLMs cannot disambiguate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Return the current connection status for this Telegram bot session.
Resolve a Telegram chat or channel by numeric ID or username.
Add an emoji reaction to an existing Telegram message using explicit chat and message IDs.
Send a reply to an existing Telegram message using explicit chat and message IDs.
Send media to Telegram using a base64 payload with MIME type and optional filename/caption.
Send a local file to Telegram by file path.
Send a plain text message to a Telegram chat, group, or channel.
No error handling guidance. Tools like telegram_send_message and telegram_delete_message lack recovery hints. If a call fails, LLM has no guidance on retry strategy, user-fixable vs fatal, or next steps.
Missing tool annotations. telegram_delete_message is destructive but lacks destructiveHint annotation. telegram_get_* tools are read-only but lack readOnlyHint. Agents cannot infer safety/reversibility.
Parameter constraints missing. chatId accepts 'numeric ID or @username' but no enum/pattern validation. messageId is number but no range (e.g., must be > 0). LLMs can pass invalid values; no early validation.