A dependency-free MCP server template for Cloudflare Workers — hand-rolled Streamable HTTP transport, bearer auth, zero runtime dependencies.
Two simple tools with complete JSON schemas and basic descriptions. Both tools have proper input validation and error handling via ToolError. However, descriptions are minimal (under 100 chars) and lack context about when/why to use each tool. No output schema documentation. Tool names lack action verbs (echo, word_count are acceptable but generic). No parameter-level descriptions beyond the schema. No guidance on error recovery or tool composition. This is a template server, not production-grade.
Echo a message back. The "hello world" of MCP tools — replace me.
Count words, characters, and lines in a piece of text.
Descriptions are too brief and lack context. 'Echo a message back' (28 chars) and 'Count words, characters, and lines' (34 chars) do not explain WHEN to use these tools or what the LLM should expect. Baseline for A+ tools is 50-200 chars with clear intent.
No output schema documentation. Callers cannot predict the structure of results (echo returns {echo: string}, word_count returns {words, characters, lines}). LLMs need documented return types to plan downstream calls.
Tool names lack action verbs. 'echo' and 'word_count' are generic. Stronger names like 'repeat_message' or 'analyze_text_metrics' would clarify intent. Baseline: 90% of A+ tools start with action verbs (get, create, search, update, delete, list, send).
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Parameter descriptions in schema are minimal. 'Text to echo back' and 'The text to analyze' are adequate but do not specify format, constraints, or length limits. Baseline: 100% of A+ tools have parameter descriptions 50-150 chars with format/range guidance.
No error recovery guidance. ToolError is caught and masked as 'Internal error running tool' for non-ToolError exceptions. LLMs receive no actionable guidance on what went wrong or how to retry. Baseline: error responses should guide next steps.