Skip to main content
Glama
pisanuw

Google Flights MCP

by pisanuw

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SERPAPI_API_KEYYesYour SerpAPI API key

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_flightsA

Search Google Flights (via SerpAPI) between two airports.

Args: departure_id: Origin IATA airport code, e.g. "SEA". Multiple origins may be comma-separated, e.g. "SEA,PDX". arrival_id: Destination IATA airport code, e.g. "NRT". outbound_date: Departure date as YYYY-MM-DD. return_date: Return date as YYYY-MM-DD. Required when trip_type is "round_trip"; ignored for "one_way". trip_type: "round_trip" (default) or "one_way". travel_class: Cabin class. adults, children, infants_in_seat, infants_on_lap: Passenger counts. stops: Filter by number of stops. max_price: Maximum total price in currency. currency: ISO 4217 currency code (default USD). max_results: Cap on options returned per bucket (best / other). deep_search: Slower, but matches google.com/travel/flights more precisely.

For a round trip, each option's price is the total round-trip fare and its departure_token can be passed to get_return_flights to see return options.

search_multi_cityA

Search a multi-city Google Flights itinerary (2+ separate legs).

Args: legs: Ordered list of leg objects, each with "departure_id", "arrival_id", and "date" (YYYY-MM-DD). For example: [{"departure_id": "SEA", "arrival_id": "NRT", "date": "2026-10-03"}, {"departure_id": "NRT", "arrival_id": "ICN", "date": "2026-10-10"}, {"departure_id": "ICN", "arrival_id": "SEA", "date": "2026-10-17"}] travel_class, adults, children, infants_in_seat, infants_on_lap, stops, max_price, currency, max_results, deep_search: as in search_flights.

Each option's departure_token can be passed to get_return_flights to advance to the next leg's options.

get_return_flightsA

List the next set of options after selecting a flight.

Pass a departure_token from a round-trip search_flights result (to see return options) or a multi-city search_multi_city result (to advance to the next leg). Each returned option has a booking_token usable with get_booking_options.

get_booking_optionsA

List where to book a selected flight and the price at each provider.

Pass a booking_token from a search_flights (one-way) or get_return_flights result.

track_priceA

Start tracking the price of a route over time.

Saves the search as a watch and records its current lowest price. Re-check with check_prices (or the scheduled checker) to log price history and get alerted on drops. Set target_price to be alerted when it falls to/below that amount. label is a friendly name shown in alerts and listings.

list_price_watchesA

List all saved price watches with their most recent recorded price.

untrack_priceA

Delete a price watch (and its recorded history) by id.

check_pricesA

Re-check every price watch now, record the prices, and report any drops or target hits. Uses one SerpAPI search per watch.

get_price_historyB

Return the recorded price history (timestamp, price) for a watch.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: search_flights and search_multi_city handle different search modes, get_return_flights advances itineraries, get_booking_options retrieves booking providers, and the price-tracking tools (track, list, untrack, check, get_history) cover the full watch lifecycle without overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern, such as search_flights, track_price, get_price_history, and untrack_price. Verb choices are appropriate and parallel (track/untrack, get/list/check), making the set predictable and easy to navigate.

Tool Count5/5

Nine tools is well-scoped for the server's purpose of flight search and price tracking. Every tool serves a clear need, and there is no bloat or redundancy.

Completeness4/5

The tool surface covers the entire flight discovery flow (search, multi-city, return options, booking) and price watch CRUD operations. The only minor gap is the lack of an update operation for an existing price watch, but users can untrack and re-track to adjust targets, so it is easily worked around.

Maintenance

ActivitySlowing
ResponsivenessNo issues