Fair Fare
Server Details
What a taxi, Uber or Lyft should cost, airport pickup rules, and overcharge checks.
- 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 8 tools
Each tool targets a distinct stage of the fare lifecycle: discovery (list_cities), city data (get_taxi_tariff, get_airport), estimation (estimate_fare, best_time_to_ride), verification (check_fare), and driver/fleet checks (check_driver_licence, check_fleet_file). The only potential overlap is between check_fare and estimate_fare, but descriptions clearly separate paid-fare verification from pre-trip cost estimation.
Seven of eight tools follow a consistent verb_noun pattern (check_fare, estimate_fare, get_airport, list_cities, etc.). best_time_to_ride breaks the pattern as a noun phrase, a minor deviation.
Eight tools are well-scoped for a fare-information assistant, with each tool covering a distinct aspect without redundancy.
The surface covers core rider needs from city tariffs to fare verification and airport info, with workarounds for non-NYC driver checks. Minor gaps include no direct booking tool (only links) and firm-side check_fleet_file being separate from rider workflows, but no dead ends for typical queries.
Available Tools
8 toolsbest_time_to_rideCheapest time of day to take a rideARead-onlyIdempotentInspect
Cheapest time of day to take a ride. For New York, typical Uber and Lyft prices for a trip of a given length at every hour of the week, from the city's trip records, with the cheapest and most expensive hours today and whether waiting saves money. For other cities, how the taxi meter rates change by time of day.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Tariff city id, for example nyc, london or chicago. Defaults to nyc. | |
| when | No | When the trip starts, in local time: now (the default), a time like 18:30 or 6pm, or a date and time like 2026-10-09T18:30. | |
| miles | No | Trip length in miles (New York only). Defaults to 3. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower; the description still adds real value by disclosing data provenance (city trip records, Uber/Lyft vs. taxi meter rates) and what the answer contains. It stops short of stating freshness/coverage limits of the underlying records.
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?
Three sentences, front-loaded with the core question, then the data basis, then city fallback behavior. Every sentence carries information, though the opening sentence restates the title verbatim, costing a little space.
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 no output schema, the description usefully sketches the return content (cheapest and most expensive hours today, whether waiting saves money) and covers the NYC/non-NYC split that governs behavior. It is close to complete, though it omits what the tool returns for non-NYC cities and any data-freshness caveat.
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 city, when, and miles are already fully documented, and the baseline is 3. The description adds only marginal context by explaining why results differ by city, but it does not clarify parameter interactions (e.g., how 'when' affects the per-hour comparison) 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?
The description states a specific question the tool answers ('cheapest time of day to take a ride') and separates two data regimes: NYC Uber/Lyft trip records vs. other cities' taxi meter rates. An agent can distinguish it from fare-estimation siblings, but the description never names or contrasts those siblings 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?
Usage is implied through scope conditions ('For New York... For other cities...'), which tells the agent when the NYC-specific behavior applies. However, there is no explicit guidance on when to pick this tool over check_fare, estimate_fare, or get_taxi_tariff, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_driver_licenceCheck a New York taxi or ride-app driver's licenceARead-onlyIdempotentInspect
Check a New York taxi or ride-app driver's licence. Whether a TLC licence number is active on New York City's daily open data for for-hire (Uber, Lyft, car service) and taxi drivers, its expiry date, and, if a name is given, whether it matches (the name on the licence is never returned). Other cities get the official way to check.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City: nyc (live check) or another city id for guidance. Defaults to nyc. | |
| name | No | Optional name the driver gave, to check it matches. | |
| number | No | The TLC licence number shown in the app or on the partition card. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/open-world, so the bar is lower. The description adds genuine behavioural context beyond them: the check runs against daily open data (freshness), the name is verified but never returned (a privacy trait the agent must know before relaying results), and non-NYC cities fall back to guidance rather than a live result.
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 the tool's purpose and then the return semantics; no filler sentences. The second sentence is dense but each clause (active status, expiry, name match, name not returned) earns its place. Slight cost in readability for cramming the output contract into one sentence.
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 no output schema, the description does the work of explaining what comes back: active/expired status, expiry date, and a name-match verdict. That covers the main agent needs; it is only mildly thin on error/edge behaviour for unknown numbers or unsupported cities.
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 all three parameters including defaults and the meaning of 'number'. The description reinforces that 'name' is optional and is only used for a match test, but adds little beyond the schema, so the 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?
Specific verb (check) plus a precisely scoped resource (New York taxi/ride-app driver's TLC licence) with the data source named (NYC's daily open data). It clearly distinguishes the NYC live check from the other-city guidance path, so an agent can tell it apart from fare/tariff siblings.
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?
Explains the two modes (live NYC check vs. official guidance for other cities) and the conditional behaviour when a name is supplied, which gives clear context for invocation. It stops short of naming an alternative sibling tool or stating explicit exclusions, but the when-to-use path is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_fareWas I overcharged? Check a fare that was paidARead-onlyIdempotentInspect
Was I overcharged? Check a fare that was paid. Compares what was paid with the official meter tariff, the airport flat fare or New York's typical Uber and Lyft prices for the same trip and hour, gives a verdict (fair, high or overcharged), the next steps for that company or city regulator, and a short message to send asking for a refund.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Where it ended. | |
| city | No | Tariff city id, when giving miles instead of from and to. | |
| from | No | Where the trip started. | |
| kind | No | Kind: taxi, uber, lyft, bolt or minicab. Defaults to taxi. | |
| paid | Yes | What was paid, without the tip, for example 48.50. | |
| when | No | When the trip starts, in local time: now (the default), a time like 18:30 or 6pm, or a date and time like 2026-10-09T18:30. | |
| miles | No | Trip length in miles, instead of from and to. | |
| minutes | No | Trip time in minutes, if known. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds real value beyond that: it discloses the comparison sources (meter tariff, airport flat fare, Uber/Lyft typical prices), the verdict taxonomy (fair/high/overcharged), and the returned next-steps plus refund message.
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 the user-facing question and the core action, then the comparison logic and outputs. It is a single dense sentence but every clause earns its place by describing distinct behavior; only the repeated title phrasing is slightly redundant.
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 no output schema, the description carries the return-value burden and does so by naming the verdict values, next steps, and message. It is largely complete for this tool; only the exact output shape and any coverage limits (e.g., which cities are supported) are left unstated.
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 eight parameters are already documented in the schema, including the 'paid' tip exclusion and the 'when' formats. The description adds no parameter-level syntax or defaults beyond that, so the baseline 3 is appropriate.
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 — check a fare that was paid — and distinguishes itself from the sibling estimate_fare by anchoring on a completed trip rather than a prospective one. The title's question framing reinforces the intent.
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 phrase 'a fare that was paid' clearly sets the context (post-hoc verification vs. pre-trip estimation), which implicitly routes the agent away from estimate_fare. However, it never names an alternative or states exclusions explicitly, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_fleet_fileCheck a cab firm's fleet.jsonARead-onlyIdempotentInspect
Check a cab firm's fleet.json. Reads a taxi or minicab firm's fleet.json (the open format at fairfare.pages.dev/fleet that lets assistants find and book local firms directly) and lists anything to fix.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The https address of the fleet.json file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds that it fetches a remote file and returns a list of things to fix, but says nothing about failure modes for unreachable or malformed URLs, which matters for a network-reading validator.
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 short sentences, front-loaded with the action and resource, with no filler. The parenthetical explaining the format is long but serves the reader.
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 one-parameter read-only validator with no output schema, the description covers what it reads and roughly what it returns ('lists anything to fix'). More detail on the shape of the findings would help, but nothing critical is missing.
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?
There is a single parameter with 100% schema description coverage, so the schema already documents it. The description's reference to the fleet.json file adds no syntax or format detail beyond what the schema states, so the 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?
States a specific verb (check) and resource (a cab firm's fleet.json) and explains what the resource is, so an agent knows exactly what the tool operates on. It does not need to contrast with siblings, since none of the other tools touch fleet.json, but it also doesn't explicitly disambiguate itself.
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?
Usage is implied by the description of fleet.json as a format that lets assistants find and book local firms, which hints at when validation is useful, but there is no explicit when-to-use, when-not-to-use, or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_fareWhat a trip should cost by taxi, Uber or LyftBRead-onlyIdempotentInspect
What a trip should cost by taxi, Uber or Lyft. Distance and time by road between two places, the licensed taxi meter fare with the extras that apply at that hour, any airport flat fare, typical Uber and Lyft prices in New York, airport pickup rules, a pre-booked transfer option for airport trips, and links that open Uber, Lyft or public transport directions with the trip filled in.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Where the trip ends, in the same forms as from. | |
| city | No | Optional tariff city id from list_cities, when the place names are ambiguous. | |
| from | Yes | Where the trip starts: an address, landmark, postcode, airport code (JFK, LHR) or lat,lon. | |
| when | No | When the trip starts, in local time: now (the default), a time like 18:30 or 6pm, or a date and time like 2026-10-09T18:30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuine context beyond that: the estimate is computed from road distance/time and hour-dependent meter extras, and Uber/Lyft pricing is scoped to New York, which signals a geographic limitation. It still says nothing about rate limits, required inputs' failure modes, or currency.
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 purpose is front-loaded in the first sentence, but the second is a long comma-run listing every returned artifact, which reads as an enumeration dump rather than tight prose. It is not padded with boilerplate, yet it could be tightened considerably.
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 no output schema, the description carries the burden of telling the agent what comes back, and it does so fairly thoroughly: road distance/time, meter fare with hourly extras, airport flat fares, Uber/Lyft typicals, airport pickup rules, transfer option, and prefilled deep links. It stops short of stating coverage limits (non-NY rideshare), currency, or behavior when a place is ambiguous beyond the city param.
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 from/to/city/when fully, making the baseline 3. The description only indirectly hints at parameter meaning ('extras that apply at that hour' implies the when parameter matters; 'New York' hints at the city tariff scope) without adding format or constraint 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?
The opening sentence names the resource (trip cost) and the modalities (taxi, Uber, Lyft), so an agent knows this estimates a fare rather than fetching a tariff table. However, it does not distinguish itself from close siblings like check_fare or get_taxi_tariff, which the agent must choose between.
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 explicit when-to-use guidance and no named alternative, even though check_fare and get_taxi_tariff are near-neighbors in the sibling list. The reader must infer from the return-value list that this is the comprehensive trip-cost estimator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_airportGetting a ride at an airportCRead-onlyIdempotentInspect
Getting a ride at an airport. Where Uber and Lyft pick up, how the taxi rank works, flat taxi fares, drop-off and pickup charges for cars, meet and greet rules, public transport into the city with prices, and tips, from each airport's own pages.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Airport code or name, for example JFK, LAX, LHR or Heathrow. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered and the description need not repeat it. The description's one added behavioral fact is provenance — data comes 'from each airport's own pages' — which is useful but thin; nothing is said about coverage, freshness, or whether a single airport or many are returned.
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, but the second is a comma-spliced list of eight topics that reads like a page blurb rather than a tool definition. Nothing is egregiously wasted, but the key fact (this returns airport ground-transport info for a given airport code) is buried behind the topic list.
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 lookup with one fully documented parameter and no output schema, the description is roughly adequate: it hints at the subject matter of the returned content. It still omits the return shape (prose vs. structured fares), whether results span multiple airports, and behavior on unknown codes.
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% and the single 'code' parameter is documented in the schema with concrete examples (JFK, LAX, LHR, Heathrow). The description adds no syntax, aliasing, or matching-behavior detail beyond that, so the schema baseline of 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 just restates the title ("Getting a ride at an airport") and never states an explicit verb like 'returns' or 'looks up'. The second sentence does enumerate the content covered (pickup points, taxi rank, fares, charges, transport), which gives a rough sense of the payload, but it never distinguishes this from overlapping siblings such as get_taxi_tariff or check_fare.
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 guidance on when to call this versus alternatives, even though get_taxi_tariff, estimate_fare and check_fare overlap heavily on the fare/transport topic. No prerequisites, no exclusions, no mention of what happens for airports not covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taxi_tariffA city's official taxi meter tariffBRead-onlyIdempotentInspect
A city's official taxi meter tariff. The starting charge, the rate per mile or kilometre, the waiting rate, time-of-day tariffs, extras and surcharges, flat fares, tipping custom and the official source.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Tariff city id from list_cities, for example nyc, chicago, london or birmingham. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description's contribution is content-level (it returns starting charge, per-mile rate, waiting rate, extras, flat fares, tipping custom, source), not behavioral - it says nothing about caching, freshness, or coverage gaps for unknown cities. Adequate but not additive.
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 resource and then a compact enumeration of returned fields. The first sentence duplicates the title exactly, which is a minor waste, but the rest is efficient and free of filler.
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 no output schema, enumerating the tariff components (starting charge, rates, time-of-day tariffs, extras, flat fares, tipping, source) usefully tells the agent what comes back. Combined with a fully documented single parameter and complete annotations, this is close to sufficient; only the absence of sibling disambiguation and freshness/coverage notes holds it back.
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% and the single city parameter is well documented with examples and a pointer to list_cities. The description adds nothing about the parameter, so the baseline 3 applies; the schema carries the full burden.
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 names the resource precisely (a city's official taxi meter tariff) and enumerates the data it covers, so the agent knows what it will get. However, the first sentence is a verbatim repeat of the title with no verb, and nothing distinguishes this from siblings like check_fare or estimate_fare, which plausibly also return fare data.
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 when-to-use guidance at all: no statement of when to call this rather than check_fare, estimate_fare, or best_time_to_ride, and no prerequisites or conditions. The only implicit cue is the 'official source' phrasing, which hints at authoritative reference data rather than a live quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_citiesCities and airports coveredBRead-onlyIdempotentInspect
Cities and airports covered. Every city whose official taxi tariff is on file and every airport with ground transport facts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds that the result is a full enumeration ('every city…every airport'), implying no filtering or pagination, which is useful 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?
Two short sentences, front-loaded with the resource and then the qualifying scope. The opening phrase repeats the title verbatim, which is slightly redundant, but nothing else is wasted.
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 parameterless, read-only list tool with no output schema, the description conveys what the returned set contains (cities and airports with data on file). Good enough for an agent to call it correctly, though it could state whether the list is exhaustive or paginated.
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?
The tool takes zero parameters, so there are no parameter semantics to explain; the baseline for a parameterless tool is 4.
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 the resource (cities and airports) and defines scope precisely: 'every city whose official taxi tariff is on file' and 'every airport with ground transport facts.' An agent can tell this is a coverage inventory rather than a lookup, though it never explicitly names a sibling to disambiguate from get_airport or get_taxi_tariff.
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?
No when-to-use or when-not-to-use guidance. The description describes contents but never says to call this before querying a specific city, nor points at alternatives like get_taxi_tariff for per-city details. Usage must be inferred.
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.
8 tool updates
- First observed
best_time_to_ride - First observed
check_driver_licence - First observed
check_fare - First observed
check_fleet_file - First observed
estimate_fare - First observed
get_airport - First observed
get_taxi_tariff - First observed
list_cities
Related MCP Connectors
Is this flight price good right now? Verdicts from 90 days of observed fares on 500+ routes.
Is this flight price good? Buy-or-wait verdict from 90 days of real observed fares per route
Airport security wait times, forecasts, FAA delays, EES border queues and baggage stats.
Cheapest observed fare, 6-month low and best departure date for a city pair.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables verified, bookable hotel price checking with tax-inclusive totals, OTA tax status flags, and durable Booking.com fallback links for budget travel planning.MIT
- AlicenseNot gradedqualityDmaintenanceFixed London chauffeur prices for AI agents: Heathrow/Gatwick/Stansted/Luton and cruise-port transfers, hourly and full-day hire, private day trips, Heathrow VIP meet & greet, plus pre-filled booking links. Public remote endpoint, no API key.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to get fixed-price quotes and book London airport transfers, with flight validation and inter-agent communication via A2A protocol.-
- FlicenseNot gradedqualityBmaintenanceEnables finding the cheapest flight destinations from an airport as structured JSON, with bargain detection via typical price comparisons and booking links.-
Glama MCP Gateway
Add one secure layer between your agents and this server.