An MCP server with OAuth 2.0 authorization running on Cloudflare Workers, featuring a demo tool for addition and an authorization UI
Single tool 'add' with critical definition quality gaps. Tool is explicitly registered via McpServer.tool() in src/index.ts with Zod schema, but has severe documentation and specification deficiencies. Input schema is present (a: number, b: number) but parameter descriptions are null, violating pattern:tool-description. No tool description visible in registration. Output structure is hardcoded to text response without schema documentation. This tool would score poorly on any production quality review.
Tool 'add' has NO description. The McpServer.tool() registration in src/index.ts shows tool name but zero documentation of what it does, when to use it, or what it returns. LLMs cannot determine when to call this tool without a description.
Parameter descriptions are null for both 'a' and 'b' parameters. Input schema uses Zod types (z.number()) but provides no documentation of what these numbers represent, their range, units, or constraints. LLMs cannot infer meaning from bare parameter names.
No documented output schema. Tool returns { content: [{ type: 'text', text: String(a + b) }] } but this structure is buried in implementation code, not exposed in tool metadata. Output specification must be visible in tool definition for LLM reasoning.
Tool name 'add' is overly generic and ambiguous. Does not follow verb_noun pattern (should be 'calculate_sum', 'add_numbers', or similar). Single-word names invite ambiguity when many tools exist.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 35 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |
No error handling specification. Tool provides no guidance on invalid inputs (non-numeric, null, infinity, NaN), failure modes, or recovery steps. LLMs cannot handle edge cases.