A clone-and-go scaffold for a grounded LLM agent: model + tools (MCP-compatible) + RAG + procedures.
Single tool server with a straightforward arithmetic calculator. The tool has a clear, action-oriented name ('calculate') and a concise description. Input schema is properly defined with type 'object' and a required 'expression' parameter. However, the parameter description is minimal (uses an informal 'e.g.' example rather than formal constraints), and there is no documented output schema. The tool lacks error handling guidance, which is critical for an arithmetic evaluator that will encounter invalid expressions. No tool annotations (readOnlyHint, etc.) despite being READ_ONLY. Overall definition is functional but sparse, typical of starter scaffold code.
Evaluate an arithmetic expression exactly. Supports + - * / ** %.
Parameter description uses informal 'e.g.' examples instead of formal constraints. Should state: 'A valid Python arithmetic expression (supports +, -, *, /, **, %). Invalid syntax will return an error.'
No output schema documented. LLM cannot predict what fields/types the result will contain. Must document: returns {"type": "object", "properties": {"result": {"type": "number"}, "error": {"type": "string"}}}
No error handling guidance. What happens if expression is invalid (e.g. '2 +++ 3' or '1/0')? Description must guide LLM: 'If the expression is invalid or causes a math error (e.g. division by zero), an error message will indicate what went wrong.'
Tool marked READ_ONLY but no toolAnnotation ('readOnlyHint': true) in schema. This metadata is important for agents to understand operation safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |