A modular control panel server with house and street data management, USD exchange rate tracking, and calculator operations
Server has 11 tools with basic descriptions and parameter schemas, but significant quality gaps. All tools have descriptions (good), but most are generic and under 100 chars. Parameter descriptions are minimal. No output schemas documented. No error handling guidance. Tools lack semantic clarity, 'fetch_houses' and 'fetch_streets' are vague about what data structure is returned. Calculator tools (add, subtract, etc.) are trivial and add noise. Exchange rate tools lack context on API reliability or rate limits. No tool annotations (readOnlyHint, etc.).
Add two numbers and return the result.
Divide a by b and return the result.
Fetch houses based on city and optional street name.
Fetch streets for a given city.
Get daily USD to IRR exchange rate prices from Navasan API.
Fetch current exchange rate from one currency to another.
Get monthly USD to IRR exchange rate prices from Navasan API.
No output schemas documented. Tools return lists or unspecified structures (e.g., fetch_houses returns 'list' with no field documentation). LLMs cannot plan downstream calls or extract required fields.
Descriptions are generic and under 100 chars (baseline 194 chars for A+ tools). 'Fetch houses based on city and optional street name' lacks context on what fields are returned, when to use vs fetch_streets, or data structure.
No error handling guidance. Tools do not document what happens on invalid city, missing data, API failures, or rate limits. LLMs have no recovery path.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Get current USD to IRR exchange rate from Navasan API.
Multiply two numbers and return the result.
Raise a to the power of b and return the result.
Subtract b from a and return the result.
Calculator tools (add, subtract, multiply, divide, power) are trivial utilities that clutter the tool namespace. They add no domain value and waste LLM reasoning cycles. Consider removing or moving to a separate utility server.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are marked READ_ONLY in metadata but this is not reflected in tool definitions. Agents cannot infer safety properties.