Fare Deals
Server Details
Cheap flights from any city, to one place or anywhere, with the cheapest days to fly.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- GoodTurnStudio/goodturn-mcp
- GitHub Stars
- 0
- Server Listing
- goodturn-mcp
TDQS
Scored across 3 tools
cheapest_dates (days in a month) and find_deals (recent fares) are conceptually separable, but both center on cheap fares and could be confused for one another. look_up_place is clearly distinct as a code/place resolver, and the overlapping boilerplate descriptions on cheapest_dates and look_up_place slightly muddy the boundaries.
All three names use snake_case with a recognizable noun-oriented pattern (cheapest_dates, find_deals, look_up_place). 'cheapest_dates' is adjective+noun rather than verb+noun, a minor deviation from the other two, but the set still reads predictably.
Three tools is on the thin side for a fare-search server, which typically needs at least date-based, deal-based, and lookup capabilities — here each earns a place but the surface feels minimal. It is not mismatched, just borderline sparse.
The surface covers cheapest dates, recent deals, and place lookup, but there is no way to check a specific route's price or compare round-trip options, leaving notable gaps. Agents can work around this but will hit dead ends for targeted fare queries.
Available Tools
3 toolscheapest_datesCheapest departure days for a route in a monthBRead-onlyIdempotentInspect
Cheapest departure days for a route in a month. Cheap flights from any city, to one place or anywhere, with the cheapest days to fly. Fares are the cheapest Aviasales travellers found in the last 48 hours. The live price is on the booking page.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Add a state or country when a name is shared, for example Portland, Maine. | |
| from | Yes | Add a state or country when a name is shared, for example Portland, Maine. | |
| month | Yes | 2026-11 | |
| country | No | Two-letter country for the currency, for example US, GB, CA, AU, DE. Leave out to use the traveller's location. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description usefully adds freshness context ('fares are the cheapest Aviasales travellers found in the last 48 hours') and clarifies that returned prices are indicative, with the live price only on the booking page — valuable behavioral context beyond the annotations.
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?
Four sentences, front-loaded with the core purpose, but the second sentence largely restates the first ('cheap flights ... with the cheapest days to fly'), which is padding. The freshness and live-price notes in the last two sentences are the only content that earns its place.
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?
For a read-only search tool with full annotation coverage and no output schema, the description covers purpose, data freshness, and the caveat that displayed fares are not the final booking price. It is missing explicit guidance on currency behavior and the from/to 'anywhere' semantics, but is otherwise sufficient to invoke correctly.
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 schema already documents from, to, month, and country with examples. The description only loosely echoes the flexibility of 'from'/'to' ('any city', 'one place or anywhere') without adding format or edge-case detail, 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 opening sentence states a specific verb-less but clear objective: cheapest departure days for a route in a month, naming the resource (route/month) and the output (cheapest days). It does not, however, differentiate itself from siblings find_deals or look_up_place, so an agent must infer the boundary between 'cheapest dates' and 'deals'.
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 description never says when to use this tool versus find_deals or look_up_place, nor does it state required inputs such as needing a month. 'From any city, to one place or anywhere' implies breadth but gives no selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_dealsCheapest recent fares from a city, to a place or anywhereBRead-onlyIdempotentInspect
Cheapest recent fares from a city, to a place or anywhere. The say field is a ready-made answer.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | City or airport, or anywhere (default). Same state or country hints as from. | |
| from | Yes | City or airport, for example New York or JFK. Add a state or country when a name is shared: Birmingham, UK; Birmingham, AL; Portland, Maine. | |
| limit | No | How many deals to return, 1 to 20. | |
| month | No | Departure month 2026-11 or date 2026-11-14 | |
| return | No | Return month or date | |
| country | No | Two-letter country for the currency, for example US, GB, CA, AU, DE. Leave out to use the traveller's location. | |
| nonstop | No | True for direct flights only. | |
| one_way | No | True for one-way fares only. | |
| max_price | No | Budget in US dollars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds that the 'say field is a ready-made answer' (though no such field appears in the schema), which is confusing rather than clarifying. No further behavioral context (e.g., caching, freshness of fares) is provided. With annotations covering safety, a 3 reflects minimal added value.
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 sentences, front-loaded with the core purpose. The second sentence about the 'say field' is cryptic and doesn't earn its place, but overall the description is brief and doesn't ramble.
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?
For a read-only, idempotent search tool with 9 well-documented parameters and no output schema, the description covers the basic purpose. However, it omits any mention of what the results look like, how they are ranked, or how the 'say' field relates to output. No output schema exists, so the description should ideally explain return values, but it doesn't.
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 all 9 parameters are fully documented in the schema. The description adds no parameter-specific details. Per calibration, when schema coverage is high, baseline is 3 even with no param info in description.
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 ('find' implied) and resource ('deals'/'fares') with clear scope: cheapest recent fares from a city, to a place or anywhere. Distinguishes from siblings like cheapest_dates (dates, not fares) and look_up_place (place lookup, not fares), though it doesn't name them explicitly.
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 description implies usage for finding cheap fares but provides no explicit when-to-use guidance, no alternatives, and no exclusions. An agent must infer from the purpose alone that this is for deal discovery rather than date flexibility or place resolution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
look_up_placeLook up a city or airport codeCRead-onlyIdempotentInspect
Look up a city or airport code. Cheap flights from any city, to one place or anywhere, with the cheapest days to fly. Fares are the cheapest Aviasales travellers found in the last 48 hours. The live price is on the booking page.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | A city or airport name or code, for example Lisbon or LIS. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine value beyond that by disclosing data freshness ('cheapest fares found in the last 48 hours') and that the live price lives on the booking page rather than in the response.
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?
Four short sentences with no padding, but the flight/fare content is arguably off-purpose for a place lookup and dilutes the front-loaded intent. The one genuinely useful constraint (48-hour fare freshness) is buried mid-paragraph.
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?
For a single-parameter lookup with full schema coverage and no output schema, the description is enough to call the tool mechanically, but it leaves the agent unsure whether the tool returns place identifiers, fares, or both, and does not differentiate it from its two siblings.
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?
Only one parameter exists and schema coverage is 100%, with the schema itself giving the Lisbon/LIS example. The description adds no extra meaning about the query string, 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 first sentence ('Look up a city or airport code') states a clear verb and resource, but it is essentially the title restated. The following sentences pivot to cheap flights and cheapest days to fly, which is the domain of the sibling tools cheapest_dates and find_deals, so an agent cannot cleanly tell what the tool itself returns versus what the siblings do.
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?
There is no statement of when to use this tool instead of cheapest_dates or find_deals, and no prerequisites or context for invocation. The note about the live price being on the booking page describes an outcome, not when to call this tool.
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.
3 tool updates
- First observed
cheapest_dates - First observed
find_deals - First observed
look_up_place
Related MCP Connectors
Search flights by flexible dates and broad destinations, with live prices and booking links.
Flight search, airfare analytics, flexible destinations
Cheapest destinations from an airport, each with its fare and that route's typical price.
Cheapest observed fare, 6-month low and best departure date for a city pair.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables finding the cheapest flight destinations from an airport as structured JSON, with bargain detection via typical price comparisons and booking links.-
- AlicenseNot gradedqualityBmaintenanceFlight search for AI agents: flexible-date cheapest round-trips with a good-price verdict from historical data. Hosted remote MCP, free, no key.3MIT
- AlicenseAqualityBmaintenanceEnables 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.41MIT
- AlicenseAqualityBmaintenanceEnables users to find the cheapest dates to fly a route via Google Flights, supporting one-way and round-trip searches through multiple backends. It provides a tool that can search date ranges, filter by nonstop, seat, currency, and force a particular backend.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.