{"name":"com.flightpowers/google-flights","slug":"flightpowers-google-flights","title":"Google Flights Search (Real-Time Fares)","description":"Real-time Google Flights: one-way and round-trip fares over date ranges, with price verdicts.","url":"https://mcp.market/server/flightpowers-google-flights","rating":null,"grade":"A","score":87,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":26,"stars":1,"forks":1,"downloads_week":null,"last_push_at":"2026-09-17T11:56:55.000Z","license":"MIT"},"uptime":{"percent":100,"checks":2,"ok":2,"last_checked_at":"2026-09-19T21:21:08.340Z","last_ok_at":"2026-09-19T21:21:08.340Z","latency_ms":173},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/mtnrabi/google-flights-mcp","website":"https://flights.flightpowers.com","version":"1.2.0","remotes":[{"type":"streamable-http","url":"https://flights.flightpowers.com/mcp","headers":[{"description":"Your own RapidAPI key for the Google Flights Live API. Free tier at https://rapidapi.com/mtnrabi/api/google-flights-live-api","format":"string","isSecret":true,"name":"x-rapidapi-key"}]}],"packages":[],"tools":[{"name":"search_oneway_flights","description":"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.\n\nUse 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.\n\nEach date/destination combination is one billed request; the count and the plan's remaining quota come back in `api_usage`.\n\n`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.\n\nRequires 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`. No key? Sign in with Google and the first 10 searches each day are free on this server -- ad-free, nothing to paste. Connect your own RapidAPI key at https://flights.flightpowers.com/connect to remove the cap.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"from_airport":{"description":"Origin IATA code, e.g. \"TLV\". One origin per search; a second one is refused rather than searched.","type":"string"},"to_airport":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}],"description":"Destination airport. One IATA code (\"BCN\"), several separated by commas (\"BCN,LIS,ATH\"), or a list ([\"BCN\",\"LIS\",\"ATH\"]) -- every shape is accepted and the destinations are compared in the same search."},"departure_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Single departure date, \"YYYY-MM-DD\"."},"departure_date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"First date of a departure range."},"departure_date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Last date of a departure range."},"max_stops":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum stops per flight. 0 means non-stop only."},"airline_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Restrict to these airline codes, e.g. [\"LY\"]."},"exclude_airline_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Exclude these airline codes."},"departure_time_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Earliest departure hour, 0-23."},"departure_time_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Latest departure hour, 0-23."},"arrival_time_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Earliest arrival hour, 0-23."},"arrival_time_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Latest arrival hour, 0-23."},"currency":{"default":"usd","description":"ISO currency code, default \"usd\".","type":"string"},"max_price":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only return flights at or below this price."},"seat_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"1 economy, 2 premium economy, 3 business, 4 first."},"passengers":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"Passenger counts as [adults, children, infants]."},"sort_by":{"default":"best","description":"\"best\", \"price\", or \"duration\". Applied across all results.","type":"string"},"limit":{"default":10,"description":"Maximum flights to return, after merging and sorting.","type":"integer"},"max_searches":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Cap the billed requests this call may make. Lower it to spend less of the plan's quota on a wide search; the range is then sampled evenly rather than cut short."},"use_fallback":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Leave unset. Switches the search to a second, independent flight data source instead of the usual Google Flights page read. Unset already escalates to that source once, automatically, after a search's retries have failed. true forces it inline on every attempt -- much slower, and it can time out. false disables it entirely, that automatic retry included."}},"required":["from_airport","to_airport"],"additionalProperties":false}},{"name":"search_roundtrip_flights","description":"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.\n\nUse 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.\n\nEach date/destination combination is one billed request; the count and the plan's remaining quota come back in `api_usage`.\n\n`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.\n\nRequires 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`. No key? Sign in with Google and the first 10 searches each day are free on this server -- ad-free, nothing to paste. Connect your own RapidAPI key at https://flights.flightpowers.com/connect to remove the cap.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"from_airport":{"description":"Origin IATA code, e.g. \"TLV\". One origin per search; a second one is refused rather than searched.","type":"string"},"to_airport":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}],"description":"Destination airport. One IATA code (\"BCN\"), several separated by commas (\"BCN,LIS,ATH\"), or a list ([\"BCN\",\"LIS\",\"ATH\"]) -- every shape is accepted and the destinations are compared in the same search."},"departure_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Single outbound date, \"YYYY-MM-DD\"."},"departure_date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"First date of an outbound range."},"departure_date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Last date of an outbound range."},"return_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Fixed return date. Use this OR nights, not both."},"nights":{"anyOf":[{"type":"integer"},{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"Trip length in nights; a number, or a list like [5, 6, 7]. The return date is derived from each departure date."},"max_departure_stops":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum stops on the outbound leg."},"max_return_stops":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum stops on the return leg."},"departure_airline_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Restrict the outbound leg to these airlines."},"return_airline_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Restrict the return leg to these airlines."},"currency":{"default":"usd","description":"ISO currency code, default \"usd\".","type":"string"},"max_price":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only return trips at or below this total price."},"seat_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"1 economy, 2 premium economy, 3 business, 4 first."},"passengers":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"Passenger counts as [adults, children, infants]."},"sort_by":{"default":"best","description":"\"best\", \"price\", or \"duration\". Applied across all results.","type":"string"},"limit":{"default":10,"description":"Maximum trips to return, after merging and sorting.","type":"integer"},"max_searches":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Cap the billed requests this call may make. Lower it to spend less of the plan's quota on a wide search; the range is then sampled evenly rather than cut short."},"use_fallback":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Leave unset. Switches the search to a second, independent flight data source instead of the usual Google Flights page read. Unset already escalates to that source once, automatically, after a search's retries have failed. true forces it inline on every attempt -- much slower, and it can time out. false disables it entirely, that automatic retry included."}},"required":["from_airport","to_airport"],"additionalProperties":false}}],"scan":{"score":87,"grade":"A","scanned_at":"2026-09-19T19:17:44.364Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:17:44.389Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 302ms"]},"poisoning":{"score":15,"max":15,"notes":["2 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://flights.flightpowers.com/mcp","reachable":true,"authRequired":false,"latencyMs":302,"serverInfo":{"name":"google-flights-mcp","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"mtnrabi","repo":"google-flights-mcp","archived":false,"pushedAt":"2026-09-17T11:56:55Z","stars":1,"forks":1,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/46162004?v=4","ownerCreatedAt":"2018-12-26T12:59:10Z","license":"MIT"},"icon":{"url":"https://flights.flightpowers.com/favicon.svg","source":"site"},"presence":{"stars":1,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-17T11:56:55.000Z","score":26}}}},"grade_history":[],"reviews":[]}