EU261/UK261 flight compensation check, rights and claim letters. Free.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Final arrival airport 3-letter IATA code, case-insensitive, e.g. JFK
Departure airport 3-letter IATA code, case-insensitive, e.g. LHR
What happened: delayed (arrived late) or cancelled.
For cancellations: true if the airline re-routed you on another flight. Default false.
Override the computed great-circle distance in km, e.g. 5540. Both airports must still be known IATA codes.
For cancellations: days of notice the airline gave before departure, e.g. 3. 14+ days means no fixed compensation. Default 0.
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.
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.
Hours late at the final destination, e.g. 4.5. Drives delay compensation (>= 3h) and care. Default 0.
For re-routed cancellations: hours the replacement arrived after the original schedule, e.g. 2. Default 0.
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.
| Argument | Type | Description |
|---|---|---|
| arrival* | string | Final arrival airport 3-letter IATA code, case-insensitive, e.g. JFK |
| rerouted | boolean | For cancellations: true if the airline re-routed you on another flight. Default false. |
| departure* | string | Departure airport 3-letter IATA code, case-insensitive, e.g. LHR |
| disrupted* | string | What happened: delayed (arrived late) or cancelled. |
| distance_km | number | Override the computed great-circle distance in km, e.g. 5540. Both airports must still be known IATA codes. |
| notice_days | number | For cancellations: days of notice the airline gave before departure, e.g. 3. 14+ days means no fixed compensation. Default 0. |
| carrier_country | string | 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 | string | 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 | number | Hours late at the final destination, e.g. 4.5. Drives delay compensation (>= 3h) and care. Default 0. |
| reroute_arrival_delay_hours | number | For re-routed cancellations: hours the replacement arrived after the original schedule, e.g. 2. Default 0. |
{
"type": "object",
"required": [
"departure",
"arrival",
"disrupted"
],
"properties": {
"arrival": {
"type": "string",
"description": "Final arrival airport 3-letter IATA code, case-insensitive, e.g. JFK"
},
"rerouted": {
"type": "boolean",
"description": "For cancellations: true if the airline re-routed you on another flight. Default false."
},
"departure": {
"type": "string",
"description": "Departure airport 3-letter IATA code, case-insensitive, e.g. LHR"
},
"disrupted": {
"enum": [
"delayed",
"cancelled"
],
"type": "string",
"description": "What happened: delayed (arrived late) or cancelled."
},
"distance_km": {
"type": "number",
"description": "Override the computed great-circle distance in km, e.g. 5540. Both airports must still be known IATA codes.",
"exclusiveMinimum": 0
},
"notice_days": {
"type": "number",
"minimum": 0,
"description": "For cancellations: days of notice the airline gave before departure, e.g. 3. 14+ days means no fixed compensation. Default 0."
},
"carrier_country": {
"type": "string",
"description": "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": {
"enum": [
"unknown",
"weather",
"atc",
"security",
"political",
"strike_atc",
"strike_airline",
"technical",
"crew",
"other"
],
"type": "string",
"description": "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": {
"type": "number",
"minimum": 0,
"description": "Hours late at the final destination, e.g. 4.5. Drives delay compensation (>= 3h) and care. Default 0."
},
"reroute_arrival_delay_hours": {
"type": "number",
"minimum": 0,
"description": "For re-routed cancellations: hours the replacement arrived after the original schedule, e.g. 2. Default 0."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| scheme* | string | EU261 (EU/EEA departure or EU carrier) or UK261 (UK departure or UK carrier); check_compensation tells you which. |
| flight_date* | string | Date of the disrupted flight, YYYY-MM-DD, e.g. 2026-09-01 |
{
"type": "object",
"required": [
"flight_date",
"scheme"
],
"properties": {
"scheme": {
"enum": [
"EU261",
"UK261"
],
"type": "string",
"description": "EU261 (EU/EEA departure or EU carrier) or UK261 (UK departure or UK carrier); check_compensation tells you which."
},
"flight_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date of the disrupted flight, YYYY-MM-DD, e.g. 2026-09-01"
}
}
}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.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| arrival* | string | Arrival airport 3-letter IATA code, case-insensitive, e.g. FCO |
| departure* | string | Departure airport 3-letter IATA code, case-insensitive, e.g. CDG |
| disrupted* | string | What happened: delayed, cancelled, or denied_boarding (bumped/overbooked). |
| notice_days | number | 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 | string | Operating airline's 2-letter country code, e.g. DE. Needed for flights arriving into the EU/UK from outside. |
| arrival_delay_hours | number | For delays: hours late, e.g. 5. At 5h+ the refund option is added. Default 0. |
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.
| Argument | Type | Description |
|---|---|---|
| scheme | string | Legal basis. Default: UK261 if departing the UK, else EU261 (without claimed_amount, worked out from the route; errors if neither applies). |
| arrival* | string | Arrival airport 3-letter IATA code, case-insensitive, e.g. JFK |
| currency | string | Currency of the claim. Default GBP for UK261, EUR for EU261. |
| departure* | string | Departure airport 3-letter IATA code, case-insensitive, e.g. LHR |
| flight_date* | string | Scheduled flight date, YYYY-MM-DD, e.g. 2026-09-01 |
| airline_name* | string | Operating airline, e.g. "British Airways" |
| flight_number* | string |
{
"type": "object",
"required": [
"departure",
"arrival",
"disrupted"
],
"properties": {
"arrival": {
"type": "string",
"description": "Arrival airport 3-letter IATA code, case-insensitive, e.g. FCO"
},
"departure": {
"type": "string",
"description": "Departure airport 3-letter IATA code, case-insensitive, e.g. CDG"
},
"disrupted": {
"enum": [
"delayed",
"cancelled",
"denied_boarding"
],
"type": "string",
"description": "What happened: delayed, cancelled, or denied_boarding (bumped/overbooked)."
},
"notice_days": {
"type": "number",
"minimum": 0,
"description": "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": {
"type": "string",
"description": "Operating airline's 2-letter country code, e.g. DE. Needed for flights arriving into the EU/UK from outside."
},
"arrival_delay_hours": {
"type": "number",
"minimum": 0,
"description": "For delays: hours late, e.g. 5. At 5h+ the refund option is added. Default 0."
}
}
}| Flight number, e.g. BA117 |
| claimed_amount | number | 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* | string | Passenger's full name as on the booking, e.g. "Jane Smith" |
| incident_summary | string | One sentence on what happened, e.g. "the flight arrived 4 hours late due to a technical fault". Default generic wording. |
| booking_reference | string | Booking/PNR reference, e.g. ABC123. Optional. |
{
"type": "object",
"required": [
"passenger_name",
"airline_name",
"flight_number",
"flight_date",
"departure",
"arrival"
],
"properties": {
"scheme": {
"enum": [
"EU261",
"UK261"
],
"type": "string",
"description": "Legal basis. Default: UK261 if departing the UK, else EU261 (without claimed_amount, worked out from the route; errors if neither applies)."
},
"arrival": {
"type": "string",
"description": "Arrival airport 3-letter IATA code, case-insensitive, e.g. JFK"
},
"currency": {
"enum": [
"EUR",
"GBP"
],
"type": "string",
"description": "Currency of the claim. Default GBP for UK261, EUR for EU261."
},
"departure": {
"type": "string",
"description": "Departure airport 3-letter IATA code, case-insensitive, e.g. LHR"
},
"flight_date": {
"type": "string",
"minLength": 1,
"description": "Scheduled flight date, YYYY-MM-DD, e.g. 2026-09-01"
},
"airline_name": {
"type": "string",
"minLength": 1,
"description": "Operating airline, e.g. \"British Airways\""
},
"flight_number": {
"type": "string",
"minLength": 1,
"description": "Flight number, e.g. BA117"
},
"claimed_amount": {
"type": "number",
"minimum": 0,
"description": "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": {
"type": "string",
"minLength": 1,
"description": "Passenger's full name as on the booking, e.g. \"Jane Smith\""
},
"incident_summary": {
"type": "string",
"description": "One sentence on what happened, e.g. \"the flight arrived 4 hours late due to a technical fault\". Default generic wording."
},
"booking_reference": {
"type": "string",
"description": "Booking/PNR reference, e.g. ABC123. Optional."
}
}
}