A comprehensive template for building Model Context Protocol (MCP) servers
Single calculator tool with complete schema and basic descriptions. Tool naming is descriptive (calculator) but lacks a clear action verb prefix (missing 'compute_' or similar). Input schema is well-formed with proper JSON Schema structure and all parameters typed. Description is present but minimal (15 words, 40 characters), below the recommended 50 - 200 character range. No output schema documented. Error handling is present in the implementation but not surfaced in the tool definition. This is a template with only one example tool, so the assessment focuses on that single tool's definition quality. Adequate for learning purposes but lacks the richness expected in production definitions.
Perform basic arithmetic operations
Tool name does not start with an action verb. 'calculator' is a noun; should be 'compute_arithmetic', 'evaluate_expression', or similar. LLMs rely on verb prefixes to infer intent.
Tool description is too short (40 characters). 'Perform basic arithmetic operations' lacks context for when to use it vs other tools, what it returns, or edge cases (e.g., division by zero handling). Should be 50 - 200 characters with outcome and use-case guidance.
Output schema not documented in tool definition. LLMs cannot infer what fields or structure to expect from the response. Should include 'returns: { content: [ { type: string, text: number } ] }' or similar.
Parameter descriptions are minimal. 'First operand' and 'Second operand' lack format or range hints. Should state 'Numeric value (integer or float)' and any min/max constraints if applicable.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 54 | - | v1 |
Error handling exists in implementation (division by zero, type validation) but is not reflected in the tool definition. LLMs should know upfront which error conditions are possible and how to handle them. Add error guidance to description.