
Official MCP RegistryListed
Extralingo
Search language schools abroad, compare courses, dates and prices, and request bookings.
First seen 3 Oct 2026. Evidence as of 6 Oct 2026.
17
Tools
From an anonymous probe
1
Source listings
Each with its own history
35
Recorded changes
Since first seen
Tools
| Tool | Description | Behaviour |
|---|---|---|
| ask_school_question | Send a question to the school without a full trip configuration. Requires OAuth requests scope. Optional idempotency_key. | Changes data |
| calculate_trip_price | Live checkout quote for a configuration. Not a booking. Call before create_booking and before telling the student a final price. | Read-only |
| create_booking | Submit an unpaid booking for a bookings_live school (same path as the website Book now flow). The school still confirms availability; Extralingo emails the student; down payment is due within 5 days of school confirmation via Extralingo only. Never tell the user they are confirmed or paid. Requires OAuth bookings scope (Bearer token). Optional idempotency_key replays the same payload within 24 hours. | Changes data |
| email_trip | Email continue_url (/s/{id}) to the verified account inbox. Requires OAuth trips scope. Rate-limited. Not a booking; you can share continue_url without emailing. | Changes data |
| get_accommodation_details | One group from list_accommodations (group_id): type, room_types, meal/board options, distance, amenities, age and min-stay rules, and week prices for startDate and currency. Use after list_accommodations, before save_trip or calculate_trip_price, or to answer questions about one option. Week prices are indicative; call calculate_trip_price for a checkout total. | Read-only |
| get_course_details | Details for one course id from list_courses (pricing rows, supplements, metadata). | Read-only |
| get_school | School briefing: profile, cancellation policy, reviews, image URLs, bookings_live flag, and optional hero image for chat UI. Requires school_id from search_language_schools. | Read-only |
| get_school_filters | Valid filter values for search_language_schools (languages, countries, cities, course types, and other facets). | Read-only |
| get_trip | Load a saved trip by trip_id from save_trip. Returns continue_url for website handoff with configuration restored. | Read-only |
| list_accommodations | Accommodation groups for a school. Use group ids in save_trip configuration (accommodationGroupId). | Read-only |
| list_courses | Live course catalogue for a bookings_live school (course ids, weeks, prices). Use returned course ids inside save_trip configuration. | Read-only |
| list_starting_dates | Allowed course start dates (typically Mondays) for a school. Use startDate values in list_courses and configuration.startDate. | Read-only |
| request_discussion | Trip discussion: trip_id or school_id+configuration plus message. ask_school_question: question without a trip. request_quote: personal quote (comments) when not booking. School gets the config; Extralingo emails the verified account and coordinates replies. Returns kind, newBookingId, redirectUrl, message (not a booking). OAuth scope requests. Optional idempotency_key. | Changes data |
| request_quote | Ask the school for a personal quote when bookings_live is false or the student is not ready to book. Requires OAuth requests scope. Optional idempotency_key. | Changes data |
| save_trip | Create or update a server-side trip draft. Returns trip_id, url, trip_url, and continue_url (/s/{id}) so the student can restore selections on Extralingo.com. Not a booking. Requires OAuth trips scope (Bearer token). | Changes data |
| search_destinations | Search cities, countries, and school names. Use before search_language_schools to resolve place names to slugs. | Read-only |
| search_language_schools | Search and rank language schools. Returns school_id, url, indicative from-price, and reviews. Prices are not a booking quote; call calculate_trip_price before quoting a total. | Read-only |
Change history
- search_language_schools: input schema changed
- search_language_schools: description changed (+"and" +"quote; call calculate_trip_price before quoting a total." -"quote.")
- search_destinations: input schema changed
- search_destinations: description changed (+"countries," +"before search_language_schools" +"names to slugs.")
- save_trip: input schema changed
- save_trip: description changed (+"url," +"restore selections" +"Extralingo.com.")
- request_quote: input schema changed (+idempotencyKey, +idempotency_key, -auth_token)
- request_quote: description changed (+"quote" +"false" +"OAuth requests scope. Optional idempotency_key.")
- request_discussion: input schema changed (+idempotencyKey, +idempotency_key, -auth_token)
- request_discussion: description changed (+"Trip discussion: trip_id or school_id+configuration plus message. ask_school_question: question without" +"trip. request_quote: personal quote (comments) when not booking. School gets" +"config; Extralingo emails")
- list_starting_dates: input schema changed
- list_starting_dates: description changed (+"Use startDate values in list_courses and configuration.startDate.")
- list_courses: input schema changed
- list_courses: description changed (+"(course ids," +"returned course" +"inside save_trip configuration.")
- list_accommodations: input schema changed
- list_accommodations: description changed (+"save_trip configuration (accommodationGroupId)." -"save_trip.")
- get_trip: input schema changed
- get_trip: description changed (+"trip_id from save_trip." -"trip_id." -"the")
- get_school_filters: input schema changed
- get_school_filters: description changed (+"countries," +"and other facets)." -"etc.).")
- get_school: input schema changed
- get_school: description changed (+"cancellation policy," +"bookings_live flag," +"optional")
- get_course_details: input schema changed
- get_course_details: description changed (+"list_courses (pricing rows, supplements, metadata)." -"list_courses.")
- get_accommodation_details: input schema changed
- get_accommodation_details: description changed (+"One group from list_accommodations (group_id): type, room_types, meal/board options, distance, amenities, age and min-stay rules, and week prices" +"startDate and currency. Use after list_accommodations, before save_trip or calculate_trip_price, or to answer questions about" +"option. Week prices are indicative; call calculate_trip_price for a checkout total.")
- email_trip: input schema changed
- email_trip: description changed (+"inbox." +"Not" +"booking; you can")
- create_booking: input schema changed (+idempotency_key, -auth_token)
- create_booking: description changed (+"Submit an" +"for a bookings_live school (same path as" +"website Book now flow).")
- calculate_trip_price: input schema changed
- calculate_trip_price: description changed (+"before create_booking and" +"telling the student a final price." -"this")
- ask_school_question: input schema changed (+configuration, +idempotencyKey, +idempotency_key, +trip_id, -auth_token)
- ask_school_question: description changed (+"configuration." +"OAuth requests scope. Optional idempotency_key." -"config.")
- Listed (registry)
| Source | Listing | First seen | Last seen | Versions |
|---|---|---|---|---|
| Official MCP Registry | com.extralingo/extralingo | 3 Oct 2026 | 6 Oct 2026 | 1 |