A custom HTTP-based MCP server with a calculator tool and an agent that uses OpenAI's LLM to process natural language requests and execute tools
Single tool 'calculator' has a clear name and basic schema, but lacks depth in descriptions and error guidance. Tool description is 104 chars (within baseline 34-392 range) but generic. Parameters have types and descriptions (baseline met: 72 chars avg), but no guidance on constraints, error recovery, or when to use this tool vs alternatives. No output schema documented. Error handling is minimal, division by zero returns a generic error without recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Overall: functional but below production quality.
A simple calculator tool that can perform basic arithmetic operations
No output schema documented. LLMs cannot plan downstream calls or validate results without knowing the response structure (e.g., is result a number, object, or string?).
Tool description lacks WHEN to use guidance. 'A simple calculator tool...' does not explain when an LLM should invoke this vs a different approach, or what prerequisites exist.
Error messages are generic and non-actionable. 'Division by zero' and 'Missing required parameters' do not guide the LLM on recovery steps or what to try next.
No tool annotations (readOnlyHint, idempotentHint). The calculator is read-only and idempotent, but these hints are not declared, forcing LLMs to infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint guidance. 'First number' and 'Second number' do not specify range, precision, or whether negative/decimal values are allowed.