MCP server for managing a Telegram channel through the Bot API. Provides channel statistics, subscriber tracking, and post management capabilities.
Server has 8 tools with complete input schemas and descriptions. Naming follows verb_noun convention (get_, send_, edit_, delete_, pin_, snapshot_). Descriptions are adequate (50-200 chars) and explain WHEN to use each tool. However, parameter descriptions lack detail on constraints (e.g., parse_mode enum values not listed in description, no format guidance for channel identifiers). Output schemas are not documented, LLMs cannot predict response structure. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Missing idempotency guidance for write operations.
Delete a message from the channel.
Edit an existing message in the channel.
Get current channel details: title, username, description, subscriber count, number of admins, and invite link. Use for a point-in-time snapshot of a Telegram channel.
Read recorded subscriber snapshots and return per-day changes plus a net-change summary.
Get only the current subscriber count of the channel.
Pin or unpin a message in the channel.
Output schemas not documented. LLMs cannot predict response structure or plan downstream calls. E.g., get_channel_info returns {id, title, username, type, description, member_count, admin_count, linked_chat_id, invite_link} but this is not declared in tool definition.
Parameter descriptions lack constraint details. parse_mode accepts 'Markdown', 'MarkdownV2', 'HTML' but description does not list enum values. channel parameter accepts '@username or numeric id' but no format guidance (e.g., '@' prefix required? leading zeros in IDs?). Invites LLM hallucination.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Send a message to the channel. Supports Markdown or HTML formatting, silent delivery, and link preview control.
Record today's subscriber count and return the change since the previous snapshot. This is the tool to call for a daily channel growth check.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). Tools are marked with Risk levels (READ_ONLY, WRITE, DESTRUCTIVE) in metadata but not exposed to LLM via tool annotations. LLM cannot infer safety/retry semantics without explicit hints.
Error handling lacks recovery guidance. ToolError exceptions are raised (e.g., 'No bot token configured', 'No channel specified') but responses do not suggest next steps. Pattern: 'User not found. Try search_users() with a partial name.' Missing here.
Destructive operations (delete_post) lack confirmation/dry-run pattern. No mechanism to preview or confirm before executing irreversible action. Agents can accidentally delete messages without safeguard.