A remote MCP server running on Cloudflare Workers with OAuth authentication, providing tools for searching Telegram channels and retrieving posts via TGStat
Three tools present with basic schemas and descriptions. All tools have input schemas with type definitions and parameter descriptions, meeting minimum requirements. However, descriptions are generic and lack actionable context for LLM selection. The 'add' tool is trivial. 'searchChannels' has 13 parameters with inconsistent typing (union of number|string) that invites LLM confusion. 'getChannelPosts' is simpler but lacks output schema documentation. No error recovery guidance, no idempotency hints, no permission declarations. Naming follows verb_noun convention but lacks specificity about what data is returned vs. filtered.
Original tool from working version - adds two numbers
Get Channel Posts Tool
Search Channels Tool with enhanced parameters
searchChannels uses union types (number|string) for numeric parameters (maxPages, participantsFrom, etc.), forcing LLMs to guess whether to pass '5' or 5. This violates constrained-input pattern and invites type errors.
No output schemas documented for any tool. LLMs cannot predict response structure, forcing them to parse JSON strings blindly. searchChannels and getChannelPosts return JSON-stringified text, not structured objects.
Error handling returns JSON-stringified error objects as text content, not proper MCP error responses. LLMs cannot distinguish success from failure or know whether to retry.
searchChannels description ('Search Channels Tool with enhanced parameters') is generic and does not explain when to use it vs. getChannelPosts, what filters do, or what data is returned. Baseline: descriptions should be 50-200 chars and answer WHAT/WHEN/WHY.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
No pagination support documented. searchChannels accepts maxPages but no offset/cursor or total_count in response. Large result sets will blow context window.