Strict read-only Telegram integration for AI agents via the Model Context Protocol
Server has 6 read-only tools with consistent naming (all verb_noun: get_*, search_*) and present descriptions (avg ~80 chars). All tools have input schemas with typed parameters and descriptions. However, descriptions are terse (under 100 chars) and lack context on WHEN to use each tool or dependencies between them. Output schemas are not documented. No error handling guidance. Sanitization module exists but is not integrated into tool responses. Missing tool annotations (readOnlyHint). Composition is reasonable, tools are single-responsibility, but parameter naming could be more explicit (e.g., 'chat_id' accepts multiple formats but description doesn't clarify precedence).
Retrieve detailed information about a chat or channel
List recent conversations (dialogs) from the authenticated Telegram account
Download a file or media from Telegram
Retrieve messages from a specific chat or channel
Retrieve information about a Telegram user
Search for messages in a chat or globally
Descriptions lack WHEN/WHY context. 'List recent conversations' doesn't explain when to call get_dialogs vs search_messages, or what offset_date does. LLMs need explicit guidance on tool selection.
Output schemas not documented. Tools return Telegram API responses but LLMs don't know what fields to expect. No guidance on pagination, field names, or data types in results.
Parameter 'chat_id' accepts 'integer ID, string ID, or username' but description doesn't specify precedence or format. LLMs may pass ambiguous values. Should clarify: 'Pass username (e.g. @channel_name), integer ID (e.g. 123456), or string ID (e.g. -1001234567890)'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No error handling guidance. If a chat_id is invalid or user lacks permissions, what error is returned? How should the LLM recover? No recovery hints provided.
Tool annotations missing. No readOnlyHint declared despite all tools being read-only. Clients cannot infer safety properties without explicit annotations.