MCP server for Telegram bot interaction via MTProto user client
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling guidance. send_message and get_history both lack descriptions for their return values, making it unclear what fields the LLM should expect. Parameter descriptions are present but minimal (e.g., 'Bot username' lacks format guidance). No enum constraints on the 'bot' parameter despite it accepting a specific format. Error responses return JSON strings rather than structured objects, and lack actionable recovery guidance. Tool composition is reasonable (send vs retrieve), but output documentation is insufficient for reliable agent chaining.
Get message history with a Telegram bot.
Send a message to a Telegram bot and wait for its reply.
Output schemas not documented. Both tools return JSON strings with status/error/data fields, but the LLM has no formal schema to understand what fields to expect or how to extract data for downstream calls.
Parameter 'bot' lacks format constraints. Description says 'e.g. @BotFather or BotFather' but no enum or regex pattern enforces valid formats. LLM may pass invalid bot names.
Error responses lack recovery guidance. Errors return raw exception strings (e.g., 'Telegram session expired') without actionable next steps. LLM cannot determine if it should retry, ask user, or call a different tool.
send_message timeout behavior underdocumented. Tool polls for 30 seconds but returns 'timeout' status without explaining what the LLM should do next (retry? ask user? accept partial result?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No idempotency guarantees. send_message sends a message and polls for reply, but repeated calls with same input will send duplicate messages. No idempotent operation pattern or deduplication.