{"name":"com.easygroupflights/easygroupflights","slug":"easygroupflights","title":"easygroupflights","description":"Group flight quotes for parties of 10 or more passengers.","url":"https://mcp.market/server/easygroupflights","rating":null,"grade":"B","score":79,"certified":false,"status":"active","category":"maps","tags":["maps"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-15T08:23:15.000Z","license":"MIT"},"uptime":{"percent":100,"checks":2,"ok":2,"last_checked_at":"2026-09-19T21:16:10.437Z","last_ok_at":"2026-09-19T21:16:10.437Z","latency_ms":68},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/codeblockssk/easygroupflights-mcp","website":"https://easygroupflights.com","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://mcp.easygroupflights.com/mcp"}],"packages":[],"tools":[{"name":"get_service_info","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"type":"string","enum":["en","pl","at"],"description":"Which market to describe. Defaults to en."}}}},{"name":"request_group_quote","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"]}},{"name":"search_flights","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"]}},{"name":"send_flight_offer","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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"]}}],"scan":{"score":79,"grade":"B","scanned_at":"2026-09-19T19:11:10.569Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:11:10.607Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 231ms"]},"poisoning":{"score":15,"max":15,"notes":["4 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://mcp.easygroupflights.com/mcp","reachable":true,"authRequired":false,"latencyMs":231,"serverInfo":{"name":"easygroupflights","version":"1.0.1"}}],"packages":[],"repo":{"found":true,"owner":"codeblockssk","repo":"easygroupflights-mcp","archived":false,"pushedAt":"2026-09-15T08:23:15Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/318895821?v=4","ownerCreatedAt":"2026-08-20T05:41:29Z","license":"MIT"},"icon":{"url":"https://easygroupflights.com/apple-touch-icon.png","source":"registry","width":180,"height":180},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-15T08:23:15.000Z","score":23}}}},"grade_history":[],"reviews":[]}