MCP server configuration for travel booking and rewards management across multiple travel platforms including Skiplagged, Kiwi, Trivago, FerryHopper, LiteAPI, and Airbnb
This server has severe definition quality issues. Tool schemas are partially visible but lack complete JSON Schema definitions with proper type constraints. Descriptions vary widely, some are detailed (check_balance, search_flights for Amex/Chase) but others are vague or missing context. Critical gaps: no enum constraints on cabin/hotel parameters, no pagination support documented, no error handling guidance, no output schemas visible. Parameter descriptions exist but lack format/range constraints. The toolkit mixes browser automation (Patchright) with API calls without clear documentation of prerequisites, timeouts, or failure modes. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Naming is reasonable (verb_noun pattern) but composition is poor, multiple search_flights tools (Amex, Chase) with overlapping signatures create ambiguity.
Check American Airlines AAdvantage balance and elite status via Patchright. Read-only. Logs in, reads the dashboard, outputs balance and status. Handles email 2FA with 6-box code entry. Uses a persistent browser profile so 2FA is only needed once per device.
Get full place details from Atlas Obscura including description, directions, nearby places, and images.
Fast nearby Atlas Obscura search without detail fetching.
Record a Chase Travel flight search by capturing network traffic. Logs in automatically, opens the flights page, dismisses modal, then captures all API requests/responses while you perform a manual search.
Interactive session refresh for the Amex travel portal. The travel-portal login gate is captcha-protected, so a fully automated fresh login is impossible. Opens a real Chrome window on the travel portal; complete the login yourself (password + captcha + email code + 'Add This Device'). The script watches for the logged-in state, saves the session cookies, and exits.
Atlas Obscura hidden gem finder. Searches for nearby places filtered for interesting stuff (abandoned sites, ruins, unusual collections, etc.) and scores them by interest level.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., place IDs for Atlas Obscura, flight details for booking). Violates pattern:tool and pattern:response-shaper.
Duplicate tool names (search_flights appears for both Amex and Chase; search appears for Atlas Obscura). LLMs cannot disambiguate which to call. Violates pattern:tool composition rule.
No enum constraints on cabin, hotel, filterBoring parameters. LLMs will hallucinate invalid values (e.g., 'premium economy' instead of 'business'). Violates pattern:constrained-input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Chase Travel portal search via API + Patchright auth. Uses the internal Chase Travel API discovered via network recording. Patchright handles login/auth only. All searches go through API calls made within the authenticated browser context.
Amex Travel portal search via Patchright. Submits search form, follows redirects through Amex login gate, then extracts window.appData (627KB Redux store) from the results page. All flight/hotel data is server-side rendered into this single JSON blob.
Get quick place summary from Atlas Obscura.
No pagination support documented (limit, offset, page_size, next_cursor). Large result sets will blow context windows. Violates pattern:paginated-result.
No error handling guidance. Tools that require 2FA, browser automation, or API auth will fail silently. No recovery hints (e.g., 'If 2FA times out, try AA_2FA_COMMAND env var'). Violates pattern:recovery-guide.