Search Google Flights through SerpApi: one-way and round-trip flights by IATA airport code.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx mcp-flight-search
MCP client config
{
"mcpServers": {
"flight-search": {
"command": "uvx",
"args": [
"mcp-flight-search"
]
}
}
}An MCP server that searches Google Flights through SerpApi, for Claude, Cursor and other MCP clients. One-way and round-trip searches by IATA airport code, with prices, durations, stops and times.
SERP_API_KEY (serpapi.com has a free tier)Add it to your client's MCP configuration (Claude Desktop, Claude Code, Cursor, ...):
{
"mcpServers": {
"flight-search": {
"command": "uvx",
"args": ["mcp-flight-search"],
"env": { "SERP_API_KEY": "your-serpapi-key" }
}
}
}
Or install it with pip install mcp-flight-search and use "command": "mcp-flight-search".
export SERP_API_KEY="your-serpapi-key"
mcp-flight-search # stdio (default)
mcp-flight-search --connection_type http --port 3001 # Streamable HTTP at http://127.0.0.1:3001/mcp
LOG_LEVEL=DEBUG shows more detail on stderr. The API key is never logged.
With Docker:
docker build -t mcp-flight-search .
docker run -i --rm -e SERP_API_KEY=your-serpapi-key mcp-flight-search
| Tool | What it does |
|---|---|
search_flights_tool | Flights between two airports. origin, destination: IATA codes such as ATL, LAX. outbound_date: YYYY-MM-DD. return_date (optional): YYYY-MM-DD for a round trip. Returns structured results: airline, price (USD), duration, stops, departure, arrival, cabin class. |
server_status | Checks the server is running and reports its version. |
uv sync
uv run pytest
uv run ruff check .
MIT