Skip to main content
Glama

Search flights

mb_search_flights
Read-onlyIdempotent

Search bookable flights by route and date to compare prices, seats left, baggage, and local times. Filter by cabin, airline, direct-only, departure window, or round trip.

Instructions

Search flights for a date: every bookable flight with price, seats left, baggage and times.

price_toman is one adult's fare (taxes included); total_toman is the whole party (adult, child and infant fares). Fares without enough seats for the party are dropped by the site. Domestic round trips come back as two lists (outbound, return, each its own ticket); international round trips as packages whose price covers both ways (flight_id names both legs). Times are local to each airport, even though they all carry the API's +03:30 suffix; international flights from Tehran can leave from IKA when THR is asked (segments show the real airports). Flights not on sale (sold out or auto-reserve only) are counted in not_on_sale. For refund penalties, exact baggage and fare rules call mb_flight_fare_details with the flight_id; for the cheapest day use mb_flight_price_calendar first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesGregorian date YYYY-MM-DD, e.g. '2026-10-20'.
sortNoOrder of the flights.cheapest
cabinNoCabin class filter (applied here; the API itself ignores it).any
limitNoMax flights per list.
adultsNoAdults (12+).
originYesIATA airport or city code from mb_find_place(mode='flight'), e.g. 'THR', 'MHD', 'IKA' or 'ISTALL' (all Istanbul airports).
infantsNoInfants (under 2).
airlinesNoOnly these airline codes, e.g. ['IR', 'W5'] (codes from results or mb_companies).
childrenNoChildren (2-11).
destinationYesIATA airport or city code from mb_find_place(mode='flight'), e.g. 'THR', 'MHD', 'IKA' or 'ISTALL' (all Istanbul airports).
direct_onlyNoOnly flights without a connection.
return_dateNoReturn date YYYY-MM-DD for a round trip, e.g. '2026-10-23'; omit for one-way.
depart_afterNoLocal time HH:MM, e.g. '06:00'.
depart_beforeNoLocal time HH:MM, e.g. '06:00'.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly/idempotent/openWorld/non-destructive) by disclosing non-obvious behavior: fares without enough seats are dropped by the site, sold-out/auto-reserve flights land in not_on_sale, domestic round trips return two separate tickets while international ones return a combined package, and times are local despite the +03:30 suffix. It also warns that IKA can be substituted when THR is requested.

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

Conciseness4/5

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

Front-loaded with the core purpose in the first sentence, then dense but informative semantics. Every sentence carries a distinct fact (pricing, party sizing, round-trip shapes, timezone quirk, sibling routing); the parentheticals are compact though somewhat packed.

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 14-parameter search tool with an output schema, the description supplies exactly the missing operational context: fare semantics, round-trip list shapes, timezone behavior, and airport substitution. Nothing an agent needs to call it correctly or interpret results is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 14 parameters, making 3 the baseline. The description adds only indirect meaning by explaining that total_toman covers the whole party (adult/child/infant fares) and that fares lacking enough seats for the party are dropped, which loosely informs the party-size parameters.

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 and resource with scope: 'Search flights for a date: every bookable flight with price, seats left, baggage and times.' It also distinguishes itself from siblings by routing detail work to mb_flight_fare_details and cheapest-day work to mb_flight_price_calendar.

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

Usage Guidelines4/5

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

Explicit follow-up routing is given: use mb_flight_fare_details for refund penalties, exact baggage and fare rules, and mb_flight_price_calendar first for the cheapest day. It does not state explicit when-not-to-use-this-tool conditions for the same job, but the alternative-selection guidance is clear.

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