easygroupflights
Group flight quotes for parties of 10 or more passengers.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"easygroupflights": {
"url": "https://mcp.easygroupflights.com/mcp"
}
}
}원격 엔드포인트
https://mcp.easygroupflights.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (4)
🟢get_service_info(market)
What easygroupflights does, who it serves, how group fares differ from public tickets, and what happens after a quote is requested. Call this when a traveller asks whether their trip qualifies, what it costs, how long a quote takes, or how group booking works — it answers without submitting anything.
입력 스키마
{
"type": "object",
"properties": {
"market": {
"type": "string",
"enum": [
"en",
"pl",
"at"
],
"description": "Which market to describe. Defaults to en."
}
}
}🟢request_group_quote(origin, destination, departureDate, returnDate, returnOrigin, ...)
Request a quote for a group of 10 or more travellers flying together. Group fares are negotiated directly with airlines and are not sold through public booking engines, so this tool does NOT return a price: it puts a complete enquiry in front of a human agent, who replies by email within about 2 hours (up to 24 hours for complex multi-city trips). Typical saving against booking the same seats individually is 20–40%, the price is locked for the whole group at once, seats are held together, and passenger names can be supplied later. Collect the email address and phone number before calling — the agent needs both to reply. For 9 travellers or fewer, use search_flights instead.
입력 스키마
{
"type": "object",
"properties": {
"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."
},
"destination": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"description": "Arrival airport as an IATA code, e.g. [\"BCN\"]."
},
"departureDate": {
"type": "string",
"description": "Outbound date, YYYY-MM-DD."
},
"returnDate": {
"type": "string",
"description": "Return date, YYYY-MM-DD. Omit for a one-way group booking."
},
"returnOrigin": {
"type": "array",
"items": {
"type": "string"
},
"description": "Return leg departure airports, if the group flies home from somewhere other than the destination."
},
"returnDestination": {
"type": "array",
"items": {
"type": "string"
},
"description": "Return leg arrival airports, if travellers go home to a different city."
},
"dateFlexibilityDays": {
"type": "integer",
"minimum": 0,
"description": "How many days either side of the given dates the group can move. 0 means fixed dates. Flexibility often buys a better group fare, so ask."
},
"adults": {
"type": "integer",
"minimum": 1,
"description": "Travellers aged 16 or over."
},
"youths": {
"type": "integer",
"minimum": 0,
"description": "Travellers aged 12–15."
},
"children": {
"type": "integer",
"minimum": 0,
"description": "Travellers aged 2–11, each in their own seat."
},
"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."
},
"youthsAges": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Age of each youth, one entry per youth."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Age of each child, one entry per child."
},
"cabinClass": {
"type": "string",
"enum": [
"economy",
"business"
],
"description": "Defaults to economy."
},
"email": {
"type": "string",
"description": "Where the quote is sent. Required."
},
"phone": {
"type": "string",
"description": "Contact number in international form, e.g. +441244568183. Required — the agent may call to confirm details."
},
"firstName": {
"type": "string",
"description": "Organiser's first name."
},
"lastName": {
"type": "string",
"description": "Organiser's surname."
},
"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. Worth asking for — it is what lets the agent quote accurately first time."
},
"market": {
"type": "string",
"enum": [
"en",
"pl",
"at"
],
"description": "Which market handles the enquiry: en (easygroupflights.com), pl (grupoweloty.pl) or at (gruppenfluege.at). Defaults to en."
}
},
"required": [
"origin",
"destination",
"departureDate",
"adults",
"email",
"phone"
]
}🟢search_flights(origin, destination, departureDate, returnDate, passengers)
Search live, bookable fares for a party of 9 travellers or fewer — ordinary tickets sold through public inventory. Returns flight options with prices, carriers, stops and a direct booking link. Prices are quoted per person. For 10 or more travellers this tool is the wrong one: those need a negotiated group fare, so use request_group_quote instead.
입력 스키마
{
"type": "object",
"properties": {
"origin": {
"type": "string",
"description": "Departure airport, IATA code, e.g. VIE."
},
"destination": {
"type": "string",
"description": "Arrival airport, IATA code, e.g. BCN."
},
"departureDate": {
"type": "string",
"description": "Outbound date, YYYY-MM-DD."
},
"returnDate": {
"type": "string",
"description": "Return date, YYYY-MM-DD. Omit for one way."
},
"passengers": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "How many people are travelling. 10 or more is a group — use request_group_quote."
}
},
"required": [
"origin",
"destination",
"departureDate"
]
}🟡send_flight_offer(fareId, thereTripId, backTripId, sessionId, email, ...)
Email one of the options returned by search_flights to the traveller as a formal offer they can accept. Requires the fare id, both trip ids and the session id exactly as search_flights reported them, plus the traveller's email address — ask for it first, and do not invent one. This sends a real email, so confirm the choice with the traveller before calling.
입력 스키마
{
"type": "object",
"properties": {
"fareId": {
"type": "string",
"description": "fare_id from the search result."
},
"thereTripId": {
"type": "string",
"description": "there_trip_id from the search result."
},
"backTripId": {
"type": "string",
"description": "back_trip_id from the search result. \"0\" for a one-way fare."
},
"sessionId": {
"type": "string",
"description": "session_id from the same search. Ids are only valid within their session."
},
"email": {
"type": "string",
"description": "Where to send the offer."
},
"name": {
"type": "string",
"description": "Traveller's name, used to address the email."
},
"message": {
"type": "string",
"description": "A sentence or two of context for the traveller, e.g. why this option was chosen."
},
"adults": {
"type": "integer",
"minimum": 1,
"description": "Adults on the offer. Defaults to 1."
},
"children": {
"type": "integer",
"minimum": 0,
"description": "Children on the offer."
},
"infants": {
"type": "integer",
"minimum": 0,
"description": "Lap infants on the offer."
}
},
"required": [
"fareId",
"thereTripId",
"backTripId",
"sessionId",
"email"
]
}커뮤니티
증거