Two tools with complete schemas and descriptions. search_flights has excellent parameter coverage (25 params, all typed and described) with detailed constraints (time formats, weekday enums, defaults). search_airports is minimal but functional. Both tools lack output schema documentation, LLMs cannot predict response structure. No error handling guidance, no tool annotations (readOnlyHint), no recovery paths. Descriptions are adequate (194 and 72 chars respectively) but lack dependency hints or when-to-use context. Parameter descriptions are generally good but some lack format constraints (e.g., 'H:MM' format stated but not formalized).
Search for airports by IATA code or name. Uses the azair airport database.
Search for cheap flights on azair.eu across European low-cost airlines. Supports flexible date ranges, multiple airports per side, metro-area codes (e.g. MIL_ALL), anywhere (XXX), one-way or return, and all advanced filters (weekdays, time windows, stopover limits, overnight waits, transfers, Schengen-only).
No output schema documentation. LLMs cannot predict response structure (fields, types, pagination). search_flights returns JSON array of flight objects; search_airports returns JSON array of Airport objects. Both lack documented return types.
No error handling guidance. Tools may fail (network timeout, invalid airport code, no results) but provide no recovery hints. E.g., 'No airports found' is returned but LLM has no guidance on what to do next.
Missing tool annotations. Both tools are read-only (no side effects) but lack readOnlyHint annotation. This prevents clients from optimizing caching or parallelization.
search_flights lacks pagination support. No limit, offset, or page parameters. Large result sets could exhaust context window. Baseline pattern requires pagination for list-returning tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
search_airports description (72 chars) is minimal and lacks dependency hints. Does not explain when to call it (e.g., 'Call this first if you only have an airport name, not IATA code').