{"id":98328,"date":"2026-10-31T19:07:02","date_gmt":"2026-10-31T11:07:02","guid":{"rendered":"https:\/\/www.ahhhhfs.com\/98328\/"},"modified":"2026-10-31T19:15:31","modified_gmt":"2026-10-31T11:15:31","slug":"google-flights-mcp-use-fli-with-claude-cli-and-python","status":"publish","type":"post","link":"https:\/\/www.ahhhhfs.com\/en\/98328\/","title":{"rendered":"Google Flights MCP: Use Fli with Claude, CLI and Python"},"content":{"rendered":"<p>If you want Claude to search Google Flights instead of opening the site and changing filters manually, <strong>Fli<\/strong> is one of the more practical open-source options. It provides a <strong>Google Flights MCP<\/strong> server that lets Claude search flights, compare airports and cabin classes, and look for cheaper travel dates from a conversation.<\/p>\n<p>Fli is not limited to MCP. It also includes a CLI and Python library, so the same flight search workflow can be used from a terminal, a script or an AI agent. The project is released under the MIT License, and its source code and installation instructions are available in the <a href=\"https:\/\/github.com\/punitarani\/fli\" target=\"_blank\" rel=\"noopener\">Fli GitHub repository<\/a>.<\/p>\n<p>There is one important detail to know before installing it. Fli changed the way it retrieves Google Flights data in 2026. One-way, round-trip and flexible-date searches still work, but multi-city search, Booking Options and several filters are currently limited.<\/p>\n<p><a href=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/google-flights-mcp-fli-claude-flight-search-en.jpg\"><br \/>\n<picture><source srcset=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/google-flights-mcp-fli-claude-flight-search-en.webp \"  type=\"image\/webp\"><img decoding=\"async\" class=\"alignnone size-full sp-no-webp\" src=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/google-flights-mcp-fli-claude-flight-search-en.jpg\" alt=\"Fli Google Flights MCP lets Claude search and compare flights\" width=\"1536\" height=\"1024\" title><\/picture><br \/>\n<\/a><\/p>\n<p><strong>Note:<\/strong> This guide is based on the current Fli GitHub documentation and Google documentation. Because Fli depends on Google Flights search pages and data structures, supported features may change again in future releases.<\/p>\n<h2>What can the Google Flights MCP search?<\/h2>\n<p>Once Fli is connected to Claude, you can ask for flights using normal language instead of manually building search parameters.<\/p>\n<figure style=\"margin: 24px auto; text-align: center;\"><img decoding=\"async\" style=\"max-width: 800px; width: 100%; height: auto; border-radius: 8px;\" src=\"https:\/\/raw.githubusercontent.com\/punitarani\/fli\/main\/docs\/assets\/mcp-demo.gif\" alt=\"Fli Google Flights MCP flight search demo in an AI assistant\" title=\"\"><figcaption style=\"margin-top: 8px; font-size: 14px; color: #666;\">Fli flight search through MCP<\/figcaption><\/figure>\n<p>For example:<\/p>\n<ul>\n<li>Find nonstop business-class flights from San Francisco to Tokyo on December 20.<\/li>\n<li>Which dates next month are cheapest for flying from New York to London?<\/li>\n<li>Show only Oneworld flights and exclude a specific airline.<\/li>\n<li>Compare flights from JFK, EWR and LGA to London.<\/li>\n<\/ul>\n<p>Most flight-search tasks revolve around two core Fli tools:<\/p>\n<table>\n<thead>\n<tr>\n<th>Tool<\/th>\n<th>What it does<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>search_flights<\/code><\/td>\n<td>Searches one-way or round-trip flights for specific dates and applies filters such as cabin class, airline, stops and departure time.<\/td>\n<\/tr>\n<tr>\n<td><code>search_dates<\/code><\/td>\n<td>Checks prices across a date range to help find cheaper days to travel.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Fli is therefore more useful as a <strong>flight search and comparison layer<\/strong> than as a booking system. It can help narrow down options, but it does not currently replace the full Google Flights booking flow.<\/p>\n<h2>How can Fli filter Google Flights results?<\/h2>\n<p>The useful part of Fli is not simply searching from one airport to another. It can combine many of the filters that normally require several clicks in Google Flights.<\/p>\n<p>For example, a New York search does not have to start from only JFK. You can compare JFK, EWR and LGA together, then limit the results to business class, nonstop flights or a specific airline alliance.<\/p>\n<ul>\n<li>One or multiple departure and arrival airports<\/li>\n<li>Economy, Premium Economy, Business and First Class<\/li>\n<li>Nonstop, one-stop or more connecting flights<\/li>\n<li>Included or excluded airlines<\/li>\n<li>Oneworld, SkyTeam and Star Alliance filters<\/li>\n<li>Minimum and maximum layover times<\/li>\n<li>Departure time windows<\/li>\n<li>Adults, children, infants in seats and lap infants<\/li>\n<li>Currency, language and country settings<\/li>\n<li>Sorting by price, duration, departure time or arrival time<\/li>\n<\/ul>\n<p>These filters become much more useful when they are combined. Instead of changing several options in Google Flights, you could ask Claude to find business-class flights from JFK, EWR or LGA to London next month, allow no more than one stop, exclude a particular airline and prioritize cheaper dates.<\/p>\n<p><code>search_dates<\/code> is useful when your schedule is flexible. Give it a range of several weeks and Fli can check the dates individually instead of forcing you to guess which day might be cheaper.<\/p>\n<p>Round-trip searches also have a detail worth knowing. Fli uses <code>top_n<\/code> to decide how many outbound options should be expanded into return-flight combinations. The default is 5 and the maximum is 10, which means a round-trip query can require <code>1 + top_n<\/code> page fetches.<\/p>\n<h2>How to install the Fli Google Flights MCP<\/h2>\n<p><a href=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/fli-google-flights-cli-demo.jpg\"><br \/>\n<picture><source srcset=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/fli-google-flights-cli-demo.webp \"  type=\"image\/webp\"><img decoding=\"async\" class=\"alignnone size-full sp-no-webp\" src=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/fli-google-flights-cli-demo.jpg\" alt=\"Fli CLI interface for searching Google Flights flights\" width=\"2792\" height=\"2044\" title><\/picture><br \/>\n<\/a><\/p>\n<p>The project recommends installing the CLI and MCP server with <code>pipx<\/code>:<\/p>\n<pre><code>pipx install flights<\/code><\/pre>\n<p>Then check that the commands are available:<\/p>\n<pre><code>fli --help\r\nwhich fli-mcp<\/code><\/pre>\n<p>Start the MCP server over STDIO with:<\/p>\n<pre><code>fli-mcp<\/code><\/pre>\n<p>Fli also supports Streamable HTTP:<\/p>\n<pre><code>fli-mcp-http<\/code><\/pre>\n<p>The default endpoint is:<\/p>\n<pre><code>http:\/\/127.0.0.1:8000\/mcp\/<\/code><\/pre>\n<p>If <code>fli-mcp<\/code> returns an <code>MCP dependencies are not installed<\/code> message, install the MCP extra:<\/p>\n<pre><code>pip install 'flights[mcp]'<\/code><\/pre>\n<h2>How to connect Fli to Claude Desktop<\/h2>\n<p>On macOS, the Claude Desktop MCP configuration file is typically located at:<\/p>\n<pre><code>~\/Library\/Application Support\/Claude\/claude_desktop_config.json<\/code><\/pre>\n<p>Add Fli under <code>mcpServers<\/code>:<\/p>\n<pre><code>{\r\n  \"mcpServers\": {\r\n    \"fli\": {\r\n      \"command\": \"fli-mcp\",\r\n      \"args\": []\r\n    }\r\n  }\r\n}<\/code><\/pre>\n<p><a href=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/fli-claude-desktop-mcp-setup.jpg\"><br \/>\n<picture><source srcset=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/fli-claude-desktop-mcp-setup.webp \"  type=\"image\/webp\"><img decoding=\"async\" class=\"alignnone size-full sp-no-webp\" src=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/fli-claude-desktop-mcp-setup.jpg\" alt=\"Fli Google Flights MCP setup in Claude Desktop\" width=\"1660\" height=\"886\" title><\/picture><br \/>\n<\/a><\/p>\n<p>If Claude cannot find the command, run:<\/p>\n<pre><code>which fli-mcp<\/code><\/pre>\n<p>Then replace the command with the full path:<\/p>\n<pre><code>{\r\n  \"mcpServers\": {\r\n    \"fli\": {\r\n      \"command\": \"\/Users\/&lt;user&gt;\/.local\/bin\/fli-mcp\"\r\n    }\r\n  }\r\n}<\/code><\/pre>\n<p>Save the file and restart Claude Desktop.<\/p>\n<h2>Fli also works from the CLI and Python<\/h2>\n<p>You do not need an AI assistant to use Fli. The CLI can run flight searches directly from the terminal.<\/p>\n<pre><code>fli flights JFK LHR 2026-12-20 --class BUSINESS --stops NON_STOP --sort DURATION<\/code><\/pre>\n<p>To search a date range:<\/p>\n<pre><code>fli dates JFK LHR --from 2026-12-01 --to 2027-01-10 --monday --friday<\/code><\/pre>\n<p>For Python:<\/p>\n<pre><code>pip install flights<\/code><\/pre>\n<p>For TypeScript \/ JavaScript:<\/p>\n<pre><code>npm install fli-js<\/code><\/pre>\n<p>or:<\/p>\n<pre><code>bun add fli-js<\/code><\/pre>\n<h2>Fli changed how it retrieves Google Flights data in 2026<\/h2>\n<p>Fli does not retrieve Google Flights data the same way it did in earlier versions.<\/p>\n<p><a href=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/google-flights-search-interface.jpg\"><br \/>\n<picture><source srcset=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/google-flights-search-interface.webp \"  type=\"image\/webp\"><img decoding=\"async\" class=\"alignnone size-full sp-no-webp\" src=\"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/google-flights-search-interface.jpg\" alt=\"Google Flights flight search results interface\" width=\"2708\" height=\"1898\" title><\/picture><br \/>\n<\/a><\/p>\n<p>Starting in August 2026, Google changed the validation used by parts of its flight-search backend. Requests that Fli had previously relied on could still return HTTP 200 while no longer providing usable flight results.<\/p>\n<p>Fli therefore moved its flight searches to the public Google Flights search page and now extracts the flight data returned with that page.<\/p>\n<p>The installation process did not fundamentally change, but some capabilities did. Multi-city search, Booking Options and several filters are now limited, and each search can return fewer itineraries than the older transport.<\/p>\n<h2>What are the current Fli limitations?<\/h2>\n<p>Fli still handles common one-way, round-trip and flexible-date searches well, but it does not expose everything available in the Google Flights website.<\/p>\n<h3>Multi-city trips currently need to be searched separately<\/h3>\n<p>A route such as New York \u2192 London \u2192 Paris \u2192 New York cannot currently be returned as one complete multi-city itinerary. The practical workaround is to search each leg separately.<\/p>\n<p>The CLI still includes a <code>fli multi<\/code> command and multi-city examples, but the current Search Transport documentation says the underlying multi-city results are still unavailable.<\/p>\n<h3>Fli can search flights, but it cannot complete the booking flow<\/h3>\n<p>Fli is useful for search and comparison, but Booking Options are currently unavailable. Flight results can still include Google Flights deep links.<\/p>\n<h3>Some Google Flights filters are not currently supported<\/h3>\n<ul>\n<li><code>bags<\/code><\/li>\n<li><code>emissions<\/code><\/li>\n<li><code>exclude_basic_economy<\/code><\/li>\n<\/ul>\n<h3>Very narrow filters can produce empty results<\/h3>\n<p>Fli currently receives a limited number of candidate itineraries, typically around 20\u201345 per search. Some filters are applied locally after those results have been retrieved.<\/p>\n<h3>Children and infants may reduce the number of results<\/h3>\n<p>Google can return fewer inline itineraries when a search includes children or infants.<\/p>\n<h3>Flexible-date searches can become request-heavy<\/h3>\n<p><code>search_dates<\/code> checks dates individually and currently supports a maximum range of about 93 dates in one search.<\/p>\n<h3>High-volume use is not equivalent to a commercial flight API<\/h3>\n<p>Fli ultimately depends on Google Flights. Large numbers of repeated requests may encounter rate limits, empty responses or temporary failures.<\/p>\n<h2>Is Fli an official Google Flights MCP?<\/h2>\n<p><strong>No.<\/strong><\/p>\n<p>Fli is a community-maintained open-source project. It is not an official Google Flights MCP Server.<\/p>\n<h3>Google Flights Search is not a general public developer API<\/h3>\n<p>Google does operate <a href=\"https:\/\/developers.google.com\/travel\/flights\" target=\"_blank\" rel=\"noopener\">Google Flights Search<\/a>, but it is not the same as a general-purpose Google Flights Public API that any developer can sign up for and query with an API key.<\/p>\n<h3>Google also has an official Travel Impact Model MCP<\/h3>\n<p>Google provides an official <a href=\"https:\/\/developers.google.com\/travel\/impact-model\/docs\/mcp\" target=\"_blank\" rel=\"noopener\">Travel Impact Model MCP<\/a>, but it focuses on flight emissions rather than fares or itinerary search.<\/p>\n<h2>Fli vs. commercial flight APIs<\/h2>\n<table>\n<thead>\n<tr>\n<th>Comparison<\/th>\n<th>Fli<\/th>\n<th>Commercial Flight API<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Main use<\/td>\n<td>Flight search, MCP and scripts<\/td>\n<td>Flight data, availability and booking services<\/td>\n<\/tr>\n<tr>\n<td>Cost<\/td>\n<td>Open-source project<\/td>\n<td>Usually usage-based or subscription pricing<\/td>\n<\/tr>\n<tr>\n<td>Claude MCP<\/td>\n<td>MCP server included<\/td>\n<td>Usually requires your own integration<\/td>\n<\/tr>\n<tr>\n<td>Stability<\/td>\n<td>Depends on Google Flights search behavior<\/td>\n<td>Usually backed by a defined API contract<\/td>\n<\/tr>\n<tr>\n<td>SLA<\/td>\n<td>No<\/td>\n<td>Available from some providers<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>When is Fli worth using?<\/h2>\n<p>Fli makes the most sense when you already use Claude Desktop or another MCP client and regularly repeat the same Google Flights filtering steps.<\/p>\n<p>If you only search for a flight occasionally, opening Google Flights directly is still easier. Fli becomes more useful when the search itself is repetitive or when flight data needs to become part of another workflow.<\/p>\n<h2>Frequently Asked Questions<\/h2>\n<h3>Does Google Flights MCP require an API key?<\/h3>\n<p>Fli itself does not require a Google Flights API key. After installation, the MCP server can run locally.<\/p>\n<h3>Is Fli an official Google Flights MCP?<\/h3>\n<p>No. Fli is a community-maintained open-source project.<\/p>\n<h3>Can Google Flights MCP work with Claude Desktop?<\/h3>\n<p>Yes. Install Fli, add <code>fli-mcp<\/code> to the Claude Desktop MCP configuration and restart Claude.<\/p>\n<h3>Does Fli support multi-city Google Flights searches?<\/h3>\n<p>Not fully at the moment. The CLI still includes <code>fli multi<\/code>, but the current Search Transport does not return complete multi-city results.<\/p>\n<h3>Can Fli book flights directly?<\/h3>\n<p>No. Fli currently focuses on search and comparison. Booking Options are unavailable, although Google Flights links can still be generated.<\/p>\n<h3>Can Fli be used in a commercial project?<\/h3>\n<p>Fli itself is released under the MIT License, but commercial use should also consider Google-related terms, rate limits, reliability and data-dependency risks.<\/p>\n<p><strong>Project:<\/strong> <a href=\"https:\/\/github.com\/punitarani\/fli\" target=\"_blank\" rel=\"noopener\">GitHub &#8211; punitarani\/fli<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you want Claude to search Google Flights instead of opening the site and changing filters manually, Fli is one of the more practical open-source options. It provides a Google Flights MCP server that lets Claude search flights, compare airports and cabin classes, and look for cheaper travel dates from a conversation. Fli is not<\/p>\n","protected":false},"author":1,"featured_media":98332,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"Google Flights MCP: Use Fli with Claude, CLI and Python","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[9247,9270],"tags":[9303,9306],"series":[],"class_list":["post-98328","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developer-project-resources","category-software-development-tools","tag-ai-workflow-tools","tag-open-source-tools-directory"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pdcHox-pzW","jetpack_featured_media_url":"https:\/\/www.ahhhhfs.com\/wp-content\/uploads\/2026\/10\/google-flights-mcp-fli-claude-workflow.jpg","_links":{"self":[{"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/posts\/98328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/comments?post=98328"}],"version-history":[{"count":2,"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/posts\/98328\/revisions"}],"predecessor-version":[{"id":98336,"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/posts\/98328\/revisions\/98336"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/media\/98332"}],"wp:attachment":[{"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/media?parent=98328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/categories?post=98328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/tags?post=98328"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.ahhhhfs.com\/en\/wp-json\/wp\/v2\/series?post=98328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}