FlightFix
Server Details
EU261/UK261 flight compensation check, rights and claim letters. Free.
- Status
- Healthy
- Uptime
- 100.0% over 25 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Server Listing
- Sahadeva
TDQS
Scored across 5 tools
Each tool has a distinct primary function (assess a flight, deadlines, general reference, rights detail, letter drafting) and the descriptions include explicit 'Do NOT use... use X' cross-references that guide selection well. There is residual overlap: both check_compensation and disruption_rights determine whether EU261/UK261 covers the route and cover care rights, which could cause occasional misselection.
All names use consistent snake_case, which keeps the set readable. However, the pattern mixes verb_noun (check_compensation, generate_claim_letter) with noun_noun (claim_timeline, compensation_table, disruption_rights), a minor deviation from a fully predictable convention.
Five tools is well-scoped for an EU261/UK261 guidance domain, and each one earns its place by covering a distinct step (eligibility, deadlines, reference, rights, claim letter). No redundancy or padding.
The surface covers the core self-service lifecycle: assess compensation, check time limits, view rules, understand rights, and generate a claim letter. Minor gap in not covering post-submission follow-up (e.g., escalation/appeal tracking), though escalation notice is embedded in the letter output.
Available Tools
5 toolscheck_compensationCheck compensationARead-onlyIdempotentInspect
Assess one disrupted flight under EU261/UK261: works out which scheme applies (or none), route distance and band, whether fixed compensation is due and how much (EUR/GBP), care rights, the stated reason's effect, and next steps. Use for 'what am I owed for my flight?'. Do NOT use to write the claim; use generate_claim_letter.
| Name | Required | Description | Default |
|---|---|---|---|
| arrival | Yes | Final arrival airport 3-letter IATA code, case-insensitive, e.g. JFK | |
| rerouted | No | For cancellations: true if the airline re-routed you on another flight. Default false. | |
| departure | Yes | Departure airport 3-letter IATA code, case-insensitive, e.g. LHR | |
| disrupted | Yes | What happened: delayed (arrived late) or cancelled. | |
| distance_km | No | Override the computed great-circle distance in km, e.g. 5540. Both airports must still be known IATA codes. | |
| notice_days | No | For cancellations: days of notice the airline gave before departure, e.g. 3. 14+ days means no fixed compensation. Default 0. | |
| carrier_country | No | Operating airline's 2-letter country code, e.g. DE for Lufthansa, US for United. Needed for flights arriving into the EU/UK from outside. | |
| reason_category | No | Cause the airline gave: weather, atc, security, political, strike_atc (third-party strike) are exempt; technical, strike_airline, other are not; crew is case-by-case. Default unknown. | |
| arrival_delay_hours | No | Hours late at the final destination, e.g. 4.5. Drives delay compensation (>= 3h) and care. Default 0. | |
| reroute_arrival_delay_hours | No | For re-routed cancellations: hours the replacement arrived after the original schedule, e.g. 2. Default 0. |
Output Schema
| Name | Required | Description |
|---|---|---|
| band | Yes | Distance band: short <=1500 km, medium <=3500 km, long beyond. |
| route | Yes | Resolved airports and countries. |
| reason | Yes | Assessment of the disruption cause. |
| scheme | Yes | Passenger-rights scheme that applies to this route. |
| disclaimer | Yes | Not-legal-advice disclaimer to show the user. |
| next_steps | Yes | Recommended next actions in order. |
| care_rights | Yes | Duty-of-care entitlements (meals, hotel, calls). |
| distance_km | Yes | Route distance in km used for the band. |
| compensation | Yes | Fixed-compensation outcome. |
| jurisdiction_reason | Yes | Why that scheme does or does not apply. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered and the bar is low. The description earns credit by disclosing the decision content — including the notable 'or none' outcome (no scheme applies), the reason-category effect, and that it emits care rights and next steps. It does not mention jurisdiction/auth prerequisites or performance characteristics, but for a deterministic computation tool that is acceptable.
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 verb and scope, then the output enumeration, then the usage trigger and the exclusion — a strict value ordering. The long output list is dense but each item is a distinct deliverable an agent needs, so nothing reads as 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?
An output schema exists, so the description is not obliged to explain returns, yet it still summarizes them usefully for selection. Ten parameters are fully covered by the schema, three are required, the tool is a safe read, and the sibling routing is stated. Nothing an agent needs to call this correctly 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?
Schema description coverage is 100% and the schema itself is unusually well annotated (enum meanings, exemptions per reason category, IATA code format, defaults), so the schema carries the entire parameter burden. The description alludes to distance/band and reason effects but adds no syntax, format or default detail beyond the schema. Baseline 3 is the correct score when structured fields do the heavy lifting.
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 ('assess') plus a tightly bounded resource ('one disrupted flight under EU261/UK261'), and it enumerates the concrete outputs it derives — applicable scheme, distance band, fixed compensation and currency, care rights, reason effect, next steps. It also differentiates itself from the claim-writing sibling by name, so an agent can place it among claim_timeline, compensation_table and disruption_rights without opening a schema.
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?
Gives an explicit trigger phrase ('what am I owed for my flight?'), an explicit prohibition ('Do NOT use to write the claim') and names the correct alternative (generate_claim_letter). That is the when / when-not / alternative triad in two sentences. The only unstated overlap is against compensation_table and disruption_rights, which is a minor omission given the core routing decision is settled.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_timelineClaim timelineARead-onlyIdempotentInspect
Give claim-deadline guidance for a flight under EU261 or UK261: a recommended act-by date (flight date + 12 months), the legal time-limit guidance, and an evidence checklist. Use for 'how long do I have to claim?'. Do NOT use to check eligibility; use check_compensation.
| Name | Required | Description | Default |
|---|---|---|---|
| scheme | Yes | EU261 (EU/EEA departure or EU carrier) or UK261 (UK departure or UK carrier); check_compensation tells you which. | |
| flight_date | Yes | Date of the disrupted flight, YYYY-MM-DD, e.g. 2026-09-01 |
Output Schema
| Name | Required | Description |
|---|---|---|
| scheme | Yes | Scheme the guidance is for. |
| disclaimer | Yes | Not-legal-advice disclaimer to show the user. |
| flight_date | Yes | Flight date as given, YYYY-MM-DD. |
| window_guidance | Yes | Legal time-limit guidance for the scheme. |
| evidence_checklist | Yes | Evidence to gather, one per entry. |
| recommended_action_by | Yes | Suggested claim-by date (flight + 12 months), YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-destructive, closed-world operation, so the safety profile is covered. The description adds real behavioral context beyond that: the act-by date is derived as flight date + 12 months and the response includes a legal time-limit explanation and evidence checklist. It does not mention jurisdiction caveats or rate limits, but for a pure computation tool the remaining burden is light.
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, zero filler, front-loaded with the purpose and outputs before the routing constraint. Every clause 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?
An output schema exists so return values need not be explained, yet the description still previews the three deliverables an agent should expect. Combined with the explicit sibling routing rule and full schema coverage, nothing needed to invoke this tool correctly 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?
Schema description coverage is 100% and both required parameters are richly documented (scheme enum with EU/EEA vs UK departure logic, flight_date with pattern and example). The description adds no syntax or format detail beyond the schema, so the baseline 3 is appropriate when the schema does the heavy lifting.
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 a specific verb-resource pair (give claim-deadline guidance) and enumerates the concrete outputs: a recommended act-by date, legal time-limit guidance, and an evidence checklist. It explicitly distinguishes itself from the sibling check_compensation, so an agent can route correctly without opening either schema.
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?
It states the triggering user intent verbatim ('how long do I have to claim?') and gives an explicit exclusion plus the alternative to use instead ('Do NOT use to check eligibility; use check_compensation'). This is when-to-use, when-not-to-use, and the named alternative all in one line.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compensation_tableCompensation tableARead-onlyIdempotentInspect
Return the general EU261/UK261 reference: compensation amounts per distance band (EUR and GBP), when care starts, the main eligibility rules and claim time limits. Use when the user asks how the rules work or what the amounts are. Do NOT use to assess a specific flight; use check_compensation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| rules | Yes | Compensation amounts per distance band. |
| disclaimer | Yes | Not-legal-advice disclaimer to show the user. |
| claim_windows | Yes | Time limits for filing claims (EU and UK). |
| eligibility_summary | Yes | Key eligibility rules, one per entry. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds that this is a static, non-flight-specific reference lookup with no per-flight input, which is modest added context, but the enumerated content is largely restated by the output schema. No rate limits or caching behavior disclosed, so a 3 is appropriate.
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, each earning its place: what is returned, when to use it, and when not to. The scope statement is front-loaded ahead of the routing guidance, and there is no 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?
An output schema exists, so the description need not explain return values, and the routing versus check_compensation is fully specified. For a zero-parameter static reference tool, nothing an agent needs to invoke it correctly 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?
The tool takes zero parameters, so there is no parameter semantics to explain; the baseline for a 0-param tool is 4. The description's implication that no per-flight input is required is consistent with the empty 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?
States a specific verb (Return) and resource (the EU261/UK261 reference table), and enumerates the exact content: amounts per distance band in EUR and GBP, care start, eligibility rules, and claim time limits. It explicitly separates itself from the sibling check_compensation, so an agent can route without opening either schema.
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?
Gives an explicit when-to-use trigger ("the user asks how the rules work or what the amounts are") plus an explicit when-not ("Do NOT use to assess a specific flight") with the named alternative, check_compensation. This is the textbook positive/negative/alternative pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disruption_rightsDisruption rightsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| arrival | Yes | Arrival airport 3-letter IATA code, case-insensitive, e.g. FCO | |
| departure | Yes | Departure airport 3-letter IATA code, case-insensitive, e.g. CDG | |
| disrupted | Yes | What happened: delayed, cancelled, or denied_boarding (bumped/overbooked). | |
| notice_days | No | 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. | |
| carrier_country | No | Operating airline's 2-letter country code, e.g. DE. Needed for flights arriving into the EU/UK from outside. | |
| arrival_delay_hours | No | For delays: hours late, e.g. 5. At 5h+ the refund option is added. Default 0. |
Output Schema
| Name | Required | Description |
|---|---|---|
| band | Yes | Distance band, or 'unknown' if an airport is not recognised. |
| scheme | No | Scheme covering the route; none = EU261/UK261 do not apply (general guidance only); unknown = airport not recognised. |
| disrupted | Yes | Disruption type that was assessed. |
| disclaimer | Yes | Not-legal-advice disclaimer to show the user. |
| distance_km | Yes | Route distance in km, or null if an airport is unknown. |
| complaint_path | Yes | Escalation steps from airline to regulator to court. |
| entitled_rights | Yes | Rights that apply under the scheme, or general guidance when no scheme applies, one per entry. |
| jurisdiction_reason | No | Why that scheme does or does not apply. |
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 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.
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.
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.
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.
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.
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.
generate_claim_letterGenerate claim letterARead-onlyIdempotentInspect
Draft a formal EU261/UK261 compensation claim letter (subject, legal basis, amount, 14-day payment request, escalation notice) for the passenger to send themselves, plus sending tips. Nothing is sent. Use after check_compensation and pass its amount. Do NOT use to check eligibility; use check_compensation.
| Name | Required | Description | Default |
|---|---|---|---|
| scheme | No | Legal basis. Default: UK261 if departing the UK, else EU261 (without claimed_amount, worked out from the route; errors if neither applies). | |
| arrival | Yes | Arrival airport 3-letter IATA code, case-insensitive, e.g. JFK | |
| currency | No | Currency of the claim. Default GBP for UK261, EUR for EU261. | |
| departure | Yes | Departure airport 3-letter IATA code, case-insensitive, e.g. LHR | |
| flight_date | Yes | Scheduled flight date, YYYY-MM-DD, e.g. 2026-09-01 | |
| airline_name | Yes | Operating airline, e.g. "British Airways" | |
| flight_number | Yes | Flight number, e.g. BA117 | |
| claimed_amount | No | Amount claimed, e.g. 600. If omitted, computed from the route like check_compensation (EUR 250/400/600 or GBP 220/350/520 by distance); required if an airport is unknown. | |
| passenger_name | Yes | Passenger's full name as on the booking, e.g. "Jane Smith" | |
| incident_summary | No | One sentence on what happened, e.g. "the flight arrived 4 hours late due to a technical fault". Default generic wording. | |
| booking_reference | No | Booking/PNR reference, e.g. ABC123. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| letter | Yes | Full letter text, ready to copy and send. |
| scheme | Yes | Legal basis used in the letter. |
| subject | Yes | Suggested email or letter subject line. |
| disclaimer | Yes | Not-legal-advice disclaimer to show the user. |
| sending_tips | Yes | Practical tips for sending and follow-up. |
| claimed_amount | Yes | Amount and currency claimed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description still adds value beyond them by clarifying 'Nothing is sent' — the letter is drafted for the passenger to send — plus that sending tips are included, which annotations cannot express.
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 tight sentences, front-loaded with what is produced, followed by the sequencing rule and the exclusion. No filler and nothing redundant with the schema.
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 an 11-parameter tool whose schema covers every parameter and which has an output schema, the description supplies the missing operational context: workflow ordering, the no-send behavior, and the sibling it must not replace. Nothing needed to invoke it correctly is absent.
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?
With schema coverage at 100%, baseline is 3, but the description adds cross-tool semantics: it tells the agent to pass check_compensation's amount into this call, linking the required claimed_amount to a prior step. That is genuinely new information not present in 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?
States a specific verb (draft) and resource (EU261/UK261 compensation claim letter) and enumerates the letter's contents (subject, legal basis, amount, 14-day payment request, escalation notice). It explicitly contrasts itself with the sibling check_compensation, so an agent can distinguish it without opening either schema.
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?
Gives ordered usage ('Use after check_compensation and pass its amount'), an explicit negative case ('Do NOT use to check eligibility'), and names the correct alternative ('use check_compensation'). This is the full when/when-not/alternative pattern.
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
- Changed
check_compensation2 fields changed- changed
Output schema / properties / care_rights / properties / due / descriptionPrevious value: -"Whether care is owed for this disruption."New value: +"Whether EU261/UK261 care is owed for this disruption (always false when no scheme applies)." - changed
Output schema / properties / care_rights / properties / note / descriptionPrevious value: -"When care starts for this band."New value: +"When care starts for this band, or why no scheme care applies."
- Changed
disruption_rights5 fields changed- added
Input schema / properties / carrier_countryAdded value: +{ + "description": "Operating airline's 2-letter country code, e.g. DE. Needed for flights arriving into the EU/UK from outside.", + "type": "string" +} - changed
Input schema / properties / notice_days / descriptionPrevious 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." - changed
Output schema / properties / entitled_rights / descriptionPrevious 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." - added
Output schema / properties / jurisdiction_reasonAdded value: +{ + "description": "Why that scheme does or does not apply.", + "type": "string" +} - added
Output schema / properties / schemeAdded 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" +}
- Changed
generate_claim_letter2 fields changed- changed
Input schema / properties / claimed_amount / descriptionPrevious value: -"Amount claimed, normally check_compensation's amount, e.g. 600. Default 250."New value: +"Amount claimed, e.g. 600. If omitted, computed from the route like check_compensation (EUR 250/400/600 or GBP 220/350/520 by distance); required if an airport is unknown." - changed
Input schema / properties / scheme / descriptionPrevious value: -"Legal basis. Default UK261 if departing the UK, else EU261."New value: +"Legal basis. Default: UK261 if departing the UK, else EU261 (without claimed_amount, worked out from the route; errors if neither applies)."
5 tool updates
- Changed
check_compensation15 fields changed- changed
Input schema / properties / arrival / descriptionPrevious value: -"Arrival airport IATA code, e.g. JFK"New value: +"Final arrival airport 3-letter IATA code, case-insensitive, e.g. JFK" - changed
Input schema / properties / arrival_delay_hours / descriptionPrevious value: -"Arrival delay in hours, as a number"New value: +"Hours late at the final destination, e.g. 4.5. Drives delay compensation (>= 3h) and care. Default 0." - added
Input schema / properties / arrival_delay_hours / minimumAdded value: +0 - changed
Input schema / properties / carrier_country / descriptionPrevious value: -"Carrier's country code, e.g. DE"New value: +"Operating airline's 2-letter country code, e.g. DE for Lufthansa, US for United. Needed for flights arriving into the EU/UK from outside." - changed
Input schema / properties / departure / descriptionPrevious value: -"Departure airport IATA code, e.g. LHR"New value: +"Departure airport 3-letter IATA code, case-insensitive, e.g. LHR" - changed
Input schema / properties / disrupted / descriptionPrevious value: -"Flight identifier for the disrupted flight"New value: +"What happened: delayed (arrived late) or cancelled." - changed
Input schema / properties / distance_km / descriptionPrevious value: -"Flight distance in kilometers, as a number"New value: +"Override the computed great-circle distance in km, e.g. 5540. Both airports must still be known IATA codes." - added
Input schema / properties / distance_km / exclusiveMinimumAdded value: +0 - changed
Input schema / properties / notice_days / descriptionPrevious value: -"Number of days notice given for the disruption"New value: +"For cancellations: days of notice the airline gave before departure, e.g. 3. 14+ days means no fixed compensation. Default 0." - added
Input schema / properties / notice_days / minimumAdded value: +0 - changed
Input schema / properties / reason_category / descriptionPrevious value: -"Category of disruption reason, e.g. technical, weather"New value: +"Cause the airline gave: weather, atc, security, political, strike_atc (third-party strike) are exempt; technical, strike_airline, other are not; crew is case-by-case. Default unknown." - changed
Input schema / properties / reroute_arrival_delay_hours / descriptionPrevious value: -"Arrival delay in hours for the rerouted flight, as a number"New value: +"For re-routed cancellations: hours the replacement arrived after the original schedule, e.g. 2. Default 0." - added
Input schema / properties / reroute_arrival_delay_hours / minimumAdded value: +0 - changed
Input schema / properties / rerouted / descriptionPrevious value: -"True if the flight was rerouted, false otherwise"New value: +"For cancellations: true if the airline re-routed you on another flight. Default false." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "band": { + "description": "Distance band: short <=1500 km, medium <=3500 km, long beyond.", + "enum": [ + "short", + "medium", + "long" + ], + "type": "string" + }, + "care_rights": { + "description": "Duty-of-care entitlements (meals, hotel, calls).", + "properties": { + "due": { + "description": "Whether care is owed for this disruption.", + "type": "boolean" + }, + "items": { + "description": "Care items owed (empty when not due).", + "items": { + "type": "string" + }, + "type": "array" + }, + "note": { + "description": "When care starts for this band.", + "type": "string" + } + }, + "required": [ + "due", + "items", + "note" + ], + "type": "object" + }, + "compensation": { + "description": "Fixed-compensation outcome.", + "properties": { + "amount": { + "description": "Amount due, or null when none.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "description": "EUR for EU261, GBP for UK261, null when no scheme.", + "enum": [ + "EUR", + "GBP", + null + ], + "type": [ + "string", + "null" + ] + }, + "eligible": { + "anyOf": [ + { + "type": "boolean" + }, + { + "enum": [ + "possibly" + ], + "type": "string" + } + ], + "description": "true, false, or 'possibly' when the reason is unknown or crew-related." + }, + "note": { + "description": "Explanation of the outcome.", + "type": "string" + } + }, + "required": [ + "eligible", + "amount", + "currency", + "note" + ], + "type": "object" + }, + "disclaimer": { + "description": "Not-legal-advice disclaimer to show the user.", + "type": "string" + }, + "distance_km": { + "description": "Route distance in km used for the band.", + "type": "number" + }, + "jurisdiction_reason": { + "description": "Why that scheme does or does not apply.", + "type": "string" + }, + "next_steps": { + "description": "Recommended next actions in order.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reason": { + "description": "Assessment of the disruption cause.", + "properties": { + "category": { + "description": "Reason category assessed.", + "type": "string" + }, + "exempt": { + "anyOf": [ + { + "type": "boolean" + }, + { + "enum": [ + "possibly", + "unknown" + ], + "type": "string" + } + ], + "description": "Whether it exempts the airline: true, false, 'possibly' or 'unknown'." + }, + "note": { + "description": "Explanation with case-law pointers.", + "type": "string" + } + }, + "required": [ + "category", + "exempt", + "note" + ], + "type": "object" + }, + "route": { + "description": "Resolved airports and countries.", + "properties": { + "arrival": { + "description": "Arrival as 'IATA (City, Country)'.", + "type": "string" + }, + "arrival_country": { + "description": "Arrival ISO country code.", + "type": "string" + }, + "departure": { + "description": "Departure as 'IATA (City, Country)'.", + "type": "string" + }, + "departure_country": { + "description": "Departure ISO country code.", + "type": "string" + } + }, + "required": [ + "departure", + "arrival" + ], + "type": "object" + }, + "scheme": { + "description": "Passenger-rights scheme that applies to this route.", + "enum": [ + "EU261", + "UK261", + "none" + ], + "type": "string" + } + }, + "required": [ + "scheme", + "jurisdiction_reason", + "route", + "distance_km", + "band", + "compensation", + "care_rights", + "reason", + "next_steps", + "disclaimer" + ], + "type": "object" +}
- Changed
claim_timeline4 fields changed- changed
Input schema / properties / flight_date / descriptionPrevious value: -"Flight date YYYY-MM-DD"New value: +"Date of the disrupted flight, YYYY-MM-DD, e.g. 2026-09-01" - added
Input schema / properties / flight_date / patternAdded value: +"^\\d{4}-\\d{2}-\\d{2}$" - changed
Input schema / properties / scheme / descriptionPrevious value: -"EU261 or UK261, case-sensitive"New value: +"EU261 (EU/EEA departure or EU carrier) or UK261 (UK departure or UK carrier); check_compensation tells you which." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "disclaimer": { + "description": "Not-legal-advice disclaimer to show the user.", + "type": "string" + }, + "evidence_checklist": { + "description": "Evidence to gather, one per entry.", + "items": { + "type": "string" + }, + "type": "array" + }, + "flight_date": { + "description": "Flight date as given, YYYY-MM-DD.", + "type": "string" + }, + "recommended_action_by": { + "description": "Suggested claim-by date (flight + 12 months), YYYY-MM-DD.", + "type": "string" + }, + "scheme": { + "description": "Scheme the guidance is for.", + "type": "string" + }, + "window_guidance": { + "description": "Legal time-limit guidance for the scheme.", + "type": "string" + } + }, + "required": [ + "flight_date", + "scheme", + "recommended_action_by", + "window_guidance", + "evidence_checklist", + "disclaimer" + ], + "type": "object" +}
- Changed
compensation_table1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "claim_windows": { + "description": "Time limits for filing claims (EU and UK).", + "type": "string" + }, + "disclaimer": { + "description": "Not-legal-advice disclaimer to show the user.", + "type": "string" + }, + "eligibility_summary": { + "description": "Key eligibility rules, one per entry.", + "items": { + "type": "string" + }, + "type": "array" + }, + "rules": { + "description": "Compensation amounts per distance band.", + "items": { + "properties": { + "band": { + "description": "Band name: short, medium or long.", + "type": "string" + }, + "care_from": { + "description": "Delay at which care starts.", + "type": "string" + }, + "distance": { + "description": "Distance range in words.", + "type": "string" + }, + "eu_eur": { + "description": "EU261 amount in EUR.", + "type": "number" + }, + "uk_gbp": { + "description": "UK261 amount in GBP.", + "type": "number" + } + }, + "required": [ + "band", + "distance", + "eu_eur", + "uk_gbp", + "care_from" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "rules", + "eligibility_summary", + "claim_windows", + "disclaimer" + ], + "type": "object" +}
- Changed
disruption_rights8 fields changed- changed
Input schema / properties / arrival / descriptionPrevious value: -"3-letter IATA code of arrival airport"New value: +"Arrival airport 3-letter IATA code, case-insensitive, e.g. FCO" - changed
Input schema / properties / arrival_delay_hours / descriptionPrevious 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." - added
Input schema / properties / arrival_delay_hours / minimumAdded value: +0 - changed
Input schema / properties / departure / descriptionPrevious value: -"3-letter IATA code of departure airport"New value: +"Departure airport 3-letter IATA code, case-insensitive, e.g. CDG" - changed
Input schema / properties / disrupted / descriptionPrevious value: -"disruption type: cancellation, delay, missed connection"New value: +"What happened: delayed, cancelled, or denied_boarding (bumped/overbooked)." - changed
Input schema / properties / notice_days / descriptionPrevious 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." - added
Input schema / properties / notice_days / minimumAdded value: +0 - changed
Output 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" +}
- Changed
generate_claim_letter17 fields changed- changed
Input schema / properties / airline_name / descriptionPrevious value: -"Name of the airline"New value: +"Operating airline, e.g. \"British Airways\"" - added
Input schema / properties / airline_name / minLengthAdded value: +1 - changed
Input schema / properties / arrival / descriptionPrevious value: -"IATA code"New value: +"Arrival airport 3-letter IATA code, case-insensitive, e.g. JFK" - changed
Input schema / properties / booking_reference / descriptionPrevious value: -"Booking reference number"New value: +"Booking/PNR reference, e.g. ABC123. Optional." - changed
Input schema / properties / claimed_amount / descriptionPrevious value: -"Amount of compensation claimed"New value: +"Amount claimed, normally check_compensation's amount, e.g. 600. Default 250." - added
Input schema / properties / claimed_amount / minimumAdded value: +0 - changed
Input schema / properties / currency / descriptionPrevious value: -"Currency of the claimed amount, ISO code"New value: +"Currency of the claim. Default GBP for UK261, EUR for EU261." - changed
Input schema / properties / departure / descriptionPrevious value: -"IATA code"New value: +"Departure airport 3-letter IATA code, case-insensitive, e.g. LHR" - changed
Input schema / properties / flight_date / descriptionPrevious value: -"YYYY-MM-DD"New value: +"Scheduled flight date, YYYY-MM-DD, e.g. 2026-09-01" - added
Input schema / properties / flight_date / minLengthAdded value: +1 - changed
Input schema / properties / flight_number / descriptionPrevious value: -"e.g. BA117"New value: +"Flight number, e.g. BA117" - added
Input schema / properties / flight_number / minLengthAdded value: +1 - changed
Input schema / properties / incident_summary / descriptionPrevious value: -"Brief description of the delay/cancellation"New value: +"One sentence on what happened, e.g. \"the flight arrived 4 hours late due to a technical fault\". Default generic wording." - changed
Input schema / properties / passenger_name / descriptionPrevious value: -"Full name of the passenger"New value: +"Passenger's full name as on the booking, e.g. \"Jane Smith\"" - added
Input schema / properties / passenger_name / minLengthAdded value: +1 - changed
Input schema / properties / scheme / descriptionPrevious value: -"Compensation scheme, EU261 or UK261"New value: +"Legal basis. Default UK261 if departing the UK, else EU261." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "claimed_amount": { + "description": "Amount and currency claimed.", + "properties": { + "currency": { + "description": "EUR or GBP.", + "type": "string" + }, + "value": { + "description": "Amount claimed.", + "type": "number" + } + }, + "required": [ + "value", + "currency" + ], + "type": "object" + }, + "disclaimer": { + "description": "Not-legal-advice disclaimer to show the user.", + "type": "string" + }, + "letter": { + "description": "Full letter text, ready to copy and send.", + "type": "string" + }, + "scheme": { + "description": "Legal basis used in the letter.", + "enum": [ + "EU261", + "UK261" + ], + "type": "string" + }, + "sending_tips": { + "description": "Practical tips for sending and follow-up.", + "items": { + "type": "string" + }, + "type": "array" + }, + "subject": { + "description": "Suggested email or letter subject line.", + "type": "string" + } + }, + "required": [ + "subject", + "scheme", + "claimed_amount", + "letter", + "sending_tips", + "disclaimer" + ], + "type": "object" +}
5 tool updates
- Changed
check_compensation1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "compensation_amount": { - "description": "The amount of compensation in EUR, if eligible.", - "type": "number" - }, - "compensation_currency": { - "description": "The currency of the compensation amount.", - "type": "string" - }, - "distance_km": { - "description": "The distance between the departure and arrival airports in kilometers.", - "type": "number" - }, - "eligible": { - "description": "Indicates whether the passenger is eligible for compensation.", - "type": "boolean" - }, - "reason": { - "description": "The reason for the compensation amount or ineligibility.", - "type": "string" - } - }, - "required": [ - "eligible", - "compensation_amount", - "compensation_currency", - "reason", - "distance_km" - ], - "type": "object" -}New value: +null
- Changed
claim_timeline1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "claim_deadline": { - "description": "The deadline by which the claim must be submitted, in YYYY-MM-DD format.", - "type": "string" - }, - "evidence_checklist": { - "description": "A list of required evidence for the claim.", - "items": { - "description": "A specific piece of evidence required for the claim.", - "type": "string" - }, - "type": "array" - }, - "flight_date": { - "description": "The date of the flight in YYYY-MM-DD format.", - "type": "string" - }, - "scheme": { - "description": "The scheme under which the claim is being made, either EU261 or UK261.", - "type": "string" - } - }, - "required": [ - "scheme", - "flight_date", - "claim_deadline", - "evidence_checklist" - ], - "type": "object" -}New value: +null
- Changed
compensation_table1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "claim_windows": { - "description": "Time windows for filing compensation claims", - "properties": { - "cancellation": { - "description": "Claim window for flight cancellations", - "type": "string" - }, - "delay": { - "description": "Claim window for flight delays", - "type": "string" - }, - "diversion": { - "description": "Claim window for flight diversions", - "type": "string" - } - }, - "required": [ - "delay", - "cancellation", - "diversion" - ], - "type": "object" - }, - "distance_bands": { - "description": "Compensation amounts by distance band", - "properties": { - "0-1500km": { - "description": "Compensation amounts for flights up to 1500km", - "properties": { - "cancellation": { - "description": "Compensation amount for cancellations", - "type": "number" - }, - "long_delay": { - "description": "Compensation amount for long delays", - "type": "number" - }, - "short_delay": { - "description": "Compensation amount for short delays", - "type": "number" - } - }, - "required": [ - "short_delay", - "long_delay", - "cancellation" - ], - "type": "object" - }, - "1500-3500km": { - "description": "Compensation amounts for flights between 1500km and 3500km", - "properties": { - "cancellation": { - "description": "Compensation amount for cancellations", - "type": "number" - }, - "long_delay": { - "description": "Compensation amount for long delays", - "type": "number" - }, - "short_delay": { - "description": "Compensation amount for short delays", - "type": "number" - } - }, - "required": [ - "short_delay", - "long_delay", - "cancellation" - ], - "type": "object" - }, - "over_3500km": { - "description": "Compensation amounts for flights over 3500km", - "properties": { - "cancellation": { - "description": "Compensation amount for cancellations", - "type": "number" - }, - "long_delay": { - "description": "Compensation amount for long delays", - "type": "number" - }, - "short_delay": { - "description": "Compensation amount for short delays", - "type": "number" - } - }, - "required": [ - "short_delay", - "long_delay", - "cancellation" - ], - "type": "object" - } - }, - "required": [ - "0-1500km", - "1500-3500km", - "over_3500km" - ], - "type": "object" - }, - "eligibility_summary": { - "description": "Summary of eligibility criteria for compensation", - "properties": { - "flight_cancellation": { - "description": "Eligibility criteria for flight cancellations", - "type": "string" - }, - "flight_delay": { - "description": "Eligibility criteria for flight delays", - "type": "string" - }, - "flight_diversion": { - "description": "Eligibility criteria for flight diversions", - "type": "string" - } - }, - "required": [ - "flight_delay", - "flight_cancellation", - "flight_diversion" - ], - "type": "object" - } - }, - "required": [ - "distance_bands", - "eligibility_summary", - "claim_windows" - ], - "type": "object" -}New value: +null
- Changed
disruption_rights1 field changed- changed
Output 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
- Changed
generate_claim_letter1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "letter": { - "description": "The generated claim letter as a plain text string.", - "type": "string" - }, - "letter_html": { - "description": "The generated claim letter as an HTML string.", - "type": "string" - }, - "letter_pdf": { - "description": "The generated claim letter as a PDF file in base64 encoding.", - "format": "byte", - "type": "string" - } - }, - "required": [ - "letter" - ], - "type": "object" -}New value: +null
4 tool updates
- Changed
check_compensation7 fields changed- added
Input schema / properties / arrival_delay_hours / descriptionAdded value: +"Arrival delay in hours, as a number" - added
Input schema / properties / disrupted / descriptionAdded value: +"Flight identifier for the disrupted flight" - added
Input schema / properties / distance_km / descriptionAdded value: +"Flight distance in kilometers, as a number" - added
Input schema / properties / notice_days / descriptionAdded value: +"Number of days notice given for the disruption" - added
Input schema / properties / reason_category / descriptionAdded value: +"Category of disruption reason, e.g. technical, weather" - added
Input schema / properties / reroute_arrival_delay_hours / descriptionAdded value: +"Arrival delay in hours for the rerouted flight, as a number" - added
Input schema / properties / rerouted / descriptionAdded value: +"True if the flight was rerouted, false otherwise"
- Changed
claim_timeline1 field changed- added
Input schema / properties / scheme / descriptionAdded value: +"EU261 or UK261, case-sensitive"
- Changed
disruption_rights5 fields changed- added
Input schema / properties / arrival / descriptionAdded value: +"3-letter IATA code of arrival airport" - added
Input schema / properties / arrival_delay_hours / descriptionAdded value: +"arrival delay in hours, as a number" - added
Input schema / properties / departure / descriptionAdded value: +"3-letter IATA code of departure airport" - added
Input schema / properties / disrupted / descriptionAdded value: +"disruption type: cancellation, delay, missed connection" - added
Input schema / properties / notice_days / descriptionAdded value: +"number of days notice given for disruption, as a number"
- Changed
generate_claim_letter7 fields changed- added
Input schema / properties / airline_name / descriptionAdded value: +"Name of the airline" - added
Input schema / properties / booking_reference / descriptionAdded value: +"Booking reference number" - added
Input schema / properties / claimed_amount / descriptionAdded value: +"Amount of compensation claimed" - added
Input schema / properties / currency / descriptionAdded value: +"Currency of the claimed amount, ISO code" - added
Input schema / properties / incident_summary / descriptionAdded value: +"Brief description of the delay/cancellation" - added
Input schema / properties / passenger_name / descriptionAdded value: +"Full name of the passenger" - added
Input schema / properties / scheme / descriptionAdded value: +"Compensation scheme, EU261 or UK261"
5 tool updates
- Changed
check_compensation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "compensation_amount": { + "description": "The amount of compensation in EUR, if eligible.", + "type": "number" + }, + "compensation_currency": { + "description": "The currency of the compensation amount.", + "type": "string" + }, + "distance_km": { + "description": "The distance between the departure and arrival airports in kilometers.", + "type": "number" + }, + "eligible": { + "description": "Indicates whether the passenger is eligible for compensation.", + "type": "boolean" + }, + "reason": { + "description": "The reason for the compensation amount or ineligibility.", + "type": "string" + } + }, + "required": [ + "eligible", + "compensation_amount", + "compensation_currency", + "reason", + "distance_km" + ], + "type": "object" +}
- Changed
claim_timeline1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "claim_deadline": { + "description": "The deadline by which the claim must be submitted, in YYYY-MM-DD format.", + "type": "string" + }, + "evidence_checklist": { + "description": "A list of required evidence for the claim.", + "items": { + "description": "A specific piece of evidence required for the claim.", + "type": "string" + }, + "type": "array" + }, + "flight_date": { + "description": "The date of the flight in YYYY-MM-DD format.", + "type": "string" + }, + "scheme": { + "description": "The scheme under which the claim is being made, either EU261 or UK261.", + "type": "string" + } + }, + "required": [ + "scheme", + "flight_date", + "claim_deadline", + "evidence_checklist" + ], + "type": "object" +}
- Changed
compensation_table1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "claim_windows": { + "description": "Time windows for filing compensation claims", + "properties": { + "cancellation": { + "description": "Claim window for flight cancellations", + "type": "string" + }, + "delay": { + "description": "Claim window for flight delays", + "type": "string" + }, + "diversion": { + "description": "Claim window for flight diversions", + "type": "string" + } + }, + "required": [ + "delay", + "cancellation", + "diversion" + ], + "type": "object" + }, + "distance_bands": { + "description": "Compensation amounts by distance band", + "properties": { + "0-1500km": { + "description": "Compensation amounts for flights up to 1500km", + "properties": { + "cancellation": { + "description": "Compensation amount for cancellations", + "type": "number" + }, + "long_delay": { + "description": "Compensation amount for long delays", + "type": "number" + }, + "short_delay": { + "description": "Compensation amount for short delays", + "type": "number" + } + }, + "required": [ + "short_delay", + "long_delay", + "cancellation" + ], + "type": "object" + }, + "1500-3500km": { + "description": "Compensation amounts for flights between 1500km and 3500km", + "properties": { + "cancellation": { + "description": "Compensation amount for cancellations", + "type": "number" + }, + "long_delay": { + "description": "Compensation amount for long delays", + "type": "number" + }, + "short_delay": { + "description": "Compensation amount for short delays", + "type": "number" + } + }, + "required": [ + "short_delay", + "long_delay", + "cancellation" + ], + "type": "object" + }, + "over_3500km": { + "description": "Compensation amounts for flights over 3500km", + "properties": { + "cancellation": { + "description": "Compensation amount for cancellations", + "type": "number" + }, + "long_delay": { + "description": "Compensation amount for long delays", + "type": "number" + }, + "short_delay": { + "description": "Compensation amount for short delays", + "type": "number" + } + }, + "required": [ + "short_delay", + "long_delay", + "cancellation" + ], + "type": "object" + } + }, + "required": [ + "0-1500km", + "1500-3500km", + "over_3500km" + ], + "type": "object" + }, + "eligibility_summary": { + "description": "Summary of eligibility criteria for compensation", + "properties": { + "flight_cancellation": { + "description": "Eligibility criteria for flight cancellations", + "type": "string" + }, + "flight_delay": { + "description": "Eligibility criteria for flight delays", + "type": "string" + }, + "flight_diversion": { + "description": "Eligibility criteria for flight diversions", + "type": "string" + } + }, + "required": [ + "flight_delay", + "flight_cancellation", + "flight_diversion" + ], + "type": "object" + } + }, + "required": [ + "distance_bands", + "eligibility_summary", + "claim_windows" + ], + "type": "object" +}
- Changed
disruption_rights1 field changed- changed
Output 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" +}
- Changed
generate_claim_letter1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "letter": { + "description": "The generated claim letter as a plain text string.", + "type": "string" + }, + "letter_html": { + "description": "The generated claim letter as an HTML string.", + "type": "string" + }, + "letter_pdf": { + "description": "The generated claim letter as a PDF file in base64 encoding.", + "format": "byte", + "type": "string" + } + }, + "required": [ + "letter" + ], + "type": "object" +}
5 tool updates
- First observed
check_compensation - First observed
claim_timeline - First observed
compensation_table - First observed
disruption_rights - First observed
generate_claim_letter
Related MCP Connectors
EU261 flight delay compensation: check eligibility, compute EV, track fares. 6 tools, 35+ airports.
Free EU passenger rights calculators (flight, rail, bus, ferry), deadlines, legal glossary.
Flight compensation claims info and submission via AI agents
EU261/EC261 flight compensation eligibility and flight distance checks via AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables travellers whose flights are cancelled, delayed, overbooked or missed-connection to check their EU261/UK261/US DOT rights, get airline desk scripts, find airport and nearby-airport alternatives with live one-way flights, and open or track a case with a human expert team.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to help users claim refunds for UK travel (train Delay Repay, flight compensation, TfL overcharges) and parking fines through Untap's detection and deeplink tools.MIT
- AlicenseNot gradedqualityCmaintenanceProvides real-time flight status, airport weather, delays, cheap flight deals, and TSA wait times without requiring an API key.7 npmMIT

Departi MCP Serverofficial
AlicenseAqualityCmaintenanceTravel compliance and trip planning for digital nomads — visa requirements, tax residency analysis, Schengen 90/180-day tracking, and curated accommodation, transport, and experience search across 189 European destinations.7MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.