by punitarani
Google Flights MCP, CLI and Python Library
# Add to your Claude Code skills
git clone https://github.com/punitarani/fliGuides for using mcp servers skills like fli.
Last scanned: 4/24/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-04-24T06:11:57.544Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}fli is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by punitarani. Google Flights MCP, CLI and Python Library. It has 2,957 GitHub stars.
Yes. fli passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/punitarani/fli" and add it to your Claude Code skills directory (see the Installation section above).
fli is primarily written in Python. It is open-source under punitarani on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh fli against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
A powerful Python library that provides programmatic access to Google Flights data with an elegant CLI interface. Search flights, find the best deals, and filter results with ease.
🚀 What makes
flispecial? Unlike other flight search libraries that rely on web scraping, Fli directly interacts with Google Flights' API through reverse engineering. This means:
- Fast: Direct API access means faster, more reliable results
- Zero Scraping: No HTML parsing, no browser automation, just pure API interaction
- Reliable: Less prone to breaking from UI changes
- Modular: Extensible architecture for easy customization and integration
pipx install flights
# Run the MCP server on STDIO
fli-mcp
# Run the MCP server over HTTP (streamable)
fli-mcp-http # serves at http://127.0.0.1:8000/mcp/

{
"mcpServers": {
"fli": {
"command": "/Users/<user>/.local/bin/fli-mcp"
}
}
}
Note: Replace
<user>with your actual username. You can also find the path to the MCP server by runningwhich fli-mcpin your terminal.
The MCP server provides two main tools:
| Tool | Description |
|---|---|
search_flights |
Search for flights on a specific date with detailed filters |
search_dates |
Find the cheapest travel dates across a flexible date range |
search_flights Parameters| Parameter | Type | Description |
|---|---|---|
origin |
string | Departure airport IATA code(s) — comma-separated for multi |
destination |
string | Arrival airport IATA code(s) — comma-separated for multi |
departure_date |
string | Travel date in YYYY-MM-DD format |
return_date |
string | Return date for round trips (optional) |
cabin_class |
string | ECONOMY, PREMIUM_ECONOMY, BUSINESS, or FIRST |
max_stops |
string | ANY, NON_STOP, ONE_STOP, or TWO_PLUS_STOPS |
departure_window |
string | Time window in 'HH-HH' format (e.g., '6-20') |
airlines |
list | Filter by airline codes (e.g., ['BA', 'AA']) |
exclude_airlines |
list | Airline IATA codes to exclude (e.g., ['DL', 'B6']) |
alliance |
list | Restrict to alliances: ONEWORLD, SKYTEAM, STAR_ALLIANCE |
exclude_alliance |
list | Alliance names to exclude from results |
min_layover |
int | Minimum layover duration in minutes (multi-stop only) |
max_layover |
int | Maximum layover duration in minutes (multi-stop only) |
currency |
string | ISO 4217 code (e.g. 'EUR', 'JPY') — flows to curr= param |
language |
string | BCP-47 language code (e.g. 'en-GB') — flows to hl= param |
country |
string | ISO 3166-1 alpha-2 country code (e.g. 'GB') for gl= param |
sort_by |
string | CHEAPEST, DURATION, DEPARTURE_TIME, or ARRIVAL_TIME |
passengers |
int | Number of adult passengers |
search_dates Parameters| Parameter | Type | Description |
|---|---|---|
origin |
string | Departure airport IATA code(s) — comma-separated for multi |
destination |
string | Arrival airport IATA code(s) — comma-separated for multi |
start_date |
string | Start of date range in YYYY-MM-DD format |
end_date |
string | End of date range in YYYY-MM-DD format |
trip_duration |
int | Trip duration in days (for round-trips) |
is_round_trip |
bool | Whether to search for round-trip flights |
cabin_class |
string | ECONOMY, PREMIUM_ECONOMY, BUSINESS, or FIRST |
max_stops |
string | ANY, NON_STOP, ONE_STOP, or TWO_PLUS_STOPS |
departure_window |
string | Time window in 'HH-HH' format (e.g., '6-20') |
airlines |
list | Filter by airline codes (e.g., ['BA', 'AA']) |
exclude_airlines |
list | Airline IATA codes to exclude |
alliance |
list | Restrict to alliances: ONEWORLD, SKYTEAM, STAR_ALLIANCE |
exclude_alliance |
list | Alliance names to exclude |
min_layover |
int | Minimum layover duration in minutes |
max_layover |
int | Maximum layover duration in minutes |
currency |
string | ISO 4217 currency code (e.g. 'EUR', 'JPY') |
language |
string | BCP-47 language code (e.g. 'en-GB') |
country |
string | ISO 3166-1 alpha-2 country code (e.g. 'GB') |
sort_by_price |
bool | Sort results by price (lowest first) |
passengers |
int | Number of adult passengers |
pip install flights
# Install using pipx (recommended for CLI)
pipx install flights
# Get started with CLI
fli --help

🔍 Powerful Search
💺 Cabin Classes
🎯 Smart Sorting
🛡️ Built-in Protection
# Basic flight search
fli flights JFK LHR 2026-10-25
# Advanced search with filters
fli flights JFK LHR 2026-10-25 \
--time 6-20 \ # Departure time window (6 AM - 8 PM)
--airlines BA,KL \ # Airlines (British Airways, KLM)
--class BUSINESS \ # Cabin class
--stops NON_STOP \ # Non-stop flights only
--sort DURATION # Sort by duration
# Alliance + exclude + locale (May-2026 filter additions)
fli flights JFK LHR 2026-10-25 \
--alliance ONEWORLD \
--exclude-airlines AA \
--min-layover 90 \
--max-layover 360 \
--currency EUR --language en-GB --country GB
⚠️ Experimental
--format jsonis experimental. The JSON schema may change while the machine-readable CLI contract settles.# Return machine-readable flight results fli flights JFK LHR 2026-10-25 --format json
# Basic date search
fli dates JFK LHR
# Advanced search with date range
fli dates JFK LHR \
--from 2026-01-01 \
--to 2026-02-01 \
--monday --friday # Only Mondays and Fridays
⚠️ Experimental
--format jsonis experimental for date searches as well.# Return machine-readable date search results fli dates JFK LHR --from 2026-01-01 --to 2026-02-01 --format json
# Two-leg multi-city trip
fli multi --leg SEA,HKG,2026-12-26 --leg PEK,SEA,2027-01-02
# Three-leg multi-city trip with filters
fli multi \
-l SEA,NRT,2026-12-26 \
-l NRT,HKG,2026-12-30 \
-l HKG,SEA,2027-01-05 \
--class BUSINESS \
--stops 0
fli flights)| Option | Description | Example |
|---|---|---|
--return, -r |
Return date | 2026-10-30 |
--time, -t |
Departure time window | 6-20 |
--airlines, -a |
Airline IATA codes | BA,KL |
--exclude-airlines, -A |
Airline IATA codes to exclude | DL,B6 |
--alliance |
Restrict to alliance(s) | ONEWORLD, SKYTEAM |
--exclude-alliance |
Alliance(s) to exclude | STAR_ALLIANCE |
--min-layover |
Minimum layover (minutes) | 90 |
--max-layover |
Maximum layover (minutes) | 360 |
--currency |
ISO 4217 currency code | EUR, JPY |
--language |
BCP-47 language code (Google hl=) |
en-GB |
--country |
ISO 3166-1 alpha-2 country (gl=) |
GB |
--class, -c |
Cabin class | ECONOMY, BUSINESS |
--stops, -s |
Maximum stops | NON_STOP, ONE_STOP |