LangGraph agent with retro UI that integrates Math and Weather MCP servers for processing queries through a LangChain-based agent
Six tools with basic schemas and minimal descriptions. All tools have input schemas with typed parameters and descriptions, meeting baseline requirements. However, descriptions are extremely terse (10-40 chars), well below the 50-200 char LLM-optimized range. No output schemas documented. No error handling guidance. Math tools lack context on when to use divide vs multiply. Weather tools are mock implementations with no real API integration details. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Naming is acceptable (verb_noun pattern) but descriptions fail to explain WHEN to use each tool or what happens on error.
Add two numbers
Divide a by b
Get weather forecast for a location for the next few days
Get weather for a location
Multiply two numbers
Subtract b from a
Descriptions critically short (10-30 chars). LLMs cannot determine when to select each tool. 'Add two numbers' vs 'Multiply two numbers' provides no context for tool selection or error recovery.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. Divide returns float but no schema specifies this; weather tools return strings with no field definitions.
Divide tool lacks error handling guidance. Description says 'cannot be zero' but no recovery hint. LLM will see ValueError with no actionable next step.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Weather tools are mock implementations (random.randint). No real API integration, no rate limits, no timeout handling. Descriptions do not disclose this is demo data.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in schema, forcing LLM to infer safety.