Airfare Brain

True cost of a flight's extras (bags, seats, fees) on 11 European airlines, dated and sourced.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
60%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~933Tokens (tool definitions)
~1.6 KBTypical response size
Moderate attention impact (0.73% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "airfare-brain": {
      "url": "https://airfarebrain.com/mcp"
    }
  }
}

Remote endpoints

https://airfarebrain.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_capabilities

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "airlines": {
      "type": "array"
    },
    "method": {
      "type": "string"
    },
    "error": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
🟢list_airlines

List every airline with a fee table: name, IATA code, the date its fees were checked, and its page.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "airlines": {
      "type": "array"
    },
    "error": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
🟢airline_fees(airline, category, currency)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "airline": {
      "type": "string",
      "description": "Name or IATA code, e.g. 'Ryanair', 'FR', 'easyJet', 'W6'"
    },
    "category": {
      "type": "string",
      "enum": [
        "cabin_bag",
        "checked_bag",
        "seat",
        "priority",
        "airport_checkin",
        "boarding_pass",
        "payment",
        "name_change",
        "flight_change",
        "other"
      ]
    },
    "currency": {
      "type": "string",
      "enum": [
        "EUR",
        "GBP"
      ]
    }
  },
  "required": [
    "airline"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "airline": {
      "type": "string"
    },
    "fees": {
      "type": "array"
    },
    "page": {
      "type": "string"
    },
    "error": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
🟢true_cost(airline, passengers, infants, trip, currency, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "airline": {
      "type": "string",
      "description": "Name or IATA code"
    },
    "passengers": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "description": "People aged 2+ (default 1)"
    },
    "infants": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4,
      "description": "Under-2s on a lap"
    },
    "trip": {
      "type": "string",
      "enum": [
        "one_way",
        "return"
      ]
    },
    "currency": {
      "type": "string",
      "enum": [
        "EUR",
        "GBP"
      ]
    },
    "fare": {
      "type": "number",
      "description": "Total fare already found for the whole party, if known"
    },
    "cabin_bag": {
      "type": "boolean",
      "description": "A large cabin bag for the overhead locker"
    },
    "checked_bag_kg": {
      "type": "integer",
      "description": "One checked bag per person of this weight allowance"
    },
    "seat": {
      "type": "string",
      "enum": [
        "none",
        "standard",
        "extra"
      ],
      "description": "extra = legroom / front"
    },
    "priority": {
      "type": "boolean"
    }
  },
  "required": [
    "airline"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "airline": {
      "type": "string"
    },
    "extras_total": {
      "type": "string"
    },
    "true_cost": {
      "type": "string"
    },
    "lines": {
      "type": "array"
    },
    "page": {
      "type": "string"
    },
    "error": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools