Google Flights MCP — Flight Search, Flight Prices & Cheap Flights
Real-time Google Flights fares for agents.
What it can do
- Search Oneway Flights: FlightPowers one-way fare search: live prices read from Google Flights. Input: origin and destination IATA codes -- the destination may be several codes, as "BCN,LIS,ATH" or ["B
- Search Roundtrip Flights: FlightPowers round-trip fare search: live prices read from Google Flights, priced as paired legs rather than two separate one-ways. Input: origin and destination IATA codes -
What data it sees
Do you need an account
No: the server works without sign-in
Real-time Google Flights fares for agents. Three things people do with this server. Scan for deals: one call takes a date range and a list of destination airports, expands every combination server side, and returns each fare with Google's own low, typical or high verdict. Put live search in your app: flat JSON with a bookable link on every result, and round trips priced as paired legs. Run a 24/7 AI travel agent: add the server, sign in with Google, and schedule it. No ads, no sponsored content. You bring your own RapidAPI key, so every search is billed to your plan and never to anyone else's.
Connecting
One URL, whichever way you connect:
https://flights.flightpowers.com/mcp
Add it, click Sign in, sign in with Google, and paste your RapidAPI key once on the page that opens. It is encrypted before it is stored, only the last four characters are ever shown again, and Disconnect deletes it.
Scripts, CI and clients without a sign-in button send the key on that same URL, either as an x-rapidapi-key header or as ?rapidapi_key=. There is no second endpoint to choose between.
Either way the key is yours, so every search is billed to your plan and never to anyone else's.
Get a key on the Google Flights Live API listing: https://rapidapi.com/mtnrabi/api/google-flights-live-api . BASIC is free with 10 requests a month.
Tools
| Tool | What it does |
|---|---|
search_oneway_flights |
One-way — a single date, or a date range, across one or many destinations |
search_roundtrip_flights |
Round-trip — a fixed return date, or a range of trip lengths via nights |
Both are annotated read-only. They search and read; they cannot book, hold, pay for or cancel anything.
What you get that other flight tools don't return
- A round trip is one request. Both legs priced together, one total, one booking link. SerpApi and HasData make you run a second search with a departure token to price the return.
- Google's own price insights —
price_insights_low/price_insights_highplus alow/typical/highverdict. So an agent can answer "is $209 a good price?" instead of just reporting $209. None of the other Google Flights listings on RapidAPI document it. - One call, not thirty. Pass a departure range and/or several destinations; the server fans out, merges, de-duplicates and re-sorts. "Cheapest flight to Sri Lanka anywhere in October" is one tool call.
search_coverageon every response — the exact dates and destinations searched, so a sampled scan is never mistaken for an exhaustive one.- Airline, stops, layover detail, duration, local departure and arrival times, and a bookable link.
You always know what a search cost
Every response carries api_usage, read from RapidAPI's own rate-limit headers:
| Field | Meaning |
|---|---|
requests_used_by_this_call |
Billed requests this single call consumed |
plan_requests_remaining |
What is left on your plan right now |
plan_requests_limit |
Your plan's ceiling |
Each date × destination combination is one billed request. Cap it per call with max_searches.
Sample response
{
"results": [{
"price": "$71",
"airline": "Wizz Air",
"stops": 0,
"duration": "1 hr 25 min",
"departure_description": "10:15 AM on Wed, Oct 15",
"price_insights_low": 40,
"price_insights_high": 110,
"price_range_in_relation_to_other_periods": "typical",
"buy_link": "https://www.google.com/travel/flights?..."
}],
"search_coverage": { "departure_dates_searched": ["2026-10-15"] },
"api_usage": { "requests_used_by_this_call": 1, "plan_requests_remaining": 49717 }
}
Ready-made prompts
| Prompt | Question it answers |
|---|---|
cheapest_dates |
Scan a month for the lowest fare, judged against the price band |
compare_destinations |
Price several cities from one origin, ranked |
plan_trip |
Round trip across flexible trip lengths, within a budget |
is_this_fare_good |
Book now or wait, on a specific route and date |
Getting a key
Subscribe to the Google Flights Live API on RapidAPI: → https://rapidapi.com/mtnrabi/api/google-flights-live-api
| Plan | Price | Requests / month | Overage | Rate |
|---|---|---|---|---|
| BASIC | $0 | 10, hard cap | not available | not published |
| PRO | $10 / mo | 2,500 | $0.003 each | 150 / minute |
| ULTRA | $25 / mo | 10,000 | $0.003 each | 250 / minute |
| MEGA | $50 / mo | 50,000 | $0.001 each | 500 / minute |
BASIC is a hard cap, so request 11 is refused instead of billed. Every endpoint and every field is on the free tier.
Also available
- 🏨 Hotels — mrabi/booking, Booking.com prices with per-country rate-parity checks
- 🆓 Free tier — mrabi/freemium-google-flights-and-booking-mcp, no key, no signup, one clearly-labeled sponsored card
An independent service returning publicly available flight pricing. Not affiliated with, endorsed by, or sponsored by Google.
Server tool list (2)
Raw names from tools/list. Only developers need these.
| search_oneway_flights | FlightPowers one-way fare search: live prices read from Google Flights. Input: origin and destination IATA codes -- the destination may be several codes, as "BCN,LIS,ATH" or ["BCN","LIS","ATH"] -- plus either one departure date or a date range. Returns each flight's price, airline, duration, stops, a bookable buy_link, and Google's historical price range (price_insights_low / price_insights_high) so you can say whether a fare is actually a good deal. Use it for any one-way fare question, including open-ended ones. For a flexible search make ONE call with a date range and/or several destinations -- do NOT call it once per date. 'Cheapest flight to Sri Lanka anywhere in October' is one call, not thirty. Each date/destination combination is one billed request; the count and the plan's remaining quota come back in `api_usage`. `by_destination` carries one entry per destination you asked for -- empty ones included, each with a `reason` -- so read it before telling a user a destination has no flights. Requires the caller's own RapidAPI key for the Google Flights Live API. Get one (free tier available) at https://rapidapi.com/mtnrabi/api/google-flights-live-api, then pass it as an `x-rapidapi-key` header (preferred), a `?rapidapi_key=` query parameter on the server URL, or your client's own API key field -- first non-empty wins. Usage counts against the caller's own RapidAPI plan, not ours; every response reports what it spent and what is left in `api_usage`. |
| search_roundtrip_flights | FlightPowers round-trip fare search: live prices read from Google Flights, priced as paired legs rather than two separate one-ways. Input: origin and destination IATA codes -- the destination may be several codes, as "BCN,LIS,ATH" or ["BCN","LIS","ATH"] -- a departure date or range, and either a return date or a trip length in nights. Returns the total price for both legs, per-leg airline, stops and duration, and a single bookable buy_link for the trip. Use it for any return-trip fare question. For a flexible search make ONE call: pass departure_date_from / departure_date_to for the outbound range and `nights` instead of return_date to compare trip lengths -- '5 to 7 nights in Rome sometime in May' is one call. Each date/destination combination is one billed request; the count and the plan's remaining quota come back in `api_usage`. `by_destination` carries one entry per destination you asked for -- empty ones included, each with a `reason` -- so read it before telling a user a destination has no flights. Requires the caller's own RapidAPI key for the Google Flights Live API. Get one (free tier available) at https://rapidapi.com/mtnrabi/api/google-flights-live-api, then pass it as an `x-rapidapi-key` header (preferred), a `?rapidapi_key=` query parameter on the server URL, or your client's own API key field -- first non-empty wins. Usage counts against the caller's own RapidAPI plan, not ours; every response reports what it spent and what is left in `api_usage`. |