MCP server with OAuth 2.0 authorization provider running on Cloudflare Workers, demonstrating remote authentication 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 extremely terse (5 words, well below 20-char threshold). Parameter descriptions are present but generic ('First number to add', 'Second number to add'). No output schema documented. No error handling guidance. No idempotency or side-effect information. Follows ~15% of the 54 patterns.
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 5 words ('Adds two numbers together'). Expand to explain WHEN to use it, WHAT it returns, and any constraints (e.g., 'Adds two numbers and returns their sum as a text response. Use for arithmetic operations.').
Output schema not documented. LLMs cannot plan downstream calls or extract results. Document: returns {content: [{type: 'text', text: string}]}.
No error handling guidance. What happens if inputs are NaN, Infinity, or non-numeric? How should the LLM recover? Add error classification and recovery hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Mark 'add' as read-only and idempotent to guide agent planning.