A minimal Python MCP Server template using the Model Context Protocol SDK
This template server has minimal tool definitions with critical gaps. Both tools ('add' and 'subtract') have extremely generic descriptions (under 20 characters), missing parameter descriptions, and no documented output schemas. The tool names are acceptable verbs but lack context for when to use each tool vs. the other. Parameter schemas exist but lack crucial descriptions explaining what 'a' and 'b' represent. No error handling guidance, no output schema documentation, and no LLM-optimized descriptions. This is a starter template, not production-ready.
Add two numbers
Subtract two numbers
Parameter descriptions missing: both tools define 'a' and 'b' parameters with types but no descriptions. LLMs cannot infer whether these are operands, indices, or something else. Violates pattern:tool-description requirement that 'every parameter needs a description.'
Tool descriptions are under 20 characters ('Add two numbers', 'Subtract two numbers'). Per the hard scoring rule, description scores MUST be capped at 0-20. These descriptions lack context for LLM selection (WHEN to use add vs. subtract is self-evident, but descriptions should still explain return type, use case, and any prerequisites).
Output schema not documented: neither tool documents what it returns. The code shows they return int, but this is not explicitly stated in the tool definition or any schema. LLMs cannot plan downstream composition without knowing output structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | <=2025-11-25 | v2 |
No error handling guidance: tools do not document how they handle invalid inputs (e.g., non-integer values), overflow conditions, or edge cases. No recovery hints for LLMs. Violates pattern:recovery-guide.