punitarani

fli: Search Google Flights from Python, CLI, and MCP

Fli is a Python library, CLI, and MCP server for searching Google Flights through its public search page. It provides flight and date searches with filters, plus a TypeScript port for JavaScript users.

ActivePythonMITLibraryCLIMCP Server
Stars
3.3k
Forks
405
Stars, last 20 days
+91
Last commit
1 month ago
Contributors
29

Our take

Activeregular commits and releases

Health score

59/100

How it is scored
Activity
62
Community
50
Issues
52
Pull requests
71

+91 stars in the last 20 days

  • Slower to close issues than 83% of the projects we track

Fli is an actively maintained, MIT-licensed option for integrating Google Flights searches, with a clear trade-off: its page-based transport has meaningful limits compared with Google's gated results APIs.

Good fit if

  • You want Google Flights searches in Python, a CLI, an MCP client, or TypeScript.
  • Your workflow can work within the available page results and supported filters.
  • You value a project with recent commits and releases, and contributions from multiple people rather than dependence on one contributor.

Look elsewhere if

  • You need multi-city results from a single search or booking-option results from Google.
  • Your application depends on emissions, bag, or basic-economy-exclusion filters, which the current transport cannot support.
  • Your search requires reliably complete results for children or infants, or a full calendar grid for date ranges.
All health signals
Last commit2026-09-20 (1 month ago)
Commits, last 90 days35
Releases, last 12 months13 (latest fli-js-v0.0.4, 2026-05-24)
Contributors29 (top contributor: 74% of commits)
Issues closed, last 90 days22 (typically closed in 70 days)
Pull requests merged, last 90 days35 (typically merged in 0 days)
Project age22 months

Checked on 2026-10-24 with the GitHub API.

Project history

Daily GitHub snapshots since Oct 25, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

3,499

Forks

424

Change since Nov 13, 2026: +2 stars·0 forks

Overview

Fli is a Python library, CLI, and MCP server for programmatic access to Google Flights. Rather than scraping rendered HTML or automating a browser, it sends a request to Google Flights' public search page and extracts results from the page's inline data. A TypeScript port, fli-js, provides a parallel API.

It is aimed at developers and AI assistant users who want flight search in scripts, terminal workflows, or MCP-compatible clients. It supports searches for specific travel dates and flexible date ranges, with filters for cabin, stops, airlines, alliances, and passengers.

Key Features

  • Search one-way and round-trip flights, and find prices across a flexible date range.
  • Filter results by cabin class, stops, departure window, airline, alliance, and layover bounds.
  • Set passenger counts, currency, language, and country for searches.
  • Use the fli CLI, Python API, or MCP server over STDIO or streamable HTTP.
  • Use fli-js, the TypeScript port, for a corresponding JavaScript or TypeScript API.
  • Apply result sorting, retries, rate limiting, input validation, and error handling.

Use Cases

  • A developer can add Google Flights results to a Python script or application without writing page parsing code.
  • A traveler can compare routes and dates from the terminal, including airline, stop, and cabin preferences.
  • An MCP client user can request flight searches conversationally through an assistant such as Claude Desktop.
  • A team using TypeScript can build flight-search workflows with the fli-js package and the same search-page transport.

What you need

Detected in the repository

  • Python >=3.10 (from pyproject.toml)
  • A Dockerfile, so it can run in a container; a Compose file sets up the related services
  • A test suite and automated checks on GitHub Actions

License in plain words

MITpermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Install the Python package and try the CLI:

pipx install flights
fli --help

For MCP use, install the same package and run fli-mcp. See the README for setup, options, and API examples.

Considerations

  • The project is active, with regular commits and releases, and has contributions from 29 people; contributor activity is not concentrated on one person. Recent issue closures and merged pull requests indicate ongoing maintenance, though the reported median issue close time is about ten weeks.
  • The transport reads results from Google's public search page. Multi-city searches are unsupported through the library search API, booking-option lookup is unavailable, and three filters are dropped with a warning.
  • A page search returns fewer itineraries than the former RPC-based approach. Results can be especially sparse for children and infants, and date-range searches fetch each date individually, with a maximum range of 93 dates.
  • Google may return a page without result data or present a consent interstitial in some regions. The README documents retries and the FLI_SOCS_COOKIE setting; corporate TLS-intercepting proxies may require a configured CA bundle.
  • The Python package requires Python 3.10 or later. The repository also documents Docker-based development and CI, but end users can start with the package installation above.

Found this useful?

Share it with someone who would like fli.