Command-line access to one personal Telegram account for reading, searching and downloading
Telegram plugin has well-structured tool definitions with consistent naming (verb_noun pattern: whoami, dialogs, find-chat, resolve, message, thread, read, search, download, send). All 10 tools have descriptions (avg 45 chars, range 24-65). Input schemas are present and typed for all tools. However, descriptions are uniformly terse (under 65 chars each), lacking context on WHEN to use each tool or dependencies between them. Parameter descriptions are minimal, many lack usage guidance. Output schemas are not documented. Error handling is absent from tool definitions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification (9 READ_ONLY, 1 WRITE, 1 IRREVERSIBLE). Missing idempotency guidance for send/download. No pagination guidance in read/search despite out_limit parameters suggesting large result sets.
list chats, optionally filtered by title
download one message attachment
find chats by remembered metadata
read one exact message
read chat history in ascending order
resolve an exact chat reference
search messages in one chat or globally
Tool descriptions are uniformly terse (24 - 65 chars, avg 45). Baseline for A+ tools is 194 chars. Descriptions lack WHEN to use, dependencies, and prerequisites. E.g., 'read one exact message' does not explain when to use message() vs thread() vs read().
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., does dialogs() return chat_id for use in read()? What fields are in each message object?). Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
send one explicit text message or reply
read replies in one topic or comment thread
show the authorized Telegram account
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification: 9 READ_ONLY, 1 WRITE (download), 1 IRREVERSIBLE (send). Agents need explicit hints to reason about safety and retry logic.
Parameter descriptions are minimal. E.g., 'query' in dialogs is 'substring of the chat title' but does not explain case sensitivity, partial matching behavior, or what happens if no match. Baseline: 100% of A+ tools have param descriptions; avg length 72 chars.
No error handling guidance in tool definitions. If send() fails due to permission, rate limit, or invalid chat, LLM has no recovery path. Baseline: error responses must tell LLM what to do next.