MCP server with OAuth 2.0 authentication provider running on Cloudflare Workers, demonstrating remote authorization flows
Single tool 'add' has a basic schema with typed parameters (number, number) and minimal descriptions. Tool name lacks action verb (should be 'add_numbers'). Description is only 28 characters, below the 50-200 char baseline for LLM-optimized descriptions. Parameter descriptions are present but generic ('First number to add', 'Second number to add'). No output schema documented. No error handling guidance. No pagination, composition, or idempotency considerations. This is a toy example, not production-grade.
Adds two numbers together
Tool name 'add' lacks action verb. Should be 'add_numbers' to match verb_noun convention and help LLMs parse intent from the name alone.
Tool description is only 28 characters ('Adds two numbers together'). Baseline for LLM-optimized descriptions is 50-200 chars. Expand to explain WHEN to use it, what it returns, and any constraints.
Output schema is not documented. LLMs cannot plan downstream calls or extract results without knowing the response structure. Document the return type (e.g., 'Returns {result: number}').
No error handling guidance. If inputs are invalid (non-numeric, NaN, Infinity), the tool should return a clear, actionable error message, not a stack trace.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
Parameter descriptions are generic and do not specify constraints. Add format hints: 'First number to add (any finite number)' and 'Second number to add (any finite number)' to prevent LLM confusion.