Skip to main content
Glama

Trip cost between two airports

jt_trip_cost
Read-onlyIdempotent

REFERENCE operating cost of a trip origin to destination (ICAO codes or city names) for a model with an audited fuel burn: about 94% of the Brazilian executive air-taxi (RBAC 135) fleet, from piston twins to offshore heavy helicopters, plus Praetor 600, Legacy 500/650, Challenger 350, G450, G550 and the five comparator profiles (jt_model_specs.tripCostAvailable says if a model qualifies). Returns block time, reach (verdict nonstop, marginal or needs_stop against the catalog range, using the NBAA IFR range profile when the catalog has one, otherwise 85% of max range, with route = great circle x 1.08) and referenceCost in USD and BRL: variable (fuel, reserves, handling) and full at 200 h/year, from the SAME canonical cost engine as jt_model_specs; one-way trips also get withEmptyReturn. charter is always null: this is NOT a charter price (real quotes add positioning, minimum hours, crew overnight, airport fees and operator margin). Piston models and offshore heavy helicopters come with scope (piston, offshore or executive) and scopeNote, because they are not the typical executive charter segment; a model not audited returns error trip_cost_unavailable with auditedSiblings from the same family. Origin equal to destination returns error degenerate_route.

Input Schema

NameRequiredDescriptionDefault
slugYesModelo: slug de catálogo, família, alias do comparador ou nome (praetor-600, gulfstream-g450, king air 350).
destIcaoYesDestino: ICAO ou cidade/nome.
roundTripNotrue = ida e volta (default); false = só ida (a resposta traz também o custo com retorno vazio).
originIcaoYesOrigem: ICAO (SBSP) ou cidade/nome (Congonhas, São Paulo).

Output Schema

NameRequiredDescriptionDefault
codeNoMachine-readable error code (INTERNAL, TIMEOUT, INVALID_ARGUMENT, NOT_FOUND, TOOL_FAILED, ACCOUNT_KEY_REQUIRED).
_metaNo
errorNo
foundNo
gatedNo
requestIdNo
retryableNo
quota_exceededNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / roundTrip / description
      Previous value: -"true = ida e volta (default); false = só ida."New value: +"true = ida e volta (default); false = só ida (a resposta traz também o custo com retorno vazio)."
    • changedInput schema / properties / slug / description
      Previous value: -"Modelo com calculadora completa (mesmos aliases do compute_tco)."New value: +"Modelo: slug de catálogo, família, alias do comparador ou nome (praetor-600, gulfstream-g450, king air 350)."
  2. Changed1 schema field changed
    • changedOutput schema / properties / _meta / required
      Previous value: -[
      -  "tool",
      -  "tier",
      -  "source",
      -  "asOf",
      -  "gated",
      -  "via"
      -]New value: +[
      +  "tool",
      +  "source",
      +  "asOf",
      +  "gated",
      +  "via"
      +]
  3. Changed12 schema fields changed
    • changedInput schema / properties / slug / description
      Previous value: -"Slug de modelo com calculadora completa: embraer-phenom-100, embraer-phenom-300, beechcraft-hawker-400xp, leonardo-aw109 ou airbus-h125."New value: +"Modelo com calculadora completa (mesmos aliases do compute_tco)."
    • removedInput schema / properties / slug / enum
      Removed value: -[
      -  "embraer-phenom-100",
      -  "embraer-phenom-300",
      -  "beechcraft-hawker-400xp",
      -  "leonardo-aw109",
      -  "airbus-h125"
      -]
    • addedInput schema / properties / slug / maxLength
      Added value: +80
    • addedInput schema / properties / slug / minLength
      Added value: +2
    • addedOutput schema / properties / _meta / properties / asOf / description
      Added value: +"Alias of sourceUpdatedAt (kept for compatibility)."
    • addedOutput schema / properties / _meta / properties / generatedAt
      Added value: +{
      +  "description": "When this response was produced (ISO 8601).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / _meta / properties / observedAt
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Last event actually observed in the data returned (last flight, last arrival, last listing sighting)."
      +}
    • addedOutput schema / properties / _meta / properties / sourceUpdatedAt
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Last sync of the underlying source (RAB snapshot, registry import, listing scan). Never in the future."
      +}
    • addedOutput schema / properties / _meta / properties / validUntil
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Expiry of the fact returned, when it has one (CVA validity, period end)."
      +}
    • addedOutput schema / properties / code
      Added value: +{
      +  "description": "Machine-readable error code (INTERNAL, TIMEOUT, INVALID_ARGUMENT, NOT_FOUND, TOOL_FAILED, ACCOUNT_KEY_REQUIRED).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / requestId
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / retryable
      Added value: +{
      +  "type": "boolean"
      +}
  4. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it discloses the two named error outcomes (trip_cost_unavailable with auditedSiblings, degenerate_route), the always-null charter field, both currencies, the cost components included, and the range methodology (NBAA IFR profile vs 85% of max, route = great circle x 1.08). That is exactly the behavioral context an agent needs before promising a result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and scope are front-loaded, and nearly every clause carries useful information, but it is delivered as one semicolon-chained block that is hard to parse on first read. Some points are restated (scope for piston/offshore models, the charter caveat) rather than organized into distinct sentences.

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?

For a read-only reference tool with an output schema, this covers everything an agent needs: eligibility rules, error paths, edge cases, currency, and what the returned cost does and does not include. Even details the output schema could have carried are resolved in prose without ambiguity.

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%, so the baseline is 3, but the description adds real meaning: slug must resolve to an audited model or the call errors out, and origin/destination accept ICAO or city names with a degenerate_route guard when they match. The roundTrip explanation largely restates the schema's own withEmptyReturn note, so it lands just above baseline rather than at the top.

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 ('REFERENCE operating cost of a trip origin to destination') and immediately bounds the scope to models with an audited fuel burn, naming the catalog family and comparators. It also draws the key line against a sibling concept by declaring 'this is NOT a charter price', so an agent can distinguish it from a quote tool without opening the 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?

Gives strong usage context: reference/operating cost only, with an explicit exclusion ('charter is always null... real quotes add positioning, minimum hours...') and a pointer to jt_model_specs.tripCostAvailable for eligibility pre-checks. What it lacks is a direct 'use jt_compute_tco instead when you need X' routing statement against the sibling tools.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources