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.
How to connect
How to connect Google Flights MCP — Flight Search, Flight Prices & Cheap Flights to Claude
The server address to paste into Claude settings:
https://google-flights--mrabi.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Google Flights MCP — Flight Search, Flight Prices & Cheap Flights to ChatGPT
The server address to paste into ChatGPT settings:
https://google-flights--mrabi.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Google Flights MCP — Flight Search, Flight Prices & Cheap Flights to Cursor
The server address to paste into Cursor settings:
https://google-flights--mrabi.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
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`. |