MCP server for Telegram messaging platform integration
Telegram MCP has critical definition gaps. Tool descriptions are present but minimal (10-60 chars, well below the 194-char baseline). Parameter descriptions are sparse or missing entirely. Input schemas lack proper type definitions and descriptions for most parameters. No output schemas documented. Error handling is absent, tools make raw HTTP calls without validation or recovery guidance. The server exposes internal HTTP endpoint details and lacks idempotency markers. No tool annotations (readOnlyHint/destructiveHint). send_message is a destructive operation but has no confirmation or dry-run pattern.
Get all entities in the current session
Get an entity from the current session
Get messages limited by a count from an entity
get entitites which have unread messages in it
get all unread messages from a given entity id
Send a message to an entity with optional markup and reply
Parameter descriptions missing or trivial. 'id' param in get_unread_messages has description 'entity id' (8 chars); 'content' in send_message has no description at all. LLMs cannot infer parameter semantics from names alone.
No output schemas documented. Tools return raw JSON from HTTP endpoints without specifying field names, types, or structure. Agents cannot plan downstream calls or extract required data reliably.
send_message is a destructive operation (WRITE risk) with no confirmation, dry-run, or idempotency marker. Agents can accidentally send duplicate messages on retry. No tool annotation (destructiveHint) present.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Tool descriptions are 10-60 characters (well below 194-char baseline). 'get entitites which have unread messages in it' lacks context on when to use it vs get_unread_messages. No dependency hints or prerequisites stated.
No error handling or recovery guidance. Tools make raw HTTP calls (get(), post()) without try-catch, validation, or actionable error messages. A 404 or timeout returns nothing; LLM has no guidance on retry or alternatives.