A Flask-based MCP server that provides arithmetic functions (addition) with OpenAI integration for tool calling
Single tool 'add_numbers' has a complete input schema with proper types and descriptions for both parameters. However, the tool description is minimal (24 chars), and critically, there is NO documented output schema. The server lacks error handling guidance, parameter validation rules, and any indication of idempotency or side effects. The implementation is functional but falls well short of production-grade tool design. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present.
Add two numbers together
Missing output schema documentation. Tool returns a 'result' field but no schema is documented for clients to understand the response structure, type, or downstream chaining.
Tool description is only 24 characters ('Add two numbers together'). Rubric baseline is 194 chars (p10=34, p90=392). Descriptions under 20 chars must score ≤40. This one barely exceeds the floor and lacks context on when/why to use the tool.
No error handling guidance. The server returns generic HTTP 400/404 errors with minimal context. LLMs cannot determine if errors are retryable, user-fixable, or fatal. No recovery suggestions provided.
No tool annotations. The tool lacks readOnlyHint, destructiveHint, or idempotentHint metadata. Agents cannot determine if the tool is safe to retry or has side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No input validation or constraint documentation. Parameters accept any number but lack min/max bounds, precision limits, or overflow guidance. Unbounded numeric inputs can cause unexpected behavior.