A minimal Python MCP Server template using the Model Context Protocol SDK
This template server has critical definition gaps. Tool descriptions are minimal (10-20 chars), below the 20-char floor for scoring. No output schemas are documented. No error handling guidance. The tools are trivial arithmetic operations with no real-world applicability, but even as a template, they fail to model best practices for LLM-facing tool design.
Add two numbers
Subtract two numbers
All parameter descriptions are null. LLMs cannot infer parameter meaning from names alone.
Tool descriptions are under 20 characters ('Add two numbers', 'Subtract two numbers'). These lack context for LLM selection, WHEN to use the tool, or what it returns.
No output schemas documented. LLMs cannot plan downstream calls or extract return values without knowing the response structure. Both tools return int, but this is not declared in the tool definition.
No error handling or recovery guidance. If a tool fails, the LLM has no actionable next step. No validation of inputs (e.g., integer overflow, NaN handling).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 28 | <=2025-11-25 | v2 |
Tool names lack action verbs. 'add' and 'subtract' are bare verbs without object context. Better: 'calculate_sum', 'calculate_difference'. Current names are ambiguous in a large tool set.