Skip to main content
Glama

cwsi.net Fare Classes & Mileage Calculators

Cathay Pacific Asia Miles and Status Points Calculator

calculate_cathay_pacific_miles
Read-onlyIdempotent

Estimate what a Cathay Pacific flight earns (miles and status points) from its distance in miles, booking class and fare type, using cwsi.net's calculator and the airline's published rules. Get the miles from calculate_flight_distance. For flights of 751 to 2,750 miles to or from Japan, Indonesia, Sri Lanka, Nepal, Bangladesh or India, set t2 to that country code (JP, ID, LK, NP, BD or IN); otherwise leave t2 out. Unofficial.

Input Schema

NameRequiredDescriptionDefault
spNoStatus Points you have so far (optional). Used only for the progress toward the next tier.
t2NoJapan, Indonesia, Sri Lanka, Nepal, Bangladesh or India at either end?. none = None of these; JP = Japan; ID = Indonesia; LK = Sri Lanka; NP = Nepal; BD = Bangladesh; IN = India. Short-haul flights (751 to 2,750 miles) to or from these countries are Type 2 and earn more. Pick the country when either end of the flight is in one of them. Only applies to some choices of the other fields; ignored otherwise.none
clsNoBooking class. FA = F, A (First Flex); JC = J, C (Business Flex); DP = D, P (Business Essential); I = I (Business Light); WR = W, R (Premium Economy Flex); E = E (Premium Economy Essential); YBHK = Y, B, H, K (Economy); MLV = M, L, V (Economy); SNQO = S, N, Q, O (Economy).YBHK
fareNoEconomy fare type. L = Light; E = Essential; F = Flex. Economy classes are sold as Light, Essential or Flex, and each earns differently. Only applies to some choices of the other fields; ignored otherwise.
tripNoTrip. ow = One way (1 flight); rt = Round trip (2 flights).ow
milesNoFlight distance (miles). One flight (sector). Filled in from the airports above; you can also type it.
statusNoYour Cathay status. GR = Green; SV = Silver; GD = Gold; DM = Diamond.GR
creditToNoCredit the flights to a partner program instead of Cathay Pacific's own: american = American AAdvantage (creditStatus one of: AAdvantage member, AAdvantage Gold, AAdvantage Platinum, AAdvantage Platinum Pro, AAdvantage Executive Platinum); alaska = Atmos Rewards (creditStatus one of: Atmos Rewards member, Atmos Silver, Atmos Gold, Atmos Platinum, Atmos Titanium); ba-club = British Airways Club (creditStatus one of: Blue, Bronze, Silver, Gold). Earns by each flight's distance and the booking class at the program's published partner rates; leave creditTo out for the airline's own program. Give the booking class letter as creditClass. Give the flights as creditFlights (one entry per flight with its great-circle miles).
creditClassNoThe booking class letter on the ticket, for creditTo (required with creditTo). Ignored without creditTo.
creditStatusNoYour status in the creditTo program, by its name as listed under creditTo. Defaults to the base level. Ignored without creditTo.
creditFlightsNoThe flights for creditTo: one entry per one-way flight, in order, with its great-circle miles (calculate_flight_distance gives them) and optionally from/to airport codes. Defaults to segs when they carry miles.

Output Schema

NameRequiredDescriptionDefault
linkYes
notesYes
inputsYes
airlineYes
headlineYes
progressNo
breakdownYes
calculatorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / creditClass
      Added value: +{
      +  "description": "The booking class letter on the ticket, for creditTo (required with creditTo). Ignored without creditTo.",
      +  "pattern": "^[A-Za-z]$",
      +  "type": "string"
      +}
    • addedInput schema / properties / creditFlights
      Added value: +{
      +  "description": "The flights for creditTo: one entry per one-way flight, in order, with its great-circle miles (calculate_flight_distance gives them) and optionally from/to airport codes. Defaults to segs when they carry miles.",
      +  "items": {
      +    "properties": {
      +      "from": {
      +        "description": "The departure airport's code; labels the breakdown.",
      +        "pattern": "^[A-Za-z0-9]{3,4}$",
      +        "type": "string"
      +      },
      +      "miles": {
      +        "description": "Great-circle distance of this flight in miles.",
      +        "maximum": 12500,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "to": {
      +        "description": "The arrival airport's code; labels the breakdown.",
      +        "pattern": "^[A-Za-z0-9]{3,4}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "miles"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 8,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / creditStatus
      Added value: +{
      +  "description": "Your status in the creditTo program, by its name as listed under creditTo. Defaults to the base level. Ignored without creditTo.",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • addedInput schema / properties / creditTo
      Added value: +{
      +  "description": "Credit the flights to a partner program instead of Cathay Pacific's own: american = American AAdvantage (creditStatus one of: AAdvantage member, AAdvantage Gold, AAdvantage Platinum, AAdvantage Platinum Pro, AAdvantage Executive Platinum); alaska = Atmos Rewards (creditStatus one of: Atmos Rewards member, Atmos Silver, Atmos Gold, Atmos Platinum, Atmos Titanium); ba-club = British Airways Club (creditStatus one of: Blue, Bronze, Silver, Gold). Earns by each flight's distance and the booking class at the program's published partner rates; leave creditTo out for the airline's own program. Give the booking class letter as creditClass. Give the flights as creditFlights (one entry per flight with its great-circle miles).",
      +  "enum": [
      +    "american",
      +    "alaska",
      +    "ba-club"
      +  ],
      +  "type": "string"
      +}
  2. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare this a read-only, idempotent, non-destructive calculation. The description adds a meaningful transparency note beyond that: 'Unofficial,' flagging that the numbers come from a third-party calculator and airline rules rather than a guaranteed source. It adds no return format or rate-limit detail, but the output schema carries the result shape.

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?

Front-loaded with the purpose, then the prerequisite, then the one non-obvious conditional rule, then a caveat. Every sentence carries weight, though the t2 guidance partially duplicates the schema enum description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with an output schema and full schema coverage, the description supplies what structured fields don't: the cross-tool dependency on calculate_flight_distance, the special t2 case, and the 'Unofficial' caveat. Partner-credit mechanics live in the schema, so nothing critical is missing.

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%, so the schema already documents every parameter including the t2 country list and its 'ignored otherwise' behavior. The description restates the t2 rule with the distance threshold, which adds operational emphasis but little information beyond the schema itself; baseline 3 is appropriate.

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: 'Estimate what a Cathay Pacific flight earns (miles and status points) from its distance in miles, booking class and fare type.' It also names its inputs at a high level and the data source (cwsi.net's calculator plus published rules), clearly separating it from the other airline calculator siblings.

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 an explicit prerequisite ('Get the miles from calculate_flight_distance') and a concrete conditional rule for t2 (751–2,750 mile flights to/from JP, ID, LK, NP, BD, IN). It does not state when-not to use this tool versus a competing program's calculator, but the airline-specific name makes that largely self-evident.

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