A simple HelloWorld MCP server experiment
Two tools with basic schemas and minimal descriptions. Both tools have input schemas with proper JSON Schema structure and type definitions. However, descriptions are extremely brief (10-27 chars), falling well below the 50-200 char baseline for LLM-optimized descriptions. Parameter descriptions are present but terse. No output schema documentation. No error handling guidance. No tool annotations (readOnlyHint, etc.). Tool names lack action verbs ('hello' and 'add' are generic; 'greet_user' and 'sum_numbers' would be clearer). No pagination, no composition hints, no recovery guidance.
Add two numbers together
Say hello to someone
Tool descriptions are critically short (10-27 chars). LLMs cannot determine when/why to select these tools. Baseline is 50-200 chars with context on WHAT, WHEN, and WHY.
Tool names lack action verbs. 'hello' and 'add' are generic and do not convey intent. Should be 'greet_user' and 'sum_numbers' to match verb_noun convention.
No output schema documentation. LLMs cannot plan downstream calls or extract structured data without knowing response fields.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot determine safety/retry semantics.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | <=2025-11-25 | v2 |
No error handling guidance. If a tool fails, the LLM has no recovery path or actionable next step.