- Category
- Developer Tools
- Rank
- No. 923Tools index
Previous survey · No. 901 ·
- Type
- APP
- Builder
- punitarani
- GitHub
- 3.2k stars
- Latest release
- fli-js-v0.0.4
- Date
About
A Google Flights MCP server, CLI, and Python library.
What it does
Fli turns structured trip requirements into Google Flights queries without parsing pages or driving a browser. It handles one-way, round-trip, multi-city, and flexible-date searches, with filters for cabins, stops, airlines, alliances, layovers, passengers, timing, sorting, currency, and locale. Results can include itinerary details and links back to Google Flights.
Why it's ranked here
Fli is compelling when detailed flight search must fit into code or an assistant workflow. Direct protocol access avoids browser automation, while validation, throttling, retries, and broad filters make it more than a thin request wrapper. The verdict stays mixed because the protocol is reverse-engineered, machine-readable command output remains experimental, and vendor fares may be unavailable without a browser-created session token.
What's good
The search model covers practical constraints that simpler fare tools omit: airline exclusions, alliance rules, layover bounds, cabin classes, departure windows, and locale settings. Flexible-date search supports fare discovery across a window. Python and TypeScript share models, filter encoding, and response decoding. The clients add rate limiting, exponential retry behavior, validation, and typed failures. MCP supports local standard input and streamable HTTP transports.
Tradeoffs
Direct access still depends on a reverse-engineered Google Flights protocol, so avoiding HTML changes does not remove upstream dependency risk. Vendor booking options often return empty without a browser-created session token. Command-line JSON is explicitly experimental, making it a weak contract for durable automation. TypeScript airport fields mirror the wire format with triple nesting, and Node usage requires a TypeScript loader. Booking lookup reruns searches, so filters must match.
How to use it well
Use Fli for developer tools, fare exploration, travel assistants, and scripts that need structured filtering without browser automation. Search broadly for flights or cheap dates, then request booking options for a chosen itinerary while preserving the original filters. Treat Google Flights deep links as the reliable handoff when vendor fares are absent. It does not replace the final airline or agency booking flow, nor guarantee direct vendor prices.
Technical notes+
pyproject.toml defines the Python package flights, requires Python 3.10 or newer, uses Hatchling, and exposes fli, fli-mcp, and fli-mcp-http; MCP dependencies are optional. docs/index.md describes fli-js as a 1:1 TypeScript port with matching models, filter encoding, and wire-format decoders. docs/guides/mcp.md documents STDIO and streamable HTTP transports plus search_flights, search_dates, and get_booking_options; it also warns that vendor options may be empty without a browser-minted token. docs/typescript/quickstart.md documents ESM types, Bun support, Node execution through a TypeScript loader, 10 requests per second throttling, retries, proxy configuration, and typed client errors. Makefile provides uv-based lint, test, MCP, documentation, and fuzz-test targets.
Observed
- License
- MIT
- Primary implementation
- Python package requiring Python 3.10 or newer
- Additional language surface
- TypeScript and JavaScript port published as fli-js
- Installation
- Python package installs as flights through pip or pipx; TypeScript package installs through bun, npm, or pnpm
- Interfaces
- Python library, TypeScript library, command-line interface, and MCP over standard input or streamable HTTP
- Packaging
- Hatchling builds the Python wheel; MCP dependencies are an optional package extra
- Search coverage
- One-way, round-trip, multi-city, and flexible-date flight searches
Read from README.md, Makefile, pyproject.toml, docs/index.md, docs/guides/mcp.md, docs/python/examples.md, docs/python/quickstart.md, docs/typescript/examples.md, docs/typescript/quickstart.md, docs/python/api/models.md, docs/python/api/search.md, scripts/bump_version.py, scripts/generate_enums.py, scripts/update_airports.py.
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
