True cost of flight extras (bags, seats, fees) on 29 airlines in Europe and North America, sourced.
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.
One airline's published extra fees (bags, seats, priority, check-in, changes, payment), each with the price range, when bought (at booking / later / airport), how it is charged, its source URL and the date checked. Optionally filter by category.
Name or IATA code, e.g. 'Ryanair', 'FR', 'easyJet', 'W6'
Tool list last changed Oct 25, 2026.
One airline's published extra fees (bags, seats, priority, check-in, changes, payment), each with the price range, when bought (at booking / later / airport), how it is charged, its source URL and the date checked. Optionally filter by category.
| Argument | Type | Description |
|---|---|---|
| airline* | string | Name or IATA code, e.g. 'Ryanair', 'FR', 'easyJet', 'W6' |
| category | string | |
| currency | string |
{
"type": "object",
"required": [
"airline"
],
"properties": {
"airline": {
"type": "string",
"description": "Name or IATA code, e.g. 'Ryanair', 'FR', 'easyJet', 'W6'"
},
"category": {
"enum": [
"cabin_bag",
"checked_bag",
"seat",
"priority",
"airport_checkin",
"boarding_pass",
"payment",
"name_change",
"flight_change",
"other"
],
"type": "string"
},
"currency": {
"enum": [
"EUR",
"GBP"
],
"type": "string"
}
},
"additionalProperties": false
}What Airfare Brain covers: airlines, how fees are researched and dated, what it does NOT do (no live fares, no booking), and the sister tool for car hire.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List every airline with a fee table: name, IATA code, the date its fees were checked, and its page.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}The whole trip into one airport in one answer: the flight's extras on an airline (bags, seats, fees, as true_cost) AND what car hire there really costs (Car Rental Brain's measured median per day, car only, dated). Use for 'flying to Faro with Ryanair, bags and a hire car: what will it cost?'. For deposits, second-driver fees and desk cover, follow up with Car Rental Brain's airport_costs (its MCP is linked in the answer).
| Argument | Type | Description |
|---|---|---|
| fare | number | Total fare for the whole party, if known |
| seat | string | |
| trip | string | |
| airline | string | Airline name or IATA code (optional; without it you get car hire only) |
| airport* | string | IATA code or name of the airport you fly INTO, e.g. 'FAO', 'Faro', 'Malaga' |
| infants | integer | |
| car_days | integer | Days of car hire (default 7) |
| currency | string | |
| priority |
The true cost of a flight on one airline. Pass `fare` (the total for the whole party, from a flight-search tool or the person) to get fare + extras; without it you get the extras alone. Extras = what the person chooses (cabin bag, checked bag by kg, seat, priority, infants) for their party and trip, as the range the airline publishes. Also lists what costs more if left until the airport, unchosen fees that may apply (admin, card %), and extras the airline does not publish a price for.
| Argument | Type | Description |
|---|---|---|
| fare | number | Total fare already found for the whole party, if known |
| seat | string | extra = legroom / front |
| trip | string | |
| airline* | string | Name or IATA code |
| infants | integer | Under-2s on a lap |
| currency | string | |
| priority | boolean | |
| cabin_bag | boolean | A large cabin bag for the overhead locker |
| hold_bags |
| boolean |
| cabin_bag | boolean |
| hold_bags | integer |
| passengers | integer |
| checked_bag_kg | integer |
{
"type": "object",
"required": [
"airport"
],
"properties": {
"fare": {
"type": "number",
"description": "Total fare for the whole party, if known"
},
"seat": {
"enum": [
"none",
"standard",
"extra"
],
"type": "string"
},
"trip": {
"enum": [
"one_way",
"return"
],
"type": "string"
},
"airline": {
"type": "string",
"description": "Airline name or IATA code (optional; without it you get car hire only)"
},
"airport": {
"type": "string",
"description": "IATA code or name of the airport you fly INTO, e.g. 'FAO', 'Faro', 'Malaga'"
},
"infants": {
"type": "integer",
"maximum": 4,
"minimum": 0
},
"car_days": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Days of car hire (default 7)"
},
"currency": {
"enum": [
"EUR",
"GBP"
],
"type": "string"
},
"priority": {
"type": "boolean"
},
"cabin_bag": {
"type": "boolean"
},
"hold_bags": {
"type": "integer",
"maximum": 3,
"minimum": 1
},
"passengers": {
"type": "integer",
"maximum": 9,
"minimum": 1
},
"checked_bag_kg": {
"type": "integer"
}
},
"additionalProperties": false
}| integer |
| Checked bags per person (default 1); the 2nd bag often costs more |
| passengers | integer | People aged 2+ (default 1) |
| checked_bag_kg | integer | Checked bag(s) per person of this weight allowance |
{
"type": "object",
"required": [
"airline"
],
"properties": {
"fare": {
"type": "number",
"description": "Total fare already found for the whole party, if known"
},
"seat": {
"enum": [
"none",
"standard",
"extra"
],
"type": "string",
"description": "extra = legroom / front"
},
"trip": {
"enum": [
"one_way",
"return"
],
"type": "string"
},
"airline": {
"type": "string",
"description": "Name or IATA code"
},
"infants": {
"type": "integer",
"maximum": 4,
"minimum": 0,
"description": "Under-2s on a lap"
},
"currency": {
"enum": [
"EUR",
"GBP"
],
"type": "string"
},
"priority": {
"type": "boolean"
},
"cabin_bag": {
"type": "boolean",
"description": "A large cabin bag for the overhead locker"
},
"hold_bags": {
"type": "integer",
"maximum": 3,
"minimum": 1,
"description": "Checked bags per person (default 1); the 2nd bag often costs more"
},
"passengers": {
"type": "integer",
"maximum": 9,
"minimum": 1,
"description": "People aged 2+ (default 1)"
},
"checked_bag_kg": {
"type": "integer",
"description": "Checked bag(s) per person of this weight allowance"
}
},
"additionalProperties": false
}