Multi-channel communication server for Claude Code with support for Discord, Telegram, LINE, Teams, and WhatsApp. Provides access control, session management, and message relay capabilities.
Critical gaps across all dimensions. Tool naming lacks consistency (duplicate 'send' and 'react' across platforms without platform prefix). Descriptions are minimal (10-30 chars) and lack actionable context. Input schemas present but sparse, no enums for constrained values, no min/max for numeric params, no output schemas documented. No error handling guidance. Security concerns: file paths accepted as parameters without validation. Composition issues: duplicate tool names across Discord/Telegram create ambiguity for LLM selection.
Edit a previously sent Telegram message
Edit a previously sent Discord message
Fetch recent messages from a Discord channel
Add an emoji reaction to a Discord message
Add an emoji reaction to a Telegram message
Send a message to a Telegram chat
Send a message to a Discord channel or DM
Duplicate tool names across platforms. Both Discord and Telegram expose 'send', 'react', 'edit' without platform prefix. LLM cannot disambiguate which platform a tool targets without reading full descriptions.
Descriptions are too short (10-30 chars) and lack context. 'Send a message to a Discord channel or DM' does not explain WHEN to use this vs fetch_messages, what happens on failure, or whether it's idempotent. Baseline: 194 chars average for A+ tools.
No output schemas documented. LLM cannot plan downstream calls or extract required fields (e.g., message_id for reply_to). Baseline: 100% of A+ tools have documented return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
File paths accepted as parameters without validation. Code shows assertSendable() check but only blocks STATE_DIR, does not prevent path traversal or arbitrary file exfiltration. LLM could pass /etc/passwd or other sensitive files.
No parameter constraints (enums, min/max, patterns). 'limit' in fetch_messages accepts any number, LLM could pass 1000000, causing API abuse or timeout. Baseline: constrained inputs required for A+ tools.