An MCP server deployed on Cloudflare Workers with OAuth 2.0 authentication support, demonstrating remote MCP server capabilities with a simple arithmetic tool
Single tool 'add' has a clear verb-noun name and basic schema with typed parameters. However, the description is extremely minimal (23 chars), barely meeting the 10-char floor but well below the 50-200 char LLM-optimized range (baseline avg 194 chars). Parameter descriptions are present but terse (9-10 chars each). No output schema is documented, the response structure is inferred from code but not declared in tool metadata. No error handling guidance, no idempotency hints, no composition context. The tool is trivial (arithmetic), so some gaps are forgivable, but a production server should model better practices even for simple tools.
Adds two numbers together
Tool description is 23 characters, below LLM-optimized range (50-200 chars). 'Adds two numbers together' lacks context on when to use it, what it returns, or any prerequisites.
Parameter descriptions are extremely terse (9-10 chars each: 'First number to add', 'Second number to add'). While technically present, they do not follow LLM-optimized guidance (baseline avg 72 chars per param). No format, range, or constraint hints.
Output schema is not documented in tool metadata. Response structure (content array with text type) is visible in code but not declared as a formal schema. LLMs cannot plan downstream calls without knowing return fields.
No error handling guidance. Tool does not document what happens on invalid input (non-numeric values, overflow, null), what errors are retryable, or how the LLM should recover.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Tool is read-only but lacks idempotent or read-only annotations. Modern MCP servers should declare tool hints (readOnlyHint, idempotentHint, destructiveHint) to guide agent planning and safety.