Fli (Google Flights search)

MCP server by Punit Arani

Search Google Flights fares with filters and find the cheapest travel dates across a flexible date range.

Runs locally (Runs on your machine: its page has the install command)Runs with uvx

Install Fli (Google Flights search)

Runs on your machine. Your client starts it with this command:

uvx --from flights fli-mcp

Needs uv (Python) on your computer. The setup steps below show where the command goes in each client.

Share this server

Opens this page, with the install command and setup steps.

mcp.tc/i/fli

About

Fli is a Python library, CLI and MCP server that queries Google Flights data directly through its internal API instead of scraping pages. The MCP server offers flight search for a specific date and a cheapest-dates search over a date range. Filters include cabin class, stops, airlines, alliances, layover length, departure window, currency, language and country.

It runs locally over stdio with uvx (uvx --from flights fli-mcp), or over streamable HTTP with fli-mcp-http, which serves at http://127.0.0.1:8000/mcp/. No sign-in or API key is needed. This is a community project and is not affiliated with Google.

What you can do

  • Search flights on a specific date, one-way or round trip
  • Find the cheapest travel dates across a date range
  • Filter by cabin class, stops, airlines and alliances
  • Set layover limits and departure time windows
  • Sort results by price, duration, departure or arrival time
  • Set currency, language and country for results

Tools

Local servers list their tools once they’re running, and this one doesn’t publish its list in advance. Your client shows them after you add it.

Example prompts

  • Find non-stop business class flights from JFK to LHR on 2026-10-25

  • What are the cheapest dates to fly SFO to NRT in January?

  • Search round trips from SEA to HKG, exclude Delta, sorted by price

  • Show one-stop flights from BOS to FCO leaving between 6 and 12, priced in EUR

Set up

Every client starts Fli (Google Flights search) on your machine with the same command. Pick yours; the page remembers your choice.

Claude Code

  1. Run this in a terminal, in your project folder:
claude mcp add --transport stdio fli -- uvx --from flights fli-mcp
  1. Start Claude Code and type /mcp. fli should show as connected.

Add --scope user to make it available in every project.

Claude Desktop

  1. Open Settings → Developer → Edit Config. It opens claude_desktop_config.json. Add:
claude_desktop_config.json
{
  "mcpServers": {
    "fli": {
      "command": "uvx",
      "args": [
        "--from",
        "flights",
        "fli-mcp"
      ]
    }
  }
}
  1. Save the file and restart Claude Desktop.

Needs uv (Python) on your computer. The file lives in ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows.

Cursor

Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project):

mcp.json
{
  "mcpServers": {
    "fli": {
      "command": "uvx",
      "args": [
        "--from",
        "flights",
        "fli-mcp"
      ]
    }
  }
}

Needs uv (Python) on your computer.

VS Code

Or from a terminal:

code --add-mcp '{"name":"fli","type":"stdio","command":"uvx","args":["--from","flights","fli-mcp"]}'

Or commit it to the repo in .vscode/mcp.json:

.vscode/mcp.json
{
  "servers": {
    "fli": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "flights",
        "fli-mcp"
      ]
    }
  }
}

Needs uv (Python) on your computer.

Devin Desktop

  1. Add it to ~/.config/devin/mcp_config.json (macOS and Linux) or %APPDATA%\devin\mcp_config.json (Windows):
mcp_config.json
{
  "mcpServers": {
    "fli": {
      "command": "uvx",
      "args": [
        "--from",
        "flights",
        "fli-mcp"
      ]
    }
  }
}
  1. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

Codex

codex mcp add fli -- uvx --from flights fli-mcp

Or edit ~/.codex/config.toml directly:

config.toml
[mcp_servers.fli]
command = "uvx"
args = ["--from", "flights", "fli-mcp"]

Needs uv (Python) on your computer.

Gemini CLI

gemini mcp add fli uvx -- --from flights fli-mcp

This adds it to the current project. Add -s user to use it everywhere.

Any client

Most clients that start local servers accept this shape:

{
  "mcpServers": {
    "fli": {
      "command": "uvx",
      "args": [
        "--from",
        "flights",
        "fli-mcp"
      ]
    }
  }
}

Zed puts servers under context_servers in its settings, with the same command, args and env fields.

Needs uv (Python) on your computer.

FAQ

Can I paste mcp.tc/i/fli into my MCP client?

No. Fli (Google Flights search) runs on your own computer, started by your client, so it has no web address to connect to. The quick link is the page to share; the install command is uvx --from flights fli-mcp.

Does Fli (Google Flights search) need an API key?

No. It doesn’t declare any keys or environment variables. It runs with your user account’s permissions, so check what its tools can reach.

Is Fli (Google Flights search) a remote or a local server?

Local. Your client starts it as a process on your computer with uvx --from flights fli-mcp, which needs uv (Python).

What can Fli (Google Flights search) do?

You can search flights on a specific date, one-way or round trip, find the cheapest travel dates across a date range and filter by cabin class, stops, airlines and alliances.

Which clients can use it?

Any client that starts local servers: Claude Code, Claude Desktop, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others. claude.ai and ChatGPT only connect to remote servers.

Who wrote this page?

mcp.tc’s robot read Fli (Google Flights search)’s public metadata (its package and repository pages), and an AI model drafted the text from it. A person reviews anything the checks can’t confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.

Embed

Show Fli (Google Flights search) in a README or on your site. Each embed links to this page, uses the server’s own install command, and sets no cookies. How embeds work

README badge

Badge preview, lightBadge preview, dark
Markdown
[![Fli (Google Flights search) on mcp.tc](https://mcp.tc/i/fli/badge.svg)](https://mcp.tc/i/fli)
HTML
<a href="https://mcp.tc/i/fli"><img src="https://mcp.tc/i/fli/badge.svg" alt="Fli (Google Flights search) on mcp.tc" height="20"></a>

It follows the reader’s light or dark mode. Add ?theme=light or ?theme=dark to fix it, or ?style=compact to show the mark without the word.

Website card

HTML
<script src="https://mcp.tc/w/fli.js" async></script>

The card appears where the tag is. Add data-theme="dark" or data-size="compact" to the tag to change it. The file holds everything it needs, so it makes no other requests and sets no cookies.

iframe

HTML
<iframe src="https://mcp.tc/embed/fli" title="Fli (Google Flights search) on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>

Use it on pages that don’t allow scripts. Add ?theme=light or ?theme=dark to the address to fix the colors.

JSON

The listing as data for your own pages and tools: name, tagline, install command, tools and the “Add to” links. Any site can read it (CORS is open).

https://mcp.tc/i/fli.json

What each field means

mcp.tc isn’t affiliated with Punit Arani. This page was built from Fli (Google Flights search)’s public metadata, last checked on 3 Oct 2026, and an AI model wrote the description, so it can be wrong. Names and marks belong to their owners. Something off? Report this listing.