Group flight quotes for parties of 10 or more passengers.
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.
Returns one fare from a recent flight search, by its offer_id: the per-person price, the flights, a booking link and the time until which the offer_id is valid. Works for 30 minutes after the search.
offer_id of a fare, exactly as the flight search returned it.
Returns one fare from a recent flight search, by its offer_id: the per-person price, the flights, a booking link and the time until which the offer_id is valid. Works for 30 minutes after the search.
| Argument | Type | Description |
|---|---|---|
| offer_id* | string | offer_id of a fare, exactly as the flight search returned it. |
{
"type": "object",
"required": [
"offer_id"
],
"properties": {
"offer_id": {
"type": "string",
"description": "offer_id of a fare, exactly as the flight search returned it."
}
}
}Describes easygroupflights for one market: who it serves, how group fares differ from public tickets, what happens after a quote is requested, and how to reach a person. Submits nothing.
| Argument | Type | Description |
|---|---|---|
| market | string | Which market to describe. Defaults to en. |
{
"type": "object",
"properties": {
"market": {
"enum": [
"en",
"pl",
"at"
],
"type": "string",
"description": "Which market to describe. Defaults to en."
}
}
}Checks a group flight enquiry for 10 or more seated travellers and returns the exact brief that would go to a human specialist, with a confirmation_token valid for 15 minutes. Nothing is sent.
| Argument | Type | Description |
|---|---|---|
| note | string | Anything that shapes the fare: what the group is (school trip, wedding, sports team, conference), baggage or equipment needs, budget, who pays, whether names are known yet. |
| email* | string | Where the quote is sent. Required. |
| phone* | string | Contact number in international form, e.g. +441244568183. Required: a group specialist may phone to confirm details. |
| adults* | integer | Travellers aged 16 or over. |
| market | string | Which market handles the enquiry: en (easygroupflights.com), pl (grupoweloty.pl) or at (gruppenfluege.at). Defaults to en. |
| origin* | array | Departure airport as an IATA code, e.g. ["LHR"]. Several codes are allowed when the group converges from more than one city. |
| youths | integer | Travellers aged 12–15. |
Sends a prepared group flight enquiry to a human specialist, who replies by email with a written quote, usually within about 2 hours. Takes only the confirmation_token from preparing it; it returns a confirmation, not a price, and books or charges nothing.
| Argument | Type | Description |
|---|---|---|
| idempotency_key | string | Optional. Any unique string for this request, such as a UUID. Calling again with the same key and the same arguments returns the first result instead of sending again. Kept for 24 hours. |
| confirmation_token* | string | confirmation_token returned when this write was prepared. Valid for 15 minutes. |
{
"type": "object",
"required": [
"confirmation_token"
],
"properties": {
"idempotency_key": {
"type": "string",
"maxLength": 128,
"description": "Optional. Any unique string for this request, such as a UUID. Calling again with the same key and the same arguments returns the first result instead of sending again. Kept for 24 hours."
},
"confirmation_token": {
"type": "string",
"description": "confirmation_token returned when this write was prepared. Valid for 15 minutes."
}
}
}Searches live public fares for 1 to 9 travellers and returns options with per-person prices, carriers and stops, cheapest first, each with an offer_id valid for 30 minutes. Results come in pages: pass next_cursor back as cursor, with the same route and dates, for more.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Fares per page. Defaults to 10. |
| cursor | string | next_cursor from the previous page of this search. Omit for the first page. |
| origin* | string | Departure airport, IATA code, e.g. VIE. |
| passengers | integer | How many people are travelling, 1 to 9. Defaults to 1. |
| destination* | string | Arrival airport, IATA code, e.g. BCN. |
| return_date | string | Return date, ISO 8601 (YYYY-MM-DD). Omit for one way. |
| departure_date* | string | Outbound date, ISO 8601 (YYYY-MM-DD). |
{
"type": "object",
"required": [
"origin",
"destination",
"departure_date"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Fares per page. Defaults to 10."
},
"cursor": {
"type": "string",
"description": "next_cursor from the previous page of this search. Omit for the first page."
},
"origin": {
"type": "string",
"description": "Departure airport, IATA code, e.g. VIE."
},
"passengers": {
"type": "integer",
"maximum": 9,
"minimum": 1,
"description": "How many people are travelling, 1 to 9. Defaults to 1."
},
"destination": {
"type": "string",
"description": "Arrival airport, IATA code, e.g. BCN."
},
"return_date": {
"type": "string",
"description": "Return date, ISO 8601 (YYYY-MM-DD). Omit for one way."
},
"departure_date": {
"type": "string",
"description": "Outbound date, ISO 8601 (YYYY-MM-DD)."
}
}
}| infants | integer | Under 2, travelling on an adult lap. They do not occupy a seat and do not count towards the group of 10. |
| children | integer | Travellers aged 2–11, each in their own seat. |
| last_name | string | Organiser's surname. |
| first_name | string | Organiser's first name. |
| cabin_class | string | Defaults to economy. |
| destination* | array | Arrival airport as an IATA code, e.g. ["BCN"]. |
| return_date | string | Return date, ISO 8601 (YYYY-MM-DD). Omit for a one-way group booking. |
| youths_ages | array | Age of each youth, one entry per youth. |
| children_ages | array | Age of each child, one entry per child. |
| return_origin | array | Return leg departure airports, if the group flies home from somewhere other than the destination. |
| departure_date* | string | Outbound date, ISO 8601 (YYYY-MM-DD). |
| return_destination | array | Return leg arrival airports, if travellers go home to a different city. |
| date_flexibility_days | integer | How many days either side of the given dates the group can move. 0 means fixed dates. |
{
"type": "object",
"required": [
"origin",
"destination",
"departure_date",
"adults",
"email",
"phone"
],
"properties": {
"note": {
"type": "string",
"description": "Anything that shapes the fare: what the group is (school trip, wedding, sports team, conference), baggage or equipment needs, budget, who pays, whether names are known yet."
},
"email": {
"type": "string",
"description": "Where the quote is sent. Required."
},
"phone": {
"type": "string",
"description": "Contact number in international form, e.g. +441244568183. Required: a group specialist may phone to confirm details."
},
"adults": {
"type": "integer",
"minimum": 1,
"description": "Travellers aged 16 or over."
},
"market": {
"enum": [
"en",
"pl",
"at"
],
"type": "string",
"description": "Which market handles the enquiry: en (easygroupflights.com), pl (grupoweloty.pl) or at (gruppenfluege.at). Defaults to en."
},
"origin": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"description": "Departure airport as an IATA code, e.g. [\"LHR\"]. Several codes are allowed when the group converges from more than one city."
},
"youths": {
"type": "integer",
"minimum": 0,
"description": "Travellers aged 12–15."
},
"infants": {
"type": "integer",
"minimum": 0,
"description": "Under 2, travelling on an adult lap. They do not occupy a seat and do not count towards the group of 10."
},
"children": {
"type": "integer",
"minimum": 0,
"description": "Travellers aged 2–11, each in their own seat."
},
"last_name": {
"type": "string",
"description": "Organiser's surname."
},
"first_name": {
"type": "string",
"description": "Organiser's first name."
},
"cabin_class": {
"enum": [
"economy",
"business"
],
"type": "string",
"description": "Defaults to economy."
},
"destination": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"description": "Arrival airport as an IATA code, e.g. [\"BCN\"]."
},
"return_date": {
"type": "string",
"description": "Return date, ISO 8601 (YYYY-MM-DD). Omit for a one-way group booking."
},
"youths_ages": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Age of each youth, one entry per youth."
},
"children_ages": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Age of each child, one entry per child."
},
"return_origin": {
"type": "array",
"items": {
"type": "string"
},
"description": "Return leg departure airports, if the group flies home from somewhere other than the destination."
},
"departure_date": {
"type": "string",
"description": "Outbound date, ISO 8601 (YYYY-MM-DD)."
},
"return_destination": {
"type": "array",
"items": {
"type": "string"
},
"description": "Return leg arrival airports, if travellers go home to a different city."
},
"date_flexibility_days": {
"type": "integer",
"minimum": 0,
"description": "How many days either side of the given dates the group can move. 0 means fixed dates."
}
}
}