Google Flights Search (Real-Time Fares)
REMOTE · FLIGHTS.FLIGHTPOWERS.COM
Real-time Google Flights: one-way and round-trip fares over date ranges, with price verdicts.
Available components
Last scanned (22 hours ago)
Scores higher than 99% of remote servers
Reachable. Last reached 16 Oct 2026.
Category Maps and Location
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security97
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability57
- 80% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 3536 tokens (~1178/item across 3 items; 2 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 2 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 12 Oct 26 0
- “search_roundtrip_flights” added an optional parameter “returns_per_outbound” cosmetic
1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.
- 29 Sept 26 0
- “search_roundtrip_flights” reworded the description of “passengers” cosmetic
- “search_oneway_flights” reworded the description of “passengers” cosmetic
2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Sept 26 0
- “search_oneway_flights” reworded the description of “passengers” cosmetic
- “search_roundtrip_flights” reworded the description of “passengers” cosmetic
2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 23 Sept 26 −3
- The server rewrote its instructions, which are the text every model session reads security
- Tool “search_roundtrip_flights” rewrote its description, which is the text the model reads security
- Schema quality: 2236 → 3215 ▼ functional
- Schema quality: 100% → 80% ▼ functional
- First check of Capabilities: pass functional
- Schema quality: excellent → good functional
- New resource “flights_result_card” functional
- “search_roundtrip_flights” added an optional parameter “verbose” cosmetic
- “search_oneway_flights” added an optional parameter “verbose” cosmetic
- “search_roundtrip_flights” reworded the description of “max_searches” cosmetic
- “search_oneway_flights” reworded the description of “max_searches” cosmetic
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “search_oneway_flights” rewrote its description, which is the text the model reads security
- Tool “search_roundtrip_flights” rewrote its description, which is the text the model reads security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 16 Oct 2026 · Probed https://flights.flightpowers.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=flights.flightpowers.com | CN=YR1,O=Let's Encrypt,C=US | 18 Aug 2026 | 16 Nov 2026 | RSA 2048 | SHA256-RSA | 5488d0d6a2059600d85afc9c07f68a2d2c6 |
| SANs: flights.flightpowers.com | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of flights.flightpowers.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| flightpowers.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://flights.flightpowers.com/.well-known/oauth-protected-resource/mcp"
Bearer resource_metadata="https://flights.flightpowers.com/.well-known/oauth-protected-resource/mcp" | Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
Protected resource metadata
| Document | https://flights.flightpowers.com/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://flights.flightpowers.com/mcp |
| Authorisation server | https://flights.flightpowers.com |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://flights.flightpowers.com/mcp | Verified | 200 | |
| http (plaintext) | http://flights.flightpowers.com/mcp | HTTPS enforced | 308 | https://flights.flightpowers.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
search_oneway_flights FlightPowers: search one-way flights ~1,192
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`. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| airline_codes | – | – | Restrict to these airline codes, e.g. ["LY"]. |
| arrival_time_max | – | – | Latest arrival hour, 0-23. |
| arrival_time_min | – | – | Earliest arrival hour, 0-23. |
| currency | string | – | ISO currency code, default "usd". |
| departure_date | – | – | Single departure date, "YYYY-MM-DD". |
| departure_date_from | – | – | First date of a departure range. |
| departure_date_to | – | – | Last date of a departure range. |
| departure_time_max | – | – | Latest departure hour, 0-23. |
| departure_time_min | – | – | Earliest departure hour, 0-23. |
| exclude_airline_codes | – | – | Exclude these airline codes. |
| from_airport | string | yes | Origin IATA code, e.g. "TLV". One origin per search; a second one is refused rather than searched. |
| limit | integer | – | Maximum flights to return, after merging and sorting. |
| max_price | – | – | Only return flights at or below this price. |
| max_searches | – | – | The billed requests this call may make, up or down. Leave it out for the normal behaviour: the cap covers the request when the request is reasonable (a whole month at three trip lengths is 93 combina… |
| max_stops | – | – | Maximum stops per flight. 0 means non-stop only. |
| passengers | – | – | One entry per traveller, not a count: 1 adult, 2 child (aged 2-11), 3 infant on lap, 4 infant in seat, e.g. [1, 1, 2] for two adults and a child. At least one adult, each infant on lap needs its own… |
| seat_type | – | – | 1 economy, 2 premium economy, 3 business, 4 first. |
| sort_by | string | – | "best", "price", or "duration". Applied across all results. |
| to_airport | – | yes | 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 searc… |
| use_fallback | – | – | 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'… |
| verbose | boolean | – | Return every field the upstream sends on each fare, and every fare that was selected, with no row bound. Off by default: a result carries the best rows by your sort_by in a compact shape (dates, dest… |
| Name | Type | Req | Description |
|---|---|---|---|
| api_usage | object | – | What this call cost the caller's own RapidAPI plan, and what remains on it. Present on every response that reached the upstream, including a degraded one -- a search that failed was still billed. |
| by_destination | object | – | One entry per destination the REQUEST asked for, in request order, present whether or not that destination has any flights in `results`. A destination with an empty `rows` array is a hole in the answ… |
| from_airport | string | – | The origin, as the upstream renders it ('Tel Aviv (TLV)'). One origin per search, so it is on the response rather than repeated on every row. |
| message | string | – | Present when there is something the model must relay to the user rather than silently absorb -- no results, a degraded search, a missing key or a spent quota. |
| needs_api_key | boolean | – | True when no usable RapidAPI key arrived with the call, or the upstream rejected the one that did. No search was run and nothing was billed; signup_url and message say how to fix it. |
| partial | string | – | Present when some searches failed but others succeeded. Plain text saying how much of the request the results cover. |
| quota_exhausted | boolean | – | True when the caller's RapidAPI plan has no requests left for the current period. |
| result_count | integer | – | How many rows are in `results`; same as results_returned. |
| results | array | yes | The fares found, already sorted and deduplicated. An empty array is only meaningful when search_status is 'empty'. This is the TOP results_returned of results_total rows by the sort you asked for --… |
| results_returned | integer | – | How many of them are in `results` -- the best ones by the sort_by asked for, cheapest first by default, and never all of one destination at the expense of another. Lower than results_total only when… |
| results_total | integer | – | How many fares the search selected across every searched combination, before any row bound. Equal to results_returned unless the server bounded a response it had widened itself. |
| search_coverage | object | – | What was actually searched. Present whether or not the request was truncated, so a model can state honestly what its answer rests on. |
| search_status | string | – | Whether the underlying search actually completed, read from the backend's X-Search-Status header. 'ok': every combination searched returned results. 'empty': the search completed and Google genuinely… |
| signup_url | string | – | Where the caller subscribes or changes plan. |
No examples provided.
search_roundtrip_flights FlightPowers: search round-trip flights ~1,467
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. A WHOLE MONTH is one call too. departure_date_from "2026-10-01", departure_date_to "2026-10-31" and nights [3, 4, 5] prices every departure day in October at three trip lengths and tells you which combination is cheapest. That is 93 date/night combinations and the cap rises to cover them by itself -- do not narrow the question to make it fit, and do not split it into several calls. Each date/night/destination combination is ONE request billed to the caller's plan, so a month at three trip lengths costs 93 of them and the same month across two destinations costs 186. Say that number before running a search that large if the user has not asked for it in so many words. A search that fails with a server error is retried once and RapidAPI bills the retry, so the figure to quote back is `api_usage.hub_requests_billed` (what the plan was actually charged), not the combination count. Both come back in `api_usage`, with the plan's remaining quota. `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…
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | ISO currency code, default "usd". |
| departure_airline_codes | – | – | Restrict the outbound leg to these airlines. |
| departure_date | – | – | Single outbound date, "YYYY-MM-DD". |
| departure_date_from | – | – | First date of an outbound range. |
| departure_date_to | – | – | Last date of an outbound range. |
| from_airport | string | yes | Origin IATA code, e.g. "TLV". One origin per search; a second one is refused rather than searched. |
| limit | integer | – | Maximum trips to return, after merging and sorting. |
| max_departure_stops | – | – | Maximum stops on the outbound leg. |
| max_price | – | – | Only return trips at or below this total price. |
| max_return_stops | – | – | Maximum stops on the return leg. |
| max_searches | – | – | The billed requests this call may make, up or down. Leave it out for the normal behaviour: the cap covers the request when the request is reasonable (a whole month at three trip lengths is 93 combina… |
| nights | – | – | Trip length in nights; a number, or a list like [5, 6, 7]. The return date is derived from each departure date. |
| passengers | – | – | One entry per traveller, not a count: 1 adult, 2 child (aged 2-11), 3 infant on lap, 4 infant in seat, e.g. [1, 1, 2] for two adults and a child. At least one adult, each infant on lap needs its own… |
| return_airline_codes | – | – | Restrict the return leg to these airlines. |
| return_date | – | – | Fixed return date. Use this OR nights, not both. |
| returns_per_outbound | – | – | How many return flights to pair with each outbound flight, 1 to 5 (default 2). Each date/destination combination searched still returns at most 10 trips; at 5 they are picked from up to 50 pairings i… |
| seat_type | – | – | 1 economy, 2 premium economy, 3 business, 4 first. |
| sort_by | string | – | "best", "price", or "duration". Applied across all results. |
| to_airport | – | yes | 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 searc… |
| use_fallback | – | – | 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'… |
| verbose | boolean | – | Return every field the upstream sends on each fare, and every fare that was selected, with no row bound. Off by default: a result carries the best rows by your sort_by in a compact shape (dates, dest… |
| Name | Type | Req | Description |
|---|---|---|---|
| api_usage | object | – | What this call cost the caller's own RapidAPI plan, and what remains on it. Present on every response that reached the upstream, including a degraded one -- a search that failed was still billed. |
| by_destination | object | – | One entry per destination the REQUEST asked for, in request order, present whether or not that destination has any flights in `results`. A destination with an empty `rows` array is a hole in the answ… |
| from_airport | string | – | The origin, as the upstream renders it ('Tel Aviv (TLV)'). One origin per search, so it is on the response rather than repeated on every row. |
| message | string | – | Present when there is something the model must relay to the user rather than silently absorb -- no results, a degraded search, a missing key or a spent quota. |
| needs_api_key | boolean | – | True when no usable RapidAPI key arrived with the call, or the upstream rejected the one that did. No search was run and nothing was billed; signup_url and message say how to fix it. |
| partial | string | – | Present when some searches failed but others succeeded. Plain text saying how much of the request the results cover. |
| quota_exhausted | boolean | – | True when the caller's RapidAPI plan has no requests left for the current period. |
| result_count | integer | – | How many rows are in `results`; same as results_returned. |
| results | array | yes | The fares found, already sorted and deduplicated. An empty array is only meaningful when search_status is 'empty'. This is the TOP results_returned of results_total rows by the sort you asked for --… |
| results_returned | integer | – | How many of them are in `results` -- the best ones by the sort_by asked for, cheapest first by default, and never all of one destination at the expense of another. Lower than results_total only when… |
| results_total | integer | – | How many fares the search selected across every searched combination, before any row bound. Equal to results_returned unless the server bounded a response it had widened itself. |
| search_coverage | object | – | What was actually searched. Present whether or not the request was truncated, so a model can state honestly what its answer rests on. |
| search_status | string | – | Whether the underlying search actually completed, read from the backend's X-Search-Status header. 'ok': every combination searched returned results. 'empty': the search completed and Google genuinely… |
| signup_url | string | – | Where the caller subscribes or changes plan. |
No examples provided.
How do I install the Google Flights Search (Real-Time Fares) MCP server?
Google Flights Search (Real-Time Fares) is a hosted endpoint at https://flights.flightpowers.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · flights.flightpowers.com
claude mcp add --transport http com-flightpowers-google-flights 'https://flights.flightpowers.com/mcp'
What is the Google Flights Search (Real-Time Fares) MCP server?
Google Flights Search (Real-Time Fares) is an MCP server listed in the public MCP registry as com.flightpowers/google-flights. Real-time Google Flights: one-way and round-trip fares over date ranges, with price verdicts. This page covers its hosted endpoint (https://flights.flightpowers.com/mcp).
Is the Google Flights Search (Real-Time Fares) MCP server safe to use?
Google Flights Search (Real-Time Fares) scores 91 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Google Flights Search (Real-Time Fares) MCP server expose?
Google Flights Search (Real-Time Fares) exposes 2 tools: search_oneway_flights, search_roundtrip_flights. Their descriptions and schemas cost roughly 2,659 tokens of context every time the server is loaded.
Does the Google Flights Search (Real-Time Fares) MCP server require authentication?
Yes. Google Flights Search (Real-Time Fares) asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Google Flights Search (Real-Time Fares) MCP server still maintained?
Google Flights Search (Real-Time Fares) is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.