A remote MCP server with OAuth 2.0 authentication provider, built on Cloudflare Workers. Demonstrates MCP tool registration and OAuth authorization flows.
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, baseline avg 72 chars). No output schema is documented, the tool returns text content but the structure is not formally specified. 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 operations.
Adds two numbers together
Tool description is 23 characters, below LLM-optimized range (50-200 chars). Lacks context on when to use, what it returns, and any prerequisites.
Parameter descriptions are extremely terse (9-10 chars each vs baseline 72 chars). 'First number to add' and 'Second number to add' lack format, range, or type hints beyond the schema.
Output schema is not documented. Tool returns {content: [{type: 'text', text: string}]} but this structure is not formally specified in tool metadata, forcing LLMs to infer the response shape.
No error handling guidance. Tool does not document what happens on invalid input (non-numeric values, overflow, null), leaving LLMs without recovery paths.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). The 'add' tool is read-only and idempotent, but these hints are not declared in the schema.