Skip to main content
Glama

Disruption rights

disruption_rights
Read-onlyIdempotent

List passenger rights for a disruption: first works out whether EU261/UK261 covers the route (as check_compensation does), then gives refund/re-routing, care by band, 5-hour refund, notice-based cancellation compensation rules, denied boarding and escalation. If no scheme applies, gives general guidance only. Does not compute money owed; use check_compensation.

Input Schema

NameRequiredDescriptionDefault
arrivalYesArrival airport 3-letter IATA code, case-insensitive, e.g. FCO
departureYesDeparture airport 3-letter IATA code, case-insensitive, e.g. CDG
disruptedYesWhat happened: delayed, cancelled, or denied_boarding (bumped/overbooked).
notice_daysNoFor cancellations: days of notice given, e.g. 3. 14+ days means no fixed compensation (refund/re-routing and care still apply); under 14 sets the re-routing conditions.
carrier_countryNoOperating airline's 2-letter country code, e.g. DE. Needed for flights arriving into the EU/UK from outside.
arrival_delay_hoursNoFor delays: hours late, e.g. 5. At 5h+ the refund option is added. Default 0.

Output Schema

NameRequiredDescriptionDefault
bandYesDistance band, or 'unknown' if an airport is not recognised.
schemeNoScheme covering the route; none = EU261/UK261 do not apply (general guidance only); unknown = airport not recognised.
disruptedYesDisruption type that was assessed.
disclaimerYesNot-legal-advice disclaimer to show the user.
distance_kmYesRoute distance in km, or null if an airport is unknown.
complaint_pathYesEscalation steps from airline to regulator to court.
entitled_rightsYesRights that apply under the scheme, or general guidance when no scheme applies, one per entry.
jurisdiction_reasonNoWhy that scheme does or does not apply.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / carrier_country
      Added value: +{
      +  "description": "Operating airline's 2-letter country code, e.g. DE. Needed for flights arriving into the EU/UK from outside.",
      +  "type": "string"
      +}
    • changedInput schema / properties / notice_days / description
      Previous value: -"For cancellations: days of notice given. Accepted for context; does not change the listed rights."New value: +"For cancellations: days of notice given, e.g. 3. 14+ days means no fixed compensation (refund/re-routing and care still apply); under 14 sets the re-routing conditions."
    • changedOutput schema / properties / entitled_rights / description
      Previous value: -"Rights that apply, one per entry."New value: +"Rights that apply under the scheme, or general guidance when no scheme applies, one per entry."
    • addedOutput schema / properties / jurisdiction_reason
      Added value: +{
      +  "description": "Why that scheme does or does not apply.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / scheme
      Added value: +{
      +  "description": "Scheme covering the route; none = EU261/UK261 do not apply (general guidance only); unknown = airport not recognised.",
      +  "enum": [
      +    "EU261",
      +    "UK261",
      +    "none",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
  2. Changed8 schema fields changed
    • changedInput schema / properties / arrival / description
      Previous value: -"3-letter IATA code of arrival airport"New value: +"Arrival airport 3-letter IATA code, case-insensitive, e.g. FCO"
    • changedInput schema / properties / arrival_delay_hours / description
      Previous value: -"arrival delay in hours, as a number"New value: +"For delays: hours late, e.g. 5. At 5h+ the refund option is added. Default 0."
    • addedInput schema / properties / arrival_delay_hours / minimum
      Added value: +0
    • changedInput schema / properties / departure / description
      Previous value: -"3-letter IATA code of departure airport"New value: +"Departure airport 3-letter IATA code, case-insensitive, e.g. CDG"
    • changedInput schema / properties / disrupted / description
      Previous value: -"disruption type: cancellation, delay, missed connection"New value: +"What happened: delayed, cancelled, or denied_boarding (bumped/overbooked)."
    • changedInput schema / properties / notice_days / description
      Previous value: -"number of days notice given for disruption, as a number"New value: +"For cancellations: days of notice given. Accepted for context; does not change the listed rights."
    • addedInput schema / properties / notice_days / minimum
      Added value: +0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "band": {
      +      "description": "Distance band, or 'unknown' if an airport is not recognised.",
      +      "enum": [
      +        "short",
      +        "medium",
      +        "long",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "complaint_path": {
      +      "description": "Escalation steps from airline to regulator to court.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "disclaimer": {
      +      "description": "Not-legal-advice disclaimer to show the user.",
      +      "type": "string"
      +    },
      +    "disrupted": {
      +      "description": "Disruption type that was assessed.",
      +      "type": "string"
      +    },
      +    "distance_km": {
      +      "description": "Route distance in km, or null if an airport is unknown.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "entitled_rights": {
      +      "description": "Rights that apply, one per entry.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "disrupted",
      +    "distance_km",
      +    "band",
      +    "entitled_rights",
      +    "complaint_path",
      +    "disclaimer"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "rights": {
      -      "description": "Object containing the rights for the disrupted flight",
      -      "properties": {
      -        "care": {
      -          "description": "Details about care provided during disruption",
      -          "properties": {
      -            "accommodation": {
      -              "description": "Indicates if accommodation is provided",
      -              "type": "boolean"
      -            },
      -            "meals": {
      -              "description": "Indicates if meals are provided",
      -              "type": "boolean"
      -            },
      -            "transport": {
      -              "description": "Indicates if transport is provided",
      -              "type": "boolean"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "compensation": {
      -          "description": "Details about compensation for the disruption",
      -          "properties": {
      -            "amount": {
      -              "description": "The amount of compensation in the local currency",
      -              "type": "number"
      -            },
      -            "currency": {
      -              "description": "The currency of the compensation amount",
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "escalation_path": {
      -          "description": "The path to escalate the disruption issue",
      -          "type": "string"
      -        },
      -        "re_routing": {
      -          "description": "Indicates if re-routing is available",
      -          "type": "boolean"
      -        },
      -        "refund": {
      -          "description": "Indicates if a refund is available",
      -          "type": "boolean"
      -        }
      -      },
      -      "type": "object"
      -    }
      -  },
      -  "required": [
      -    "rights"
      -  ],
      -  "type": "object"
      -}New value: +null
  4. Changed5 schema fields changed
    • addedInput schema / properties / arrival / description
      Added value: +"3-letter IATA code of arrival airport"
    • addedInput schema / properties / arrival_delay_hours / description
      Added value: +"arrival delay in hours, as a number"
    • addedInput schema / properties / departure / description
      Added value: +"3-letter IATA code of departure airport"
    • addedInput schema / properties / disrupted / description
      Added value: +"disruption type: cancellation, delay, missed connection"
    • addedInput schema / properties / notice_days / description
      Added value: +"number of days notice given for disruption, as a number"
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "rights": {
      +      "description": "Object containing the rights for the disrupted flight",
      +      "properties": {
      +        "care": {
      +          "description": "Details about care provided during disruption",
      +          "properties": {
      +            "accommodation": {
      +              "description": "Indicates if accommodation is provided",
      +              "type": "boolean"
      +            },
      +            "meals": {
      +              "description": "Indicates if meals are provided",
      +              "type": "boolean"
      +            },
      +            "transport": {
      +              "description": "Indicates if transport is provided",
      +              "type": "boolean"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "compensation": {
      +          "description": "Details about compensation for the disruption",
      +          "properties": {
      +            "amount": {
      +              "description": "The amount of compensation in the local currency",
      +              "type": "number"
      +            },
      +            "currency": {
      +              "description": "The currency of the compensation amount",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "escalation_path": {
      +          "description": "The path to escalate the disruption issue",
      +          "type": "string"
      +        },
      +        "re_routing": {
      +          "description": "Indicates if re-routing is available",
      +          "type": "boolean"
      +        },
      +        "refund": {
      +          "description": "Indicates if a refund is available",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "rights"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

A4.4/5.0
Behavior4/5

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 process context: it runs an EU261/UK261 eligibility check internally (mirroring check_compensation), then layers several rule bands, and specifies the no-scheme fallback. It doesn't discuss latency or rate limits, but no behavioral disclosure is contradicted and several non-obvious behaviors are disclosed.

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?

Three dense sentences, front-loaded with the verb and scope, then specific rule bands, then the exclusion and the sibling handoff. Every clause earns its place, though the comma-laden enumeration of rule bands is slightly list-like rather than prose-failure.

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 6-param read-only advisory tool with an output schema, the description covers purpose, internal eligibility procedure, enumerated output areas, fallback behavior, and the sibling relationship. An agent can select and invoke it correctly without opening the schema; return format is delegated to the output schema as expected.

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 explains departure/arrival IATA codes, the disrupted enum, notice_days semantics (14+ vs under 14), carrier_country, and the 5h delay threshold. The description adds marginal routing context by tying notices and 5-hour rules to rights rather than money, but the detailed parameter meaning is already in the schema. 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+resource ('List passenger rights for a disruption') and then enumerates exactly what that output will contain (refund/re-routing, care by band, 5-hour refund, cancellation compensation rules, denied boarding, escalation). It explicitly distinguishes itself from sibling check_compensation by naming the sibling twice and clarifying that it does not compute money.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative tool ('use check_compensation') and gives both a when-to-use here (entitlements/rights, not money) and a when-not ('Does not compute money owed'). It also states the fallback behavior ('If no scheme applies, gives general guidance only'), leaving nothing about route selection to inference.

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