mcp-tg exhibits significant definition quality gaps. Of 10 visible tools, all have descriptions (positive), but descriptions are extremely terse (avg 65 chars, well below 194-char baseline). Schemas are present but minimal: most parameters lack type constraints, enums, or validation guidance. No output schemas documented. Tool names follow verb_noun convention (tg_groups_members_list, tg_messages_send) but lack clarity on parameter semantics (e.g., 'peer' is ambiguous, is it a user ID, channel ID, or username?). No evidence of error handling guidance, recovery paths, or actionable error messages. Security concerns: no visible secret injection pattern despite Telegram API requiring auth tokens. Composition is reasonable (tools are single-purpose), but parameter naming inconsistencies (peer vs group vs user) force LLM reasoning overhead. Per-tool scores average 42, reflecting consistent mediocrity across the board.
Set a user as admin in a group or channel
List members of a group or channel
Set slowmode for a group or channel
Send multiple media files as an album
Get scheduled messages from a peer
Send a text message to a peer
Send a file to a peer
Get the mcp-tg server build metadata: semver tag, git commit SHA, and Go runtime version
Parameter naming inconsistency: 'peer' vs 'group' vs 'user' for recipient/target identifiers. LLMs cannot infer whether to pass a username, user ID, channel name, or channel ID. Requires explicit type suffixes (peer_id, peer_name, group_id, etc.).
Descriptions are extremely terse (avg 65 chars vs 194-char baseline). E.g., 'List members of a group or channel' lacks context on when to use it, what it returns, or how to interpret results.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Create a new topic in a group or channel
Edit a topic in a group or channel
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does tg_groups_members_list return user IDs, usernames, or both?). Violates pattern:response-shaper.
No error handling guidance. Tools lack recovery hints (e.g., 'User not found. Try search_users() first.'). Agents cannot self-correct on failures.
No visible secret injection pattern. Telegram API requires auth tokens; no evidence of server-side credential management. Tokens must never appear as tool parameters.