Minimal TypeScript template for building MCP servers
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names lack action verbs (hello, calculate are generic). Descriptions are present but minimal (34-72 chars, below the 50-200 char LLM-optimized baseline). Parameter descriptions exist but lack format constraints, ranges, and error guidance. No documented output schemas. Error handling is absent. This is a starter template, not production-grade.
Perform basic math operations: add, subtract, multiply, divide.
Say hello to someone. Returns a friendly greeting.
Tool names lack action verbs. 'hello' and 'calculate' are generic and do not convey intent. Should be 'greet_user' and 'perform_math_operation' to match verb_noun convention.
No output schemas documented. LLMs cannot plan downstream calls or extract results. Both tools lack return type definitions.
Parameter descriptions lack format constraints and ranges. 'name' parameter has no length limits; 'a' and 'b' have no numeric bounds. LLMs will pass invalid values.
No error handling or recovery guidance. Tools do not document what happens on invalid input, division by zero, or missing parameters.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Descriptions are too brief (34-72 chars vs 50-200 char baseline). 'Say hello to someone' and 'Perform basic math operations' lack context for when/why to use each tool.