MCP server for flight search functionality, enabling AI assistants to search for flights and find cheapest travel dates using Google Flights data
Four tools with comprehensive parameter schemas and clear descriptions. All tools have proper verb-noun naming (search_*, get_*). Descriptions are detailed (150-250 chars) and explain WHAT and WHEN. Input schemas are well-structured with types and descriptions for most parameters. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling guidance is absent. Parameters lack enum constraints where applicable (e.g., cabin_class, max_stops, sort_by accept free-form strings instead of enums). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only operations.
Generate a direct Google Flights URL for the given search parameters, allowing users to view results in their browser
Search for airports by name, IATA code, or city name with fuzzy matching support
Find the cheapest travel dates within a range, supporting both one-way and round-trip searches with optional duration constraints
Search for flights on a specific date with comprehensive filtering options including airlines, cabin class, stops, layovers, emissions, and pricing preferences
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining or data extraction.
Enum constraints missing for constrained parameters. cabin_class, max_stops, sort_by, emissions, starlink accept free-form strings instead of enums, inviting hallucinated values.
No error handling guidance. Tools lack recovery hints (e.g., 'Invalid airport code. Try search_airports() first'). Agents cannot self-correct on failures.
Tool annotations missing. All four tools are read-only (no side effects), but lack readOnlyHint annotation. Agents cannot distinguish safe tools from destructive ones.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Numeric parameters lack bounds. passengers, children, infants_in_seat, infants_on_lap, checked_bags, min_layover, max_layover have no min/max constraints, allowing LLMs to pass absurd values.