MCP server that provides tools for summing numbers and creating employee records by calling external web services
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. sum_numbers has minimal description (10 chars); create_employee has better coverage but lacks output schema documentation. Neither tool documents return types formally. Parameters have type annotations but descriptions are sparse. No error handling guidance, no pagination, no idempotency markers. Naming is verb-forward (sum_, create_) but descriptions don't explain WHEN to use each tool or what downstream tools expect.
Create an employee record by calling an external web service.
Add two integers by calling an external web service.
sum_numbers description is only 10 characters ('Add two integers by calling an external web service.'), below the 20-char minimum. Lacks context on when to use this tool vs alternatives, what the return value represents, or error conditions.
No output schemas documented for either tool. sum_numbers returns int; create_employee returns str. LLMs cannot plan downstream calls or extract structured data without knowing response field names and types. Violates pattern:response-shaper.
Error handling is generic ('HTTP Error', 'Invalid integer response', 'Error'). Does not guide LLM on recovery: should specify 'Retry with different numbers' or 'Check external service availability'. Violates pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
create_employee has four optional parameters with defaults (nif=0, date_of_birth='', address=''). Empty string defaults for date_of_birth and address may cause silent data loss or API rejection. Defaults should be documented as to whether they are safe to omit.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. create_employee is marked WRITE risk but tool definition lacks destructiveHint. sum_numbers is READ_ONLY but lacks readOnlyHint. Agents cannot infer safety/retry semantics.