/fli
Guidance for installing and using Fli correctly as a CLI and MCP server. Use when: setting up Fli with pipx, running `fli` flight searches, configuring Claude Desktop with `fli-mcp`, using the HTTP MCP server, or troubleshooting Fli command availability and common usage mistakes.
$ npx -y skills add punitarani/fli --skill fli --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/fli
Context preview
The summary Claude sees to decide when to auto-load this skill.
Guidance for installing and using Fli correctly as a CLI and MCP server. Use when: setting up Fli with pipx, running `fli` flight searches, configuring Claude Desktop with `fli-mcp`, using the HTTP MCP server, or troubleshooting Fli command availability and common usage mistakes.
SKILL.md
fli.SKILL.mdname: fli
description: >
Guidance for installing and using Fli correctly as a CLI and MCP server.
Use when: setting up Fli with pipx, running `fli` flight searches, configuring
Claude Desktop with `fli-mcp`, using the HTTP MCP server, or troubleshooting
Fli command availability and common usage mistakes.
license: MIT
Fli install and usage skill
Use this skill when the goal is to install Fli and use its CLI or MCP server correctly.
The primary path is:
1. install with `pipx install flights` 2. use `fli` for terminal searches 3. use `fli-mcp` for Claude Desktop or other STDIO MCP clients 4. use `fli-mcp-http` only when an HTTP MCP endpoint is specifically needed
Do not default to cloning the repository or using a source checkout. Only mention cloning the repo when the user explicitly wants to contribute to Fli itself.
What Fli is
Fli is a Python package for accessing Google Flights data through direct API interaction.
It has three public surfaces:
- CLI via `fli`
- Python library via the `fli` package
- MCP server via `fli-mcp` and `fli-mcp-http`
For this skill, focus on the CLI and MCP server first.
Core install rule
If the user wants to use Fli as a tool, recommend `pipx install flights`.
Why:
- it is the documented recommended install path for CLI and MCP usage
- it keeps the install isolated from other Python projects
- it exposes `fli`, `fli-mcp`, and `fli-mcp-http` on the user's PATH
Only fall back to `pip install flights` or `uvx` when:
- `pipx` is unavailable
- the user wants library-only usage
- the user explicitly prefers another Python package manager
Standard installation flow
Preferred install
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install flights
If `pipx` is already installed, skip directly to:
pipx install flights
Verify installation
Run these checks after install:
fli --help
fli-mcp --help
which fli-mcp
If the commands are not found after `pipx install flights`, have the user run:
python3 -m pipx ensurepath
Then restart the terminal session.
What the install provides
After `pipx install flights`, these commands should be available:
- `fli` - main CLI for flight searches
- `fli-mcp` - MCP server over STDIO
- `fli-mcp-http` - MCP server over HTTP, defaulting to `http://127.0.0.1:8000/mcp/`
Important naming detail:
- the package to install is `flights`
- the commands to run are `fli`, `fli-mcp`, and `fli-mcp-http`
Do not tell users to run `pipx install fli`.
CLI usage
Basic flight search
Use:
fli flights JFK LAX 2026-10-25
Cheapest-date search
Use:
fli dates JFK LAX --from 2026-01-01 --to 2026-01-31
Common filters
Use filters like these when the user asks for them:
fli flights JFK LHR 2026-10-25 \
--time 6-20 \
--airlines BA,KL \
--class BUSINESS \
--stops NON_STOP \
--sort DURATION
Supported language to map correctly:
- cabin classes: `ECONOMY`, `PREMIUM_ECONOMY`, `BUSINESS`, `FIRST`
- stop filters: `ANY`, `NON_STOP`, `ONE_STOP`, `TWO_PLUS_STOPS`
- sort options: `CHEAPEST`, `DURATION`, `DEPARTURE_TIME`, `ARRIVAL_TIME`
CLI shorthand
Fli supports a convenience shorthand where a non-command invocation is treated as a flights search.
Example:
fli JFK LAX 2026-05-15
This behaves like:
fli flights JFK LAX 2026-05-15
Use the explicit `flights` subcommand in examples unless the user asks for shortcuts.
MCP usage
Default MCP mode
Use `fli-mcp` for Claude Desktop and other STDIO-based MCP clients.
fli-mcp
This is the default recommendation for local assistant integration.
HTTP MCP mode
Use `fli-mcp-http` only when the user needs an HTTP endpoint.
fli-mcp-http
By default, it serves at:
- `http://127.0.0.1:8000/mcp/`
For HTTP integrations, the client should send:
- `Accept: application/json, text/event-stream`
Claude Desktop setup
When the user wants Claude Desktop integration, recommend this config first:
{
"mcpServers": {
"fli": {
"command": "fli-mcp",
"args": []
}
}
}Suggested config paths:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`
After editing the config:
1. fully quit Claude Desktop 2. relaunch it 3. start a new conversation 4. ask for a flight search
Good validation prompt:
`Can you search for flights from JFK to LHR on 2026-03-15?`
Optional MCP environment variables
If the user wants defaults, these environment variables are relevant:
- `FLI_MCP_DEFAULT_PASSENGERS`
- `FLI_MCP_DEFAULT_CURRENCY`
- `FLI_MCP_DEFAULT_CABIN_CLASS`
- `FLI_MCP_DEFAULT_SORT_BY`
- `FLI_MCP_DEFAULT_DEPARTURE_WINDOW`
- `FLI_MCP_MAX_RESULTS`
Example:
{
"mcpServers": {
"fli": {
"command": "fli-mcp",
"args": [],
"env": {
"FLI_MCP_DEFAULT_CURRENCY": "EUR",
"FLI_MCP_DEFAULT_CABIN_CLASS": "BUSINESS",
"FLI_MCP_MAX_RESULTS": "10"
}
}
}
}How to guide users well
If the user asks to install Fli
Give them the `pipx install flights` path first.
If the user asks how to use the command line tool
Show `fli flights ...` and `fli dates ...` examples first.
If the user asks how to connect Claude or another assistant
Show `fli-mcp` and the Claude Desktop config first.
If the user asks for a web endpoint
Then show `fli-mcp-http` and mention the `/mcp/` path and `Accept` header.
If the user asks how to contribute or hack on the codebase
That is outside the primary scope of this skill. Only then discuss cloning the repository and using development commands.
Common mistakes to prevent
- telling users to clone the repository when they only want the tool
- telling users to install `fli` instead of `flights`
- focusing on the
Read more
name: fli description: > Guidance for installing and using Fli correctly as a CLI and MCP server. Use when: setting up Fli with pipx, running `fli` flight searches, configuring Claude Desktop with `fli-mcp`, using the HTTP MCP server, or troubleshooting Fli command availability and common usage mistakes. license: MIT
Fli install and usage skill
Use this skill when the goal is to install Fli and use its CLI or MCP server correctly.
The primary path is:
1. install with `pipx install flights` 2. use `fli` for terminal searches 3. use `fli-mcp` for Claude Desktop or other STDIO MCP clients 4. use `fli-mcp-http` only when an HTTP MCP endpoint is specifically needed
Do not default to cloning the repository or using a source checkout. Only mention cloning the repo when the user explicitly wants to contribute to Fli itself.
What Fli is
Fli is a Python package for accessing Google Flights data through direct API interaction.
It has three public surfaces:
- CLI via `fli`
- Python library via the `fli` package
- MCP server via `fli-mcp` and `fli-mcp-http`
For this skill, focus on the CLI and MCP server first.
Core install rule
If the user wants to use Fli as a tool, recommend `pipx install flights`.
Why:
- it is the documented recommended install path for CLI and MCP usage
- it keeps the install isolated from other Python projects
- it exposes `fli`, `fli-mcp`, and `fli-mcp-http` on the user's PATH
Only fall back to `pip install flights` or `uvx` when:
- `pipx` is unavailable
- the user wants library-only usage
- the user explicitly prefers another Python package manager
Standard installation flow
Preferred install
python3 -m pip install --user pipx python3 -m pipx ensurepath pipx install flights
If `pipx` is already installed, skip directly to:
pipx install flights
Verify installation
Run these checks after install:
fli --help fli-mcp --help which fli-mcp
If the commands are not found after `pipx install flights`, have the user run:
python3 -m pipx ensurepath
Then restart the terminal session.
What the install provides
After `pipx install flights`, these commands should be available:
- `fli` - main CLI for flight searches
- `fli-mcp` - MCP server over STDIO
- `fli-mcp-http` - MCP server over HTTP, defaulting to `http://127.0.0.1:8000/mcp/`
Important naming detail:
- the package to install is `flights`
- the commands to run are `fli`, `fli-mcp`, and `fli-mcp-http`
Do not tell users to run `pipx install fli`.
CLI usage
Basic flight search
Use:
fli flights JFK LAX 2026-10-25
Cheapest-date search
Use:
fli dates JFK LAX --from 2026-01-01 --to 2026-01-31
Common filters
Use filters like these when the user asks for them:
fli flights JFK LHR 2026-10-25 \ --time 6-20 \ --airlines BA,KL \ --class BUSINESS \ --stops NON_STOP \ --sort DURATION
Supported language to map correctly:
- cabin classes: `ECONOMY`, `PREMIUM_ECONOMY`, `BUSINESS`, `FIRST`
- stop filters: `ANY`, `NON_STOP`, `ONE_STOP`, `TWO_PLUS_STOPS`
- sort options: `CHEAPEST`, `DURATION`, `DEPARTURE_TIME`, `ARRIVAL_TIME`
CLI shorthand
Fli supports a convenience shorthand where a non-command invocation is treated as a flights search.
Example:
fli JFK LAX 2026-05-15
This behaves like:
fli flights JFK LAX 2026-05-15
Use the explicit `flights` subcommand in examples unless the user asks for shortcuts.
MCP usage
Default MCP mode
Use `fli-mcp` for Claude Desktop and other STDIO-based MCP clients.
fli-mcp
This is the default recommendation for local assistant integration.
HTTP MCP mode
Use `fli-mcp-http` only when the user needs an HTTP endpoint.
fli-mcp-http
By default, it serves at:
- `http://127.0.0.1:8000/mcp/`
For HTTP integrations, the client should send:
- `Accept: application/json, text/event-stream`
Claude Desktop setup
When the user wants Claude Desktop integration, recommend this config first:
{
"mcpServers": {
"fli": {
"command": "fli-mcp",
"args": []
}
}
}Suggested config paths:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`
After editing the config:
1. fully quit Claude Desktop 2. relaunch it 3. start a new conversation 4. ask for a flight search
Good validation prompt:
`Can you search for flights from JFK to LHR on 2026-03-15?`
Optional MCP environment variables
If the user wants defaults, these environment variables are relevant:
- `FLI_MCP_DEFAULT_PASSENGERS`
- `FLI_MCP_DEFAULT_CURRENCY`
- `FLI_MCP_DEFAULT_CABIN_CLASS`
- `FLI_MCP_DEFAULT_SORT_BY`
- `FLI_MCP_DEFAULT_DEPARTURE_WINDOW`
- `FLI_MCP_MAX_RESULTS`
Example:
{
"mcpServers": {
"fli": {
"command": "fli-mcp",
"args": [],
"env": {
"FLI_MCP_DEFAULT_CURRENCY": "EUR",
"FLI_MCP_DEFAULT_CABIN_CLASS": "BUSINESS",
"FLI_MCP_MAX_RESULTS": "10"
}
}
}
}How to guide users well
If the user asks to install Fli
Give them the `pipx install flights` path first.
If the user asks how to use the command line tool
Show `fli flights ...` and `fli dates ...` examples first.
If the user asks how to connect Claude or another assistant
Show `fli-mcp` and the Claude Desktop config first.
If the user asks for a web endpoint
Then show `fli-mcp-http` and mention the `/mcp/` path and `Accept` header.
If the user asks how to contribute or hack on the codebase
That is outside the primary scope of this skill. Only then discuss cloning the repository and using development commands.
Common mistakes to prevent
- telling users to clone the repository when they only want the tool
- telling users to install `fli` instead of `flights`
- focusing on the
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 fli special?
Repo: punitarani/fli

