Skip to main content
Glama

Server Details

Read-only public itinerary previews, observed round-trip fares, and flight savings verified today.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: list vs. get for itineraries, and list vs. today-filtered for flight deals. The descriptions explicitly cross-reference each other and explain when to use which tool, leaving no ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: get_itinerary, get_todays_deals, list_flight_deals, list_itineraries. The verbs get and list are used predictably for single-item vs. collection operations.

Tool Count5/5

Four tools is well-scoped for a read-only travel data server offering two resources (itineraries and flight deals) with both list and detail/specialized views. Each tool earns its place without redundancy.

Completeness4/5

Core read workflows are covered: browsing and retrieving itinerary previews, listing flight deals, and getting today's verified deals. Minor gaps exist, such as no filtering of itineraries by country or retrieving a single flight deal by a specific route, but agents can work around these with the available list tools.

Available Tools

4 tools
get_itineraryGet a published Fly Frugal itinerary previewA
Read-onlyIdempotent
Inspect

Get the public preview of one Fly Frugal itinerary by its slug, as returned by list_itineraries. Returns the same fields as a list item: country_name, tagline, days_count, the preview content, image URLs, the full guide's price (price_cents, currency), updated_at and pdf_ready. Use it to describe a trip to the user or decide whether the full guide fits; the complete paid day-by-day guide is never returned. An unknown slug returns an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesItinerary slug from list_itineraries, lowercase and hyphenated, for example "japan" or "south-india".

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely useful behavior: the paid guide body is never returned, and an unknown slug produces an error rather than empty output.

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-loads the action and identifier, then the return contract and the error case, in a compact paragraph with no filler. The field enumeration is slightly list-like but earns its place given no output schema.

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?

With no output schema, the description takes on the return-value burden and does so: it names the returned fields, states the boundary condition (no full guide), and documents the failure mode. Nothing needed to call it correctly is missing.

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 coverage is 100% and the single slug parameter is fully documented (pattern, maxLength, examples) in the schema itself. The description only restates that the slug comes from list_itineraries, adding no format or syntax detail beyond the schema — baseline 3.

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?

Specific verb+resource (get one itinerary preview by slug) with explicit scope narrowing ('public preview', 'the complete paid day-by-day guide is never returned'). It distinguishes itself from list_itineraries by name, so an agent can route without opening a schema.

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?

Gives clear intended uses ('describe a trip to the user', 'decide whether the full guide fits') and identifies list_itineraries as the source of the slug. It stops short of an explicit 'if you want all itineraries, call list_itineraries instead' exclusion, so it's clear context without full alternative routing.

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

get_todays_dealsGet today's verified Fly Frugal dealsA
Read-onlyIdempotent
Inspect

Return only the strongest current deals: fares whose Google savings insight was checked today (America/Los_Angeles calendar day) and shows a positive saving versus the usual price. Use it when the user asks for today's deals or wants prices that are freshly verified. Each deal has the same fields as list_flight_deals, plus count. If nothing was verified today the list is empty; say so instead of presenting older fares, or offer list_flight_deals for recent observations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of deals to return (1 to 10, default 2).
nightsNoTrip length in nights between the outbound and return flights (1 to 30, default 7). Only fares observed for this exact length are returned.
originNoDeparture airport as a three-letter IATA code, such as SFO, JFK or ATL (case-insensitive). Omit to search deals from every tracked US airport.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description wisely spends its budget on semantics the annotations cannot express: the exact calendar-day/timezone definition of 'today', the verification criterion (positive saving vs usual price), and the empty-list behavior. It even discloses an extra return field ('plus count').

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

Conciseness5/5

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

Four sentences with no waste: the filtering rule comes first, then the usage trigger, then the return shape, then the fallback. Every sentence carries distinct information and the routing guidance is front-loaded.

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?

Despite having no output schema, the description explains the return shape by reference to a sibling ('same fields as list_flight_deals, plus count') and covers the degenerate empty case. For a zero-required-parameter read tool, nothing an agent needs to call it correctly is missing.

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%, with limit, nights and origin each fully documented including ranges, defaults and the IATA pattern, so the schema does the heavy lifting. The description adds no syntax or meaning beyond the schema for these three parameters, which is the baseline 3 case.

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?

The description states a specific verb and resource ('Return only the strongest current deals') and pins the exact filter: fares whose Google savings insight was checked today (America/Los_Angeles) with a positive saving versus usual price. It also distinguishes itself from the sibling list_flight_deals by framing that tool as 'recent observations' rather than freshly verified deals.

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-use ('when the user asks for today's deals or wants prices that are freshly verified') plus a named alternative and the condition that selects it ('offer list_flight_deals for recent observations'). It also instructs on the empty-result case, telling the agent to say so rather than present older fares.

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

list_flight_dealsList current Fly Frugal flight dealsA
Read-onlyIdempotent
Inspect

List the cheapest round-trip economy fares Fly Frugal has recently observed, from one departure airport or across all tracked US airports. Use it for questions like "cheap flights from SFO" or "where can I fly for under $500". Each deal has origin, destination_airport, label (airport name), country, places, departure_date and return_date, nights, price and currency (whole US dollars), airlines, longest_layover_minutes, observed_at, and Google's price insight when checked: google_price_signal (low, typical or high), google_usual_low/high, google_savings, google_share_url and google_signal_checked_at. Prices are observations that can change or sell out, so tell users to confirm before booking. For only deals re-verified today, use get_todays_deals.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of deals to return (1 to 50, default 20).
nightsNoTrip length in nights between the outbound and return flights (1 to 30, default 7). Only fares observed for this exact length are returned.
originNoDeparture airport as a three-letter IATA code, such as SFO, JFK or ATL (case-insensitive). Omit to search deals from every tracked US airport.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds genuinely non-structured context: prices are observations that can change or sell out, and the agent should tell users to confirm before booking. It omits pagination behavior, but that is minor for a bounded list tool.

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 purpose and scope, then the sibling routing rule, then return fields. The long enumeration of returned fields is justified given there is no output schema, though it makes the description dense; every clause still carries information.

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?

With no output schema, the description supplies the return-field inventory (origin, destination_airport, price/currency, google_price_signal and related fields), the freshness caveat, and the sibling alternative. An agent has everything needed to invoke and interpret results correctly.

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 all three parameters (limit, nights, origin) are already fully documented, including omit-to-search-all behavior. The description's mention of "one departure airport or across all tracked US airports" only restates the schema, adding no new syntax or constraints; baseline 3 applies.

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 (list) and resource (cheapest round-trip economy fares), with scope spelled out: from one departure airport or across all tracked US airports. It names the sibling get_todays_deals and the condition distinguishing it, so an agent can pick correctly without opening either schema.

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?

Gives concrete trigger examples ("cheap flights from SFO", "where can I fly for under $500") plus an explicit routing rule: for deals re-verified today, use get_todays_deals. Both when-to-use and the alternative are stated, not inferred.

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

list_itinerariesList published Fly Frugal itinerariesA
Read-onlyIdempotent
Inspect

Browse Fly Frugal's published day-by-day budget travel itineraries. Use this to discover which destinations have a guide, then call get_itinerary with a returned slug for one guide's preview. Each item has slug, country_name, tagline, days_count, a preview, cover and first-day image URLs, price_cents and currency for the full guide, updated_at, and pdf_ready. Results are newest first. Only public previews are returned; the paid full guide is never included.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of itineraries to return (1 to 50, default 24).
countryNoOnly return itineraries for this destination, matched case-insensitively against the full name, for example "Japan", "South Korea" or "Bali". Country codes such as "JP" do not match. Omit to list every destination.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond that by disclosing result ordering (newest first) and a data-scope exclusion (only public previews, the paid full guide is never included). Since there is no output schema, enumerating the returned fields is genuinely additive rather than redundant.

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

Conciseness5/5

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

Four tightly packed sentences with the routing instruction front-loaded ahead of the field inventory. Every clause carries distinct information (purpose, alternative tool, returned fields, ordering/scope) and none restates the name or annotations.

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

Completeness4/5

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

With no output schema, the description adequately covers return contents, ordering, and visibility limits, and the schema covers both inputs. The one gap is pagination behavior: nothing explains how to retrieve results beyond the limit or whether a cursor exists, which matters for a 50-item-max listing.

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%, and both parameters (limit, country) are already documented with ranges, defaults, matching rules, and examples in the schema. The description adds no additional syntax, default, or matching nuance beyond what the schema provides, so the baseline of 3 applies.

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+resource (browse published Fly Frugal itineraries) and immediately scopes it as a discovery/listing operation rather than a detail fetch. It explicitly names the sibling get_itinerary and the handoff condition (pass a returned slug), so an agent can distinguish the two without opening either schema.

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?

"Use this to discover which destinations have a guide, then call get_itinerary with a returned slug for one guide's preview" gives an explicit when-to-use and names the alternative tool with the exact linkage value. The workflow (list first, then fetch by slug) is fully specified, leaving nothing to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedget_itinerary1 field changed
      • addedInput schema / properties / slug / description
        Added value: +"Itinerary slug from list_itineraries, lowercase and hyphenated, for example \"japan\" or \"south-india\"."
    • Changedget_todays_deals3 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of deals to return (1 to 10, default 2)."
      • addedInput schema / properties / nights / description
        Added value: +"Trip length in nights between the outbound and return flights (1 to 30, default 7). Only fares observed for this exact length are returned."
      • addedInput schema / properties / origin / description
        Added value: +"Departure airport as a three-letter IATA code, such as SFO, JFK or ATL (case-insensitive). Omit to search deals from every tracked US airport."
    • Changedlist_flight_deals3 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of deals to return (1 to 50, default 20)."
      • addedInput schema / properties / nights / description
        Added value: +"Trip length in nights between the outbound and return flights (1 to 30, default 7). Only fares observed for this exact length are returned."
      • addedInput schema / properties / origin / description
        Added value: +"Departure airport as a three-letter IATA code, such as SFO, JFK or ATL (case-insensitive). Omit to search deals from every tracked US airport."
    • Changedlist_itineraries2 fields changed
      • addedInput schema / properties / country / description
        Added value: +"Only return itineraries for this destination, matched case-insensitively against the full name, for example \"Japan\", \"South Korea\" or \"Bali\". Country codes such as \"JP\" do not match. Omit to list every destination."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of itineraries to return (1 to 50, default 24)."
  2. 4 tool updates
    • First observedget_itinerary
    • First observedget_todays_deals
    • First observedlist_flight_deals
    • First observedlist_itineraries

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables real-time flight fare searches across date ranges and multiple destinations, with historical price insights and booking links. Provides one-way and round-trip search tools through MCP.
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables real-time one-way and round-trip flight searches from any MCP client without an API key or account, returning live fares, historical price insights, and bookable links supported by disclosed sponsored cards.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Flight search for AI agents: flexible-date cheapest round-trips with a good-price verdict from historical data. Hosted remote MCP, free, no key.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to search live public airfares between airports across a date window or flexibility range, returning itineraries with prices, times, layovers, and cheapest/fastest/compromise picks, plus offline airport resolution. It runs locally over stdio with no API key, and reports missing fields honestly rather than inventing bags, fares, or prices.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources