MCP server for travel planning with tools for searching flights, hotels, events, weather, geocoding, and financial data using SerpAPI and other external services
27 tools with consistent naming (verb_noun pattern) and basic schemas, but critical gaps in descriptions and parameter documentation. Most tool descriptions are 50-150 chars (below the 194-char baseline for A+ tools). Parameter descriptions are sparse or missing entirely. No output schemas documented. Error handling is absent. Tool composition is reasonable (search → filter → detail pattern), but parameter relationships are undocumented. Example: search_flights returns search_id, which get_flight_details and filter_* tools require, this dependency is not stated in parameter descriptions. No tool has destructive/idempotent hints. Prompts are well-structured but tool definitions themselves lack LLM-optimization.
Geocode multiple locations in batch using Nominatim OpenStreetMap.
Calculate distance between two geographic coordinates using Haversine formula.
Convert currency using SerpAPI Google Finance.
Filter event search results by date range or specific date (requires Vercel KV).
Filter event search results by event type/category (requires Vercel KV).
Filter event search results by venue name (requires Vercel KV).
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what fields does search_flights return? Is search_id guaranteed?). Violates pattern:tool and pattern:response-shaper.
Parameter descriptions are sparse or generic. Example: filter_flights_by_price has 'search_id' described as 'Search ID from search_flights' (28 chars), does not explain format, constraints, or what happens if invalid. Baseline for A+ is 72 chars per param. Violates pattern:tool-description.
Undocumented parameter dependencies. search_flights returns search_id; get_flight_details and filter_flights_by_* require it. This dependency is not stated in any parameter description. LLMs must infer the chain. Violates pattern:tool-description (dependency hints).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Filter a flight search by airline names or codes (requires Vercel KV).
Filter a flight search by price range (requires Vercel KV).
Filter hotel search by required amenities (requires Vercel KV).
Filter hotel search by star rating/class (requires Vercel KV).
Filter hotel search by price range (requires Vercel KV).
Filter hotel search by minimum rating (requires Vercel KV).
Filter stocks by price movement percentage (requires Vercel KV).
Geocode a location to coordinates using Nominatim OpenStreetMap.
Get detailed event search results by search_id (requires Vercel KV).
Get detailed finance search results by search_id (requires Vercel KV).
Get detailed flight search results by search_id (requires Vercel KV).
Get historical stock data using SerpAPI Google Finance.
Get detailed hotel search results by search_id (requires Vercel KV).
Get market overview data using SerpAPI Google Finance.
Get detailed information for a specific property by token from hotel search.
Get weather information for a location using SerpAPI Google Weather.
Look up stock information using SerpAPI Google Finance.
Reverse geocode coordinates to address using Nominatim OpenStreetMap.
Search for local events using SerpAPI Google Events.
Search for flights using SerpAPI Google Flights. Returns search_id for get_flight_details and filter_flights_by_price.
Search for hotels using SerpAPI Google Hotels.
No error handling guidance. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do next. Example: get_flight_details requires Vercel KV, what if KV is unavailable? No recovery path. Violates pattern:recovery-guide and pattern:error-classification.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are marked READ_ONLY in metadata, but this is not reflected in tool definitions. LLMs cannot distinguish safe retry behavior. Violates current MCP spec (2026-07-28) tool annotations.