Trip Scout
Provides travel planning for Amazon Alexa+ through a self-hosted MCP server and Agent Skill, enabling voice-driven trip planning, flight and hotel search, budget-aware package ranking, and persistent price watching.
Searches live Google Flights and Google Hotels to compare fares across a travel window, find cheapest dates, retrieve hotel options with real prices, and build ranked flight and hotel packages.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Trip ScoutPlan a long weekend in Barcelona in November under $2500"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Trip Scout — an agentic travel planner for Alexa+
"Alexa, plan a long weekend in Barcelona in November — we have $2,500."
"Best value: fly Friday, November 13, back Monday the 16th, and stay at Casa Jam, rated 4.7. $1,394 in total — $1,106 under your budget. Want me to watch this price?"
Trip Scout is a self-hosted MCP server (spec 2025-11-25, Streamable HTTP) plus an Agent Skill that gives Alexa+ a real travel planner. One spoken request fans out into dozens of live Google Flights and Google Hotels searches, and comes back as one sentence for the ear and an MCP Apps card for the Echo Show screen.
It is not a wrapper around one API. It is an agentic workflow:
compares round-trip fares across a whole travel window (up to 14 departure days, in parallel),
takes the three cheapest dates and pulls hotels for exactly those nights,
filters hotels by the traveler's standards (review-weighted rating, stars, no dorm beds for couples),
builds and ranks complete flight + hotel packages against the budget,
remembers the traveler (home airport, party size, cabin, nonstop) and watches prices across sessions.
Track | Alexa+ (self-hosted MCP server + Agent Skill, with a simulated Alexa+ host) |
MCP | protocol |
MCP Apps |
|
Agent Skill |
|
State | SQLite: traveler profiles, price watches with history, saved trips — per |
Data | live Google Flights + Google Hotels, no API keys, no browser automation |
License | MIT |
Try it in 60 seconds
git clone https://github.com/janik4321sdfa/trip-scout && cd trip-scout
python -m venv .venv && .venv/Scripts/activate # Windows (macOS/Linux: source .venv/bin/activate)
pip install -r requirements.txt
python run_demo.py # starts the MCP server (:8765) and the Alexa+ simulator (:8770)Open http://127.0.0.1:8770, press the mic (Chrome/Edge) or type. Try the chips: "I live in New York" → "Plan a long weekend in Barcelona in November under 2500 dollars" → "Watch that price" → "Did any of my prices drop?"
Use the MCP server from any MCP client (Claude Desktop, Cursor, MCP Inspector, Alexa+):
python -m trip_scout.server # http://127.0.0.1:8765/mcp
npx @modelcontextprotocol/inspector # connect to the URL above, transport "Streamable HTTP"Related MCP server: Google Flights MCP Server
Architecture
flowchart LR
U[User voice] --> A[Alexa+ / simulator host<br/>LLM + Agent Skill]
A -- MCP 2025-11-25<br/>Streamable HTTP --> S[Trip Scout MCP server]
S --> P[Planner<br/>parallel fan-out, ranking]
P --> F[Google Flights engine<br/>tfs protobuf]
P --> H[Google Hotels engine<br/>ts/qs protobuf, paging]
S --> DB[(SQLite<br/>profiles, price watches, trips)]
S -- ui://trip-scout/view.html --> V[MCP Apps view<br/>Echo Show cards]
V -- tools/call, ui/open-link --> AComponent | File | What it does |
MCP server | 10 tools, 1 MCP Apps resource, progress notifications, Origin/Host validation, optional bearer auth | |
Planner | date-window fan-out, hotel matching, Bayesian rating, budget-aware package ranking | |
Flights engine | builds Google Flights' | |
Hotels engine | builds Google Hotels' | |
Places & dates | "Heathrow", "New York" → IATA/metro codes (OurAirports, public domain); "next friday", "november", "this weekend" | |
State | profiles, price watches with history, saved trips | |
MCP Apps view | dependency-free SEP-1865 view: packages, price calendar, flights, hotels, price watches | |
Agent Skill | how a voice agent should use the tools | |
Alexa+ simulator | the host: loads the Skill, lets an LLM call MCP tools, speaks, renders the MCP App, shows every MCP call |
Tools
Tool | Example utterance | Notes |
| "Plan a long weekend in Lisbon in November under 2,000 dollars" | the agentic workflow above; reports progress |
| "When is it cheapest to fly to Tokyo next month?" | up to 14 days compared in parallel, price calendar card |
| "Flights to London on December 3rd, back the 10th" | typical price range + low/typical/high verdict |
| "A hotel in Rome for three nights from Friday" | review-weighted ranking, filters |
| "Watch that price" … a week later: "Did any of my prices drop?" | persistent, per user, with history |
| "I live in Chicago, we're two adults, nonstop only" | asked once, remembered forever |
Every tool returns structuredContent (for the screen) plus a voice-ready speech sentence — so the host can answer immediately after the tool call without a second LLM round trip.
Design decisions (and why)
Voice first. Answers are one or two sentences, dates are spoken ("Friday, November 13"), prices rounded, no IDs or flight numbers read aloud — the card carries the detail.
Latency. Flight searches take ~1.2 s; a 14-date comparison ~3 s; a complete trip plan ~10–15 s with live progress notifications. The host skips the second LLM call when a tool already produced the sentence.
Trustworthy picks. A 5.0 hotel with 12 reviews does not beat a 4.7 with 3,000 (Bayesian average); dorms and single rooms are excluded for groups.
Honest budgets. If nothing fits, Trip Scout says the cheapest total instead of pretending.
No lock-in. The simulator's LLM is any OpenAI-compatible endpoint — a free public one by default, Amazon Bedrock by setting
LLM_BASE_URL/LLM_MODEL. If the LLM is down, a rule-based intent router keeps the demo alive.Security. Origin and Host headers are validated (DNS-rebinding protection per the spec), the server binds to localhost by default,
TRIP_SCOUT_TOKENenables bearer auth for deployments, user data is isolated perx-user-id.
Tests
python -m pytest tests/test_units.py # offline: dates, places, protobuf encoders, persistence, intents
python tests/smoke_mcp.py # live: real MCP client over Streamable HTTP, every tool
python tests/conversation.py # live: the full demo conversation through the Alexa+ simulatorConfiguration
Variable | Default | |
|
| MCP server bind |
| – | require |
| localhost | DNS-rebinding allow-lists (comma separated) |
|
| SQLite state |
| Pollinations | simulator's LLM (e.g. Bedrock OpenAI-compatible endpoint) |
Built during the hackathon
Everything in this repository was written for the Build, Ship, Shape hackathon (September–October 2026). The flight and hotel engines are also published as standalone open-source libraries: google-flights-python and google-hotels-python.
Product feedback and the friction log for the Amazon teams: docs/FEEDBACK.md.
Disclaimer
Unofficial; not affiliated with Google. Uses publicly available search results at human-like request rates. Prices change constantly — always confirm on the booking site.
This server cannot be deployed
Maintenance
Related MCP Connectors
Personal AI travel agent. Points optimization, live flight/hotel/award search, trip planning.
Give AI assistants access to real-time data. Search the web, compare flights, find hotels, and more.
Search award flights and cash fares, optimize points, and predict fares inside ChatGPT and Claude.
Your personal AI travel concierge — flights, hotels, 116M+ POIs, visas, weather & more
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables LLMs to perform travel-related tasks by interacting with Google Maps and travel planning services including location search, place details, and travel time calculations.554 npm99MIT
- AlicenseAqualityDmaintenanceIntegrates Google Flights data into AI workflows for natural language flight searches, price comparisons, flexible date searches, and multi-city itinerary planning with support for various cabin classes and passenger types.95MIT
- AlicenseAqualityBmaintenanceEnables travel search workflows including airport lookup, route comparison, travel timing guidance, and external booking links with commission-eligible links.561 npm1MIT
- AlicenseAqualityDmaintenanceEnables Claude to plan trips by performing live searches against Google Flights, hotels, vacation rentals, activities, and events, plus weather and currency conversion.115MIT