Skip to main content
Glama

Search Flight Prices

search_flight_prices
Read-onlyIdempotent

Never send more than 3 search_flight_prices calls in one turn: calls beyond 3 are rejected without searching. Search for flight itineraries with prices between two airports on a date using Google Flights. Returns available itineraries with prices, durations, airlines, layovers, and ranked route-search actions. Ages 12-17 are mapped as adults where a provider requires it; ages 0-1 are infants whose lap-versus-seat placement and provider policy must be confirmed before booking. Each account runs one search at a time; the second and third wait their turn and still return results. When the user names several airports, destinations, dates or trip lengths, search the 1 to 3 most likely combinations first (or one outbound_end_date range of up to 7 days), show the results, then ask before searching more. A queued or slow search returns lookupStatus pending with retry_after_seconds; it keeps its place and finishes on its own, so repeat the identical call after that wait to get its result. When the user rules out airlines or connection airports/countries, pass include_airlines/exclude_airlines/avoid_connection_airports/avoid_connection_countries so excluded routes are removed. Fares carry no baggage allowance: never claim a fare includes bags.

Input Schema

NameRequiredDescriptionDefault
trip_idNoOptional Tineo trip ID (from trips_list) this request is for. Used only to default the currency to that trip's currency when currency is omitted and the user has no preferred currency; ignored if the trip is not found or not accessible to the user.
currencyNoOptional ISO-style three-letter currency code. Omit to use the user's preferred currency, then the currency of the trip given by trip_id, then USD.
max_stopsNoOptional maximum number of stops (0 = nonstop only, 1 = up to 1 stop).
child_agesNoAge of each traveler under 18. Ages 12-17 are provider-mapped as adults where required; ages 2-11 are children and 0-1 are infants. Confirm lap-versus-seat placement with the user/provider for ages 0-1.
adult_countNoNumber of adult travelers (default 1).
cabin_classNoCabin class preference: 'economy', 'premium_economy', 'business', or 'first'. Default is 'economy'.
return_dateNoOptional return date in YYYY-MM-DD format for round-trip searches.
outbound_dateYesOutbound date in YYYY-MM-DD format. To compare several departure days, pass outbound_end_date in this one call rather than sending one call per day.
arrival_airportYesArrival airport IATA code, such as CDG.
exclude_airlinesNoOptional. Remove itineraries with any flight on these airlines (IATA code, airline name, or alliance). Single-date searches only.
include_airlinesNoOptional. Keep only itineraries where every flight is on one of these airlines: 2-character IATA code such as LH, airline name, or an alliance (Star Alliance, oneworld, SkyTeam). Single-date searches only.
departure_airportYesDeparture airport IATA code, such as JFK.
outbound_end_dateNoOptional inclusive end date for a cheapest-returned-fare-per-day calendar, up to 7 outbound dates beginning at outbound_date. Each day reports priced, no_results, failed, or not_searched; prices are live estimates and may change. Economy cabin only: omit cabin_class or use economy with a range.
avoid_connection_airportsNoOptional. Remove itineraries that connect at these airports (3-letter IATA codes). Single-date searches only.
avoid_connection_countriesNoOptional. Remove itineraries that connect in these countries (prefer ISO 3166 alpha-2 codes such as US, TR, RU; translate names to English). Single-date searches only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / outbound_date / description
      Previous value: -"Outbound date in YYYY-MM-DD format."New value: +"Outbound date in YYYY-MM-DD format. To compare several departure days, pass outbound_end_date in this one call rather than sending one call per day."
  2. Changed4 schema fields changed
    • addedInput schema / properties / avoid_connection_airports
      Added value: +{
      +  "description": "Optional. Remove itineraries that connect at these airports (3-letter IATA codes). Single-date searches only.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / avoid_connection_countries
      Added value: +{
      +  "description": "Optional. Remove itineraries that connect in these countries (prefer ISO 3166 alpha-2 codes such as US, TR, RU; translate names to English). Single-date searches only.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / exclude_airlines
      Added value: +{
      +  "description": "Optional. Remove itineraries with any flight on these airlines (IATA code, airline name, or alliance). Single-date searches only.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / include_airlines
      Added value: +{
      +  "description": "Optional. Keep only itineraries where every flight is on one of these airlines: 2-character IATA code such as LH, airline name, or an alliance (Star Alliance, oneworld, SkyTeam). Single-date searches only.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / outbound_end_date / description
      Previous value: -"Optional inclusive end date for a cheapest-returned-fare-per-day calendar, up to 7 outbound dates beginning at outbound_date. Each day reports priced, no_results, failed, or not_searched; prices are live estimates and may change."New value: +"Optional inclusive end date for a cheapest-returned-fare-per-day calendar, up to 7 outbound dates beginning at outbound_date. Each day reports priced, no_results, failed, or not_searched; prices are live estimates and may change. Economy cabin only: omit cabin_class or use economy with a range."
  4. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover read-only/idempotent safety, but the description adds substantial non-obvious behavior: 3-call cap with rejection, one-search-at-a-time queuing with later calls still returning results, pending + retry_after_seconds semantics with identical-call retry, no baggage allowance disclaimer, and infant/lap confirmation requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the most critical constraint (3-call cap) which is good. But it's a dense run-on paragraph mixing many distinct topics (queuing, children policies, exclusions, baggage) without structure; some sentences could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-param search tool with no output schema, the description covers return shape (itineraries with prices, durations, airlines, layovers, ranked actions), async/queuing behavior, rate limits, and edge cases (children ages, baggage). An agent has what it needs to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so baseline is 3. The description still adds cross-parameter guidance (outbound_end_date economy-only; use range instead of per-day calls; exclusion params only on single-date searches) that isn't fully captured per-param.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) plus resource (flight itineraries with prices) plus source (Google Flights) and the exact inputs (two airports on a date). Clearly distinct from siblings like flight_booking_link or flight_route_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to guidance: search 1-3 likely combinations first, show results, then ask before searching more; use outbound_end_date for multi-day comparison; use exclusion params when user rules out airlines/connections. Also caps at 3 calls per turn with consequences stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources