A2B Flight MCP
Server Details
Read-only flight fares for AI assistants: the cheapest fares a2bflight has seen on thousands of routes, one-way and round trip, each with the day it was seen. Three tools, no auth, no key.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
The three tools have different scopes: find_airports is for code lookup, cheapest_routes is for broad route exploration from an origin, and route_fares is for detailed fares on a specific airport pair. The main overlap is between cheapest_routes and route_fares, both returning fare information, which could cause some confusion. However, the descriptions clarify that cheapest_routes is a list across many routes while route_fares focuses on a single pair.
Tool names mix verb_noun (find_airports) and noun_phrases (cheapest_routes, route_fares). While not chaotic, the lack of a consistent verb pattern reduces predictability. The terms are still readable and domain-appropriate, but the inconsistency is noticeable.
With only 3 tools, the set feels somewhat thin for a flight search server. Core operations like listing all airports or getting schedules are absent, but the tools do cover basic discovery and fare checking. The count is borderline but not extremely mismatched.
The server covers looking up airport codes and retrieving fare information for routes, but it lacks a way to search for flights by date, book, or get real-time quotes. The tools are observational and caching-based, which may leave gaps for users expecting booking capabilities. The surface is incomplete for a full flight search experience.
Available Tools
3 toolscheapest_routesCheapest routesARead-onlyInspect
The cheapest cached fare on every route we hold from an origin (or into a destination), cheapest one-way first, each with its cheapest round trip of a 3 to 21 day stay in return when we hold one. Filter by a maximum price and a departure month here rather than by reading the list; both apply to the one-way. Prices are one adult, economy, as last seen on the date in checked — observations, not quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | destination IATA airport or city code | |
| from | No | origin IATA airport or city code (NYC covers JFK, LGA and EWR); give from, to or both | |
| limit | No | how many routes to return, 1 to 20; 10 when omitted | |
| month | No | YYYY-MM: the cheapest fare departing in that month; needs from | |
| max_price | No | keep only fares at or under this amount, in the currency the results carry |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| routes | Yes | |
| currency | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds genuinely non-obvious behavior: prices are cached observations 'as last seen on the date in `checked`', not live quotes, and the round-trip component only appears 'when we hold one' — both material to how an agent should present results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what is returned before the filtering advice and the pricing caveat. The opening sentence is long and parenthetical-heavy, but every clause carries information and nothing is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description is not obligated to detail return values, yet it still characterizes the shape of a result (one-way plus optional round trip). Combined with the staleness caveat and filter semantics, an agent has enough to call and interpret the tool; only sibling routing is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further: it explains that `from` and `to` are interchangeable anchors ('give from, to or both'), that the month/max_price filters apply to the one-way leg only, and that the `return` companion is a 3-to-21-day stay. That clarifies cross-parameter interaction the schema does not express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: the cheapest cached fare on every route from an origin (or into a destination), with one-way first and a round-trip companion in `return`. The scope is unambiguous and clearly a list-over-routes tool rather than a single-route lookup, though it never names `route_fares` or `find_airports` to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one useful directive: filter by max price and departure month via the parameters 'rather than by reading the list.' That is guidance about how to invoke, not about when to choose this tool over its siblings, and no prerequisite or exclusion conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_airportsFind airportsARead-onlyInspect
Look up airports and city codes by name, or list the airports near a code or a lat,lon point. Use it to turn a city name into the IATA code the other tools take.
| Name | Required | Description | Default |
|---|---|---|---|
| near | No | an IATA code, or lat,lon, to list the airports near it; give this or query | |
| query | No | a city or airport name or the start of one; give this or near |
Output Schema
| Name | Required | Description |
|---|---|---|
| places | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the agent knows this is a safe, closed-domain read. The description adds the dual-mode behavior (name lookup vs near-code/coordinates), which is useful, but says nothing about result volume, ranking, or limits on the proximity list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler. The lookup-vs-list distinction is front-loaded and the downstream-purpose sentence is the key routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is unnecessary. Both input modes and the practical purpose are covered, which is everything an agent needs to select and call this tool against its two-parameter, zero-required schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 both 'query' and 'near' including their either/or relationship. The description adds only the framing of turning a city name into an IATA code, which clarifies intent but no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs (look up, list) over a specific resource (airports and city codes) and covers both operating modes: name lookup and proximity listing. It also positions the tool relative to its siblings by naming the downstream purpose (producing the IATA code other tools take).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear context of use: resolving a city name into the IATA code that the sibling tools consume, plus the two query modes. It stops short of explicitly naming cheapest_routes or route_fares as the consumers or stating when to prefer one mode, so it's clear context without explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
route_faresRoute faresARead-onlyInspect
Everything we hold for one airport pair: the cheapest one-way, the cheapest round trip of a 3 to 21 day stay, the cheapest one-way by departure date and by month, and the cheapest round trips. If we hold nothing yet, it starts pricing the route and says so; ask again a minute later.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | destination IATA airport code | |
| from | Yes | origin IATA airport code (an airport, not a city code) | |
| month | No | YYYY-MM: keep only departure dates in that month |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | |
| from | Yes | |
| dates | No | the cheapest one-way fares by departure date, cheapest first |
| months | No | the cheapest one-way fare in each month |
| status | Yes | held: fares below; pricing: we just started pricing this route, ask again in a minute; none: we hold no fare for it |
| returns | No | the cheapest round trips held, any stay, cheapest first |
| cheapest | No | the cheapest one-way; absent when we hold no dated one-way |
| currency | No | |
| page_url | Yes | |
| cheapest_return | No | the cheapest round trip of a 3 to 21 day stay; absent when we hold none, and page_url then offers a live return search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/openWorld/non-destructive, and the description adds a meaningful trait they don't: the result set can be empty on first call while background pricing kicks off, requiring a retry. That asynchronous, possibly-incomplete behavior is exactly the kind of thing annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is a long run-on enumeration of return categories that partly duplicates the output schema, and the key operational fact (empty cache triggers pricing, retry later) is buried at the end. It is readable but not tightly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema covering return values and annotations covering the safety profile, the description only needed to add the async empty-result behavior, which it does. Parameter and return documentation are adequately covered elsewhere, so the definition is essentially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so from/to/month are already documented in the schema. The description's fare-type listing describes return content rather than adding syntax or constraints to the parameters, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (all fare data held for one airport pair) and enumerates the kinds of fares returned, so the agent knows exactly what it retrieves. It does not, however, differentiate itself from the sibling cheapest_routes, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line 'If we hold nothing yet, it starts pricing the route and says so; ask again a minute later' gives concrete retry guidance for the empty-cache case, which is genuinely useful. But it never says when to reach for this tool versus cheapest_routes, so alternative selection is left implicit.
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 tool update
- Changed
route_fares1 field changed- changed
Output schema / properties / cheapest / descriptionPrevious value: -"the cheapest one-way"New value: +"the cheapest one-way; absent when we hold no dated one-way"
3 tool updates
- First observed
cheapest_routes - First observed
find_airports - First observed
route_fares
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npmMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.