Skip to main content
Glama

Server Details

Search verified flight fares by city, month, cabin and price, with a link to book each one.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
Sparkflights-com/sparkflights-mcp
GitHub Stars
0
Server Listing
Sparkflights MCP Server

TDQS

A4.3/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct roles: search_deals finds fares, while get_deal retrieves a single fare by id from search_deals. The descriptions explicitly cross-reference each other, making misselection unlikely.

Naming Consistency5/5

Both names follow a consistent snake_case verb_noun pattern (search_deals, get_deal). The convention is predictable and readable.

Tool Count3/5

Two tools is on the thin side for a flight-fare service, even a read-only one. However, the search-and-retrieve pair is logically scoped and each tool earns its place.

Completeness4/5

The surface covers the core read-only workflow: finding verified fares and retrieving fare details. Route-level browsing and price history are exposed via URLs rather than dedicated tools, which is a minor gap but workable.

Available Tools

2 tools
get_dealA
Read-onlyIdempotent
Inspect

One Sparkflights fare by the numeric id from search_deals: its itinerary, the price text of its fare page, its outbound and return flights, the date pairs its fare page lists with their prices, and its url, route_url and feed_url. A fare that is no longer live returns an error naming its route page.

NameRequiredDescriptionDefault
idYesDeal ID

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 non-destructive behavior, so the safety profile is covered. The description adds meaningful behavior beyond that: it enumerates the returned data and specifies the error behavior for a stale fare ('returns an error naming its route page').

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?

The description is front-loaded with the core purpose and then lists the returned fields compactly. It is a single dense sentence but every clause (source of id, returned fields, error case) earns its place.

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 carries the burden of explaining returns, and it does so by enumerating itinerary, price text, flights, date pairs, and URLs. The error case for stale fares is also covered, leaving nothing essential for an agent to call this 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 100% and the single parameter is documented as 'Deal ID'. The description adds value by clarifying that the id is numeric and originates from search_deals, which the schema does not state.

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 ('One Sparkflights fare by the numeric id') and explicitly distinguishes it from the sibling search_deals by describing retrieval by id rather than search. An agent can select between the two tools 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 Guidelines4/5

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

The description makes clear the id must come from search_deals, which implies the lookup-after-search workflow, and explains what happens when the fare is no longer live. It lacks an explicit 'use this instead of search_deals when...' statement, but the context is clear.

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

search_dealsA
Read-onlyIdempotent
Inspect

Search flight fares Sparkflights has already found and verified, ranked by cost per mile against each market's limit. Not a live fare search: an empty result means no current verified fare matches. Each result has the price text of its Sparkflights fare page; url, the fare page; route_url, the route page, which lists the route's live fares and price history; and feed_url, the route's JSON feed of new fares.

NameRequiredDescriptionDefault
sortNoSort order: cpm (default; cost per mile against its market's CPM ceiling, lowest first) or recent (newest first)
cabinNoCabin class, or a comma-separated list: economy, premium_economy, business, first
limitNoMax results, 1-25. Default 10.
originNoWhere the trip starts: an IATA airport code (JFK) for that airport, or a city (New York, new-york-city) for every airport the city's route pages cover
low_costNotrue returns only budget/low-cost carrier deals; overrides include_budget
max_priceNoUS dollars: only deals listed at or under this price
destinationNoWhere the trip goes: an IATA airport code (NRT) for that airport, or a city (Tokyo, london) for every airport the city's route pages cover
depart_monthNoYYYY-MM: only deals whose first departure date is in that month
origin_regionNoDeparture region, or a comma-separated list, same values as destination_region. Default: the regions the deal board lists
include_budgetNoAdd budget/low-cost carrier deals (Spirit, Frontier, etc.) to the others. Default false — budget deals are on /flights/budget.
destination_regionNoDestination region, or a comma-separated list: north_america, europe, asia, africa, oceania, south_america

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds behavior the annotations cannot: that results come from a pre-verified index, what an empty result means semantically, and what each returned field (price text, url, route_url, feed_url) represents. It could go slightly further on ordering details or how stale the index may be, but it covers the main behavioral gaps.

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?

The lead sentence is front-loaded with the core distinction, and the return-field enumeration is dense but earns its place since there is no output schema. The final sentence is a long clause-chained list, which is slightly harder to scan than the rest, but there is no filler.

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 11 optional parameters, no output schema, and no required fields, the description carries exactly the missing load: it explains what is searched, what the results contain, and what an empty result signifies. Combined with a fully described schema and read-only annotations, an agent has everything needed to call it 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%, and each of the 11 parameters already documents its format and defaults, including the cpm/recent sort options, the comma-separated cabin and region lists, and the low_cost override of include_budget. The description adds no parameter-level semantics beyond that, so the baseline of 3 is correct.

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 pairs a specific verb and resource ('Search flight fares Sparkflights has already found and verified') with an explicit definitional boundary: it is a search over an existing verified index, not a live fare search. That boundary, plus the note that results are ranked by cost per mile, lets an agent distinguish it from a live-search or a single-deal fetch without opening any 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?

It gives a clear use context ('Not a live fare search') and an important success-criterion: an empty result means no current verified fare matches, rather than a failure. It stops short of naming the sibling get_deal or stating when to prefer that tool over this one, so it is strong but not fully routing-level guidance.

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. 2 tool updates
    • First observedget_deal
    • First observedsearch_deals

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
    A
    quality
    D
    maintenance
    Search Google Flights for one-way, round-trip and multi-city fares, with offline airport lookup and nearby-airport resolution.
    6
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables flight search and fare calendar exploration by interacting with Google Flights' API, supporting detailed filters for origin, destination, dates, cabin class, airlines, and more.
    6,108 PyPI
    3,431
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.