Skip to main content
Glama

FlyScout flight deals

Server Details

Read-only cheap return flight deals from Luxembourg and 6 nearby airports, rescanned daily.

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

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation4/5

get_deal is a by-id detail fetch, list_destinations aggregates cheapest prices per destination, and search_deals queries deals with filters — three distinct entry points. list_destinations and search_deals both surface deal prices, so an agent might pause over which to use for a plain 'show me deals' request, but the descriptions clarify the difference.

Naming Consistency5/5

All three tools follow a clean verb_noun snake_case pattern: get_deal, list_destinations, search_deals. The verbs (get/list/search) accurately signal the interaction style and no conventions are mixed.

Tool Count4/5

Three tools is lean but defensible for a read-only deal discovery service covering detail, browse, and search. It sits at the edge of feeling thin since there is no booking or calendar capability, but nothing here is redundant.

Completeness4/5

The surface covers the full read-only lifecycle: discover deals (search_deals), browse destinations (list_destinations), and retrieve a specific deal (get_deal), including expiry signaling via found=false. Gaps are minor — no date-range, price-filter, or airport-enumeration tool — and agents can work around them with the existing search.

Available Tools

3 tools
get_dealGet one flight dealA
Read-onlyIdempotent
Inspect

Get the current price of one deal by id. found=false means it is gone or expired.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDeal id from search_deals, e.g. 'LUX-BCN-vueling'

Output Schema

ParametersJSON Schema
NameRequiredDescription
dealYes
foundYesFalse if the id is unknown, the deal expired, or it left the feed
feed_staleYes
feed_last_checkedYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context not present in the annotations: the found=false sentinel meaning the deal is gone or expired, which tells the agent to expect a soft-miss rather than an error.

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?

Two short sentences, zero filler, with the core action front-loaded and the miss case second. Every clause earns its place.

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?

An output schema exists, so return values need not be explained, and the description covers the one non-obvious outcome (found=false). A brief note that the id comes from search_deals would close the only remaining gap.

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 the schema itself documents the id format, pattern and example, so the description adds no parameter meaning. Baseline 3 is appropriate when the schema does all the work.

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

Purpose4/5

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

States a specific verb and resource ('Get the current price of one deal by id'), and the singular 'one deal' implicitly separates it from the sibling search_deals. It does not explicitly name a sibling, so it falls just short of the top band.

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

Usage Guidelines2/5

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

There is no statement of when to use this instead of search_deals or list_destinations, nor any prerequisite spelled out. The 'by id' phrasing only weakly implies you must already hold an id from a prior search, and the schema carries that hint rather than the description.

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

list_destinationsList deal destinationsB
Read-onlyIdempotent
Inspect

List destinations that have current deals, with the cheapest price and departure airports.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNoDeparture airport, or 'any' for all 7any

Output Schema

ParametersJSON Schema
NameRequiredDescription
feed_staleYes
destinationsYes
feed_last_checkedYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety bar is low. The description adds one useful semantic filter ('that have current deals') but says nothing about result count, ordering, or freshness of pricing beyond the cheapest-price mention.

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?

A single front-loaded sentence with no filler. It is efficient, though being one clause long it leaves supporting context (usage, scope) unstated rather than trimmed.

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

Completeness3/5

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

With an output schema present and annotations covering safety, the description need not explain return values, and it names the key returned fields anyway. What is missing is routing guidance against its two siblings and any sense of result size or pagination, which leaves the definition minimally viable.

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 the single 'origin' enum is fully documented there, including the 'any' default and the set of 7 airports. The description adds no syntax or behavior beyond what the schema already provides, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List destinations') with a meaningful qualifier ('that have current deals') and previews the returned fields. It reads clearly against get_deal and search_deals, though it never explicitly contrasts itself with them.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the browse/discovery entry point versus the siblings' deal-specific lookups, but the description never says when to prefer it over get_deal or search_deals, nor any exclusion.

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

search_dealsSearch flight dealsA
Read-onlyIdempotent
Inspect

Search current flight deals from Luxembourg (default) or nearby airports. Returns return-trip prices in EUR with dates, the usual route price, a booking link and when the price was last checked.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort orderprice
limitNoMax number of deals to return (1-25)
monthNoOutbound month, YYYY-MM. Matches the cheapest outbound date only.
originNoDeparture airport IATA code, or 'any' for all 7LUX
max_priceNoMax return price in EUR
destinationNoDestination IATA code, city or country, e.g. 'BCN', 'Barcelona' or 'Spain'
include_expiredNoInclude deals whose outbound date has passed

Output Schema

ParametersJSON Schema
NameRequiredDescription
dealsYes
feed_staleYesTrue if the daily scan is older than 36 hours
total_matchesYes
feed_last_checkedYes

TDQS

A3.6/5.0
Behavior3/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 that results carry return-trip EUR prices, the usual route price, a booking link, and a last-checked freshness timestamp, but with an output schema already present this return-content detail is largely redundant, and no rate limits or freshness caveats beyond 'last checked' are given.

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?

Two sentences, zero waste: purpose and scope first, return-content summary second. Front-loaded and appropriately sized for a search tool.

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 an output schema handling return values, 100% schema coverage on all 7 params, and annotations covering safety, the description supplies enough to call the tool correctly. The only shortfall is the missing contrast with the two sibling tools, which an agent would need to resolve selection.

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 every parameter is already documented in the schema including the origin default of LUX and the 'any' option. The description only echoes the Luxembourg default and adds no syntax or constraint meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (Search) and resource (flight deals) plus scope: Luxembourg by default or nearby airports. This is clear and actionable, but it never names or contrasts with the siblings get_deal and list_destinations, so the agent must infer the boundary between searching vs fetching a single deal vs listing destinations.

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

Usage Guidelines3/5

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

The description implies when to use it by describing 'current flight deals' from a default origin, but there is no explicit when-to-use, when-not-to-use, or alternative-tool guidance. Given get_deal and list_destinations sit alongside it, the absence of routing cues is a real gap.

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. 1 tool update
    • Changedsearch_deals1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Max number of deals to return (1-25)"
  2. 3 tool updates
    • First observedget_deal
    • First observedlist_destinations
    • First observedsearch_deals

Publisher details

Operator
Not applicable
Operator website
Not applicable
Vendor relationship
First-party
Trust center
Not applicable
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Search flights using Google Flights data via SerpAPI, covering all airlines including low-cost carriers like Ryanair and easyJet.
    2
    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
    A
    quality
    A
    maintenance
    Unofficial Python SDK and MCP server for Ryanair flight search. Find one-way fares, explore destinations grouped by country or region, and discover the cheapest day to fly between any two airports. No API keys.
    4
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources