Extralingo
Qué hace este MCP
Searches language schools abroad, compares courses and accommodations, calculates trip prices and submits booking or quote requests.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['school_id', 'message'], 'properties': {'contact': {'type': 'object', 'description': 'Optional first_name, last_name. Email always comes from the verified account.', 'additionalProperties': True}, 'message': {'type': 'string', 'description': 'Student message to the school.'}, 'trip_id': {'type': 'string', 'description': 'Optional trip_id from save_trip.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'configuration': {'type': 'object', 'properties': {'mealType': {'type': 'string', 'description': 'Meal plan key when accommodation is selected.'}, 'students': {'type': 'array', 'items': {'type': 'object', 'properties': {'weeks': {'type': 'integer', 'minimum': 1, 'description': 'Course duration in weeks.'}, 'courseId': {'type': 'string', 'description': 'Course product id from list_courses for this school.'}}, 'additionalProperties': True}, 'description': 'One object per traveller. courseId comes from list_courses.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}, 'accommodationGroupId': {'type': 'string', 'description': 'Accommodation group id from list_accommodations (optional).'}}, 'description': 'Same shape as the Extralingo school-page configurator: startDate (YYYY-MM-DD), students[] with courseId, weeks, optional accommodationGroupId, mealType, extras.', 'additionalProperties': True}, 'idempotencyKey': {'type': 'string', 'description': 'Optional alias of idempotency_key.'}, 'idempotency_key': {'type': 'string', 'description': 'Optional. Same semantics as create_booking (24 hour replay window).'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'kind': {'enum': ['question'], 'type': 'string', 'description': 'Lead type on success.'}, 'message': {'type': 'string', 'description': 'Human-readable confirmation (not a booking confirmation).'}, 'success': {'const': True}, 'redirectUrl': {'type': ['string', 'null'], 'description': 'Extralingo /my URL for the student to follow the request, when available.'}, 'newBookingId': {'type': ['integer', 'null'], 'description': 'Craft newBookings entry id when created.'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'trip_id': {'type': 'string', 'description': 'Optional saved trip id; when set, the quote may be stored on that trip.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'country_code': {'type': 'string', 'examples': ['NL', 'DE'], 'description': 'Visitor country ISO 3166-1 alpha-2 (e.g. NL). Affects fee display where applicable.'}, 'discountCode': {'type': 'string', 'description': 'Optional promotion or discount code.'}, 'configuration': {'type': 'object', 'properties': {'mealType': {'type': 'string', 'description': 'Meal plan key when accommodation is selected.'}, 'students': {'type': 'array', 'items': {'type': 'object', 'properties': {'weeks': {'type': 'integer', 'minimum': 1, 'description': 'Course duration in weeks.'}, 'courseId': {'type': 'string', 'description': 'Course product id from list_courses for this school.'}}, 'additionalProperties': True}, 'description': 'One object per traveller. courseId comes from list_courses.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}, 'accommodationGroupId': {'type': 'string', 'description': 'Accommodation group id from list_accommodations (optional).'}}, 'description': 'Same shape as the Extralingo school-page configurator: startDate (YYYY-MM-DD), students[] with courseId, weeks, optional accommodationGroupId, mealType, extras.', 'additionalProperties': True}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'object', 'description': 'Full pricing breakdown from the booking engine.', 'additionalProperties': True}, 'quote': {'type': 'object', 'description': 'Human-oriented price summary.', 'additionalProperties': True}, 'success': {'const': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'phone': {'type': 'string', 'description': 'Student phone number (required).'}, 'contact': {'type': 'object', 'description': 'Optional first_name, last_name, phone. Email always comes from the verified account; contact.email must match or be omitted.', 'additionalProperties': True}, 'trip_id': {'type': 'string', 'description': 'Optional trip_id from save_trip linking this booking to a draft.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'phoneCountry': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country for the phone (e.g. NL).'}, 'configuration': {'type': 'object', 'properties': {'mealType': {'type': 'string', 'description': 'Meal plan key when accommodation is selected.'}, 'students': {'type': 'array', 'items': {'type': 'object', 'properties': {'weeks': {'type': 'integer', 'minimum': 1, 'description': 'Course duration in weeks.'}, 'courseId': {'type': 'string', 'description': 'Course product id from list_courses for this school.'}}, 'additionalProperties': True}, 'description': 'One object per traveller. courseId comes from list_courses.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}, 'accommodationGroupId': {'type': 'string', 'description': 'Accommodation group id from list_accommodations (optional).'}}, 'description': 'Same shape as the Extralingo school-page configurator: startDate (YYYY-MM-DD), students[] with courseId, weeks, optional accommodationGroupId, mealType, extras.', 'additionalProperties': True}, 'termsAccepted': {'type': 'boolean', 'description': 'Must be true when not using OAuth (OAuth grants record acceptance).'}, 'idempotencyKey': {'type': 'string', 'description': 'Optional alias of idempotency_key.'}, 'studentDetails': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Per-student details aligned with configuration.students (names, dates of birth, etc.).'}, 'idempotency_key': {'type': 'string', 'description': 'Optional. Same key + same payload within 24 hours replays the original response; conflicting payload returns validation_failed.'}, 'privacyAccepted': {'type': 'boolean', 'description': 'Must be true when not using OAuth.'}, 'specialRequests': {'type': 'string', 'description': 'Free-text notes for the school.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'status': {'type': 'string', 'description': 'e.g. awaiting_school_confirmation.'}, 'success': {'const': True}, 'bookingId': {'type': ['integer', 'null'], 'description': 'Craft booking id when returned by the booking engine.'}, 'redirectUrl': {'type': ['string', 'null']}, 'studentMessage': {'type': 'string'}, 'bookingReference': {'type': ['string', 'null']}, 'agent_must_tell_the_user': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'required': ['trip_id'], 'properties': {'email': {'type': 'string', 'description': 'Optional. Must match the verified OAuth account email if sent. The link is always sent to that account.'}, 'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'trip_id': {'type': 'string', 'description': 'trip_id from save_trip.'}, 'lastName': {'type': 'string', 'description': 'Optional salutation for the email body.'}, 'firstName': {'type': 'string', 'description': 'Optional salutation for the email body.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'url': {'type': 'string', 'description': 'Legacy alias of continue_url.'}, 'message': {'type': 'string'}, 'success': {'const': True}, 'trip_id': {'type': 'string'}, 'trip_url': {'type': 'string'}, 'emailed_to': {'type': 'string', 'description': 'Verified account inbox that received the email.'}, 'continue_url': {'type': 'string'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'required': ['group_id'], 'properties': {'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'group_id': {'type': 'string', 'description': 'Accommodation group id from list_accommodations.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'group': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Group id (matches group_id).'}, 'name': {'type': 'string', 'description': 'Display name of the accommodation group.'}, 'distance': {'type': ['string', 'object', 'null'], 'description': 'Distance-to-school summary (string or structured object from the API).', 'additionalProperties': True}, 'location': {'type': 'object', 'description': 'Address, distance_to_school, and travel-time hints.', 'additionalProperties': True}, 'amenities': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Facilities and highlighted amenities.'}, 'occupancy': {'type': 'object', 'description': 'Minimum/maximum age and occupancy limits.', 'additionalProperties': True}, 'group_name': {'type': 'string', 'description': 'Grouped title when room-type grouping is enabled.'}, 'room_types': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Room variants, each with meal_options, stay_length, and week pricing.'}, 'stay_length': {'type': 'object', 'description': 'Minimum and maximum stay in weeks.', 'additionalProperties': True}, 'meal_options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Board/meal plans with pricing_for_requested_weeks when not split by room_types.'}, 'classification': {'type': 'object', 'description': 'Accommodation type, class, and room metadata.', 'additionalProperties': True}}, 'description': 'Accommodation group from GET /v3/accommodations/{id} (v2 grouping): labels, classification, room and meal options, facilities, rules, and pricing hints for the requested start date.', 'additionalProperties': True}, 'success': {'const': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'required': ['course_id', 'school_id'], 'properties': {'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'course_id': {'type': 'string', 'description': 'Course product id from list_courses.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'course': {'type': ['object', 'null'], 'description': 'Single course product with pricing rows and supplements for the requested start date.', 'additionalProperties': True}, 'success': {'const': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'required': ['school_id'], 'properties': {'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'include_hero_image': {'type': 'boolean', 'default': True, 'description': 'When true, structuredContent may include a compressed JPEG in MCP image content; hero_image is stripped from structuredContent after attach.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'object', 'description': 'School profile (title, url, city, country, bookings_live, reviews, images[]).', 'additionalProperties': True}, 'success': {'const': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'object', 'description': 'Facet lists keyed by filter name.', 'additionalProperties': True}, 'success': {'const': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'required': ['trip_id'], 'properties': {'trip_id': {'type': 'string', 'description': 'trip_id returned by save_trip.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'url': {'type': 'string', 'description': 'Legacy alias of continue_url.'}, 'note': {'type': 'string'}, 'success': {'const': True}, 'summary': {'type': 'string', 'description': 'Human-readable configuration summary for agents.'}, 'trip_id': {'type': 'string', 'description': 'Shareable trip id (/s/{id}).'}, 'trip_url': {'type': 'string'}, 'school_id': {'type': 'integer', 'description': 'Craft school entry id.'}, 'school_url': {'type': 'string'}, 'school_name': {'type': 'string'}, 'continue_url': {'type': 'string', 'description': 'Shareable Extralingo URL that restores configuration.'}, 'configuration': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'required': ['school_id'], 'properties': {'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}, 'country_code': {'type': 'string', 'examples': ['NL', 'DE'], 'description': 'Visitor country ISO 3166-1 alpha-2 (e.g. NL). Affects fee display where applicable.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'school': {'type': ['object', 'null'], 'additionalProperties': True}, 'success': {'const': True}, 'currency': {'type': 'string'}, 'start_date': {'type': 'string'}, 'location_discount': {'type': ['object', 'null'], 'additionalProperties': True}, 'busy_school_months': {'type': ['object', 'null'], 'additionalProperties': True}, 'accommodation_groups': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Flat list of accommodation groups (id for get_accommodation_details / configuration).'}, 'has_location_discounts': {'type': 'boolean'}, 'accommodation_categories': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Same groups nested by category for display.'}, 'allows_double_room_individual_bookings': {'type': 'boolean'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'required': ['school_id'], 'properties': {'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}, 'country_code': {'type': 'string', 'examples': ['NL', 'DE'], 'description': 'Visitor country ISO 3166-1 alpha-2 (e.g. NL). Affects fee display where applicable.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'school': {'type': ['object', 'null'], 'description': 'School metadata from the booking API.', 'additionalProperties': True}, 'success': {'const': True}, 'currency': {'type': 'string'}, 'start_date': {'type': 'string', 'description': 'Effective start date used for pricing (YYYY-MM-DD).'}, 'course_types': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Course types with nested courses[] (course ids, weeks, week prices).'}, 'pricing_rule': {'type': ['object', 'null'], 'additionalProperties': True}, 'location_discount': {'type': ['object', 'null'], 'additionalProperties': True}, 'busy_school_months': {'type': ['object', 'null'], 'additionalProperties': True}, 'has_location_discounts': {'type': 'boolean'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'required': ['school_id'], 'properties': {'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'dates': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Bookable course start dates (typically Mondays, YYYY-MM-DD strings).'}, 'success': {'const': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'contact': {'type': 'object', 'description': 'Optional first_name, last_name. Email always comes from the verified account.', 'additionalProperties': True}, 'message': {'type': 'string', 'description': 'Student message to the school.'}, 'trip_id': {'type': 'string', 'description': 'Optional trip_id from save_trip.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'configuration': {'type': 'object', 'properties': {'mealType': {'type': 'string', 'description': 'Meal plan key when accommodation is selected.'}, 'students': {'type': 'array', 'items': {'type': 'object', 'properties': {'weeks': {'type': 'integer', 'minimum': 1, 'description': 'Course duration in weeks.'}, 'courseId': {'type': 'string', 'description': 'Course product id from list_courses for this school.'}}, 'additionalProperties': True}, 'description': 'One object per traveller. courseId comes from list_courses.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}, 'accommodationGroupId': {'type': 'string', 'description': 'Accommodation group id from list_accommodations (optional).'}}, 'description': 'Same shape as the Extralingo school-page configurator: startDate (YYYY-MM-DD), students[] with courseId, weeks, optional accommodationGroupId, mealType, extras.', 'additionalProperties': True}, 'idempotencyKey': {'type': 'string', 'description': 'Optional alias of idempotency_key.'}, 'idempotency_key': {'type': 'string', 'description': 'Optional. Same semantics as create_booking (24 hour replay window).'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'kind': {'enum': ['discussion'], 'type': 'string', 'description': 'Lead type on success.'}, 'message': {'type': 'string', 'description': 'Human-readable confirmation (not a booking confirmation).'}, 'success': {'const': True}, 'redirectUrl': {'type': ['string', 'null'], 'description': 'Extralingo /my URL for the student to follow the request, when available.'}, 'newBookingId': {'type': ['integer', 'null'], 'description': 'Craft newBookings entry id when created.'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'contact': {'type': 'object', 'description': 'Optional first_name, last_name. Email always comes from the verified account.', 'additionalProperties': True}, 'trip_id': {'type': 'string', 'description': 'Optional trip_id from save_trip.'}, 'comments': {'type': 'string', 'description': 'Student message to the school.'}, 'currency': {'type': 'string', 'default': 'EUR', 'examples': ['EUR'], 'description': 'ISO 4217 currency for prices in this call. Usually EUR.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'configuration': {'type': 'object', 'properties': {'mealType': {'type': 'string', 'description': 'Meal plan key when accommodation is selected.'}, 'students': {'type': 'array', 'items': {'type': 'object', 'properties': {'weeks': {'type': 'integer', 'minimum': 1, 'description': 'Course duration in weeks.'}, 'courseId': {'type': 'string', 'description': 'Course product id from list_courses for this school.'}}, 'additionalProperties': True}, 'description': 'One object per traveller. courseId comes from list_courses.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}, 'accommodationGroupId': {'type': 'string', 'description': 'Accommodation group id from list_accommodations (optional).'}}, 'description': 'Same shape as the Extralingo school-page configurator: startDate (YYYY-MM-DD), students[] with courseId, weeks, optional accommodationGroupId, mealType, extras.', 'additionalProperties': True}, 'idempotencyKey': {'type': 'string', 'description': 'Optional alias of idempotency_key.'}, 'idempotency_key': {'type': 'string', 'description': 'Optional. Same semantics as create_booking (24 hour replay window).'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'kind': {'enum': ['quote'], 'type': 'string', 'description': 'Lead type on success.'}, 'message': {'type': 'string', 'description': 'Human-readable confirmation (not a booking confirmation).'}, 'success': {'const': True}, 'redirectUrl': {'type': ['string', 'null'], 'description': 'Extralingo /my URL for the student to follow the request, when available.'}, 'newBookingId': {'type': ['integer', 'null'], 'description': 'Craft newBookings entry id when created.'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'email': {'type': 'string', 'description': 'Optional student email for anonymous drafts. With OAuth, the verified account email is used.'}, 'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'trip_id': {'type': 'string', 'description': 'Omit to create a new trip. Pass an existing trip_id from save_trip to update the same continue_url.'}, 'school_id': {'type': 'integer', 'examples': [12345], 'description': 'Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.'}, 'configuration': {'type': 'object', 'properties': {'mealType': {'type': 'string', 'description': 'Meal plan key when accommodation is selected.'}, 'students': {'type': 'array', 'items': {'type': 'object', 'properties': {'weeks': {'type': 'integer', 'minimum': 1, 'description': 'Course duration in weeks.'}, 'courseId': {'type': 'string', 'description': 'Course product id from list_courses for this school.'}}, 'additionalProperties': True}, 'description': 'One object per traveller. courseId comes from list_courses.'}, 'startDate': {'type': 'string', 'examples': ['2026-09-07'], 'description': 'Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.'}, 'accommodationGroupId': {'type': 'string', 'description': 'Accommodation group id from list_accommodations (optional).'}}, 'description': 'Same shape as the Extralingo school-page configurator: startDate (YYYY-MM-DD), students[] with courseId, weeks, optional accommodationGroupId, mealType, extras.', 'additionalProperties': True}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'url': {'type': 'string', 'description': 'Legacy alias of continue_url.'}, 'note': {'type': 'string'}, 'success': {'const': True}, 'summary': {'type': 'string', 'description': 'Human-readable configuration summary for agents.'}, 'trip_id': {'type': 'string', 'description': 'Shareable trip id (/s/{id}).'}, 'trip_url': {'type': 'string'}, 'school_id': {'type': 'integer', 'description': 'Craft school entry id.'}, 'school_url': {'type': 'string'}, 'school_name': {'type': 'string'}, 'continue_url': {'type': 'string', 'description': 'Shareable Extralingo URL that restores configuration.'}, 'configuration': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1, 'description': 'Maximum results (1–20).'}, 'query': {'type': 'string', 'description': 'Destination or school name prefix. Empty returns popular destinations.'}, 'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'language': {'type': 'string', 'description': 'Optional language slug to restrict destinations (e.g. spanish).'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'hits': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Destination matches.'}, 'query': {'type': 'string'}, 'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string'}, 'schools': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Optional school name fallback hits.'}, 'success': {'const': True}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Single city slug filter. Prefer cities[] for multiple.'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Maximum schools to return (1–20).'}, 'query': {'type': 'string', 'examples': ['Barcelona intensive Spanish'], 'description': 'Free-text search (school name, city, or keyword). Empty returns popular matches for the other filters.'}, 'cities': {'type': 'array', 'items': {'type': 'string', 'description': 'City slug.'}, 'description': 'City slug filters from get_school_filters.'}, 'locale': {'enum': ['en', 'nl', 'da', 'sv'], 'type': 'string', 'examples': ['en', 'nl', 'da', 'sv'], 'description': 'Response language and site context. One of en, nl, da, sv.'}, 'country': {'type': 'string', 'description': 'Country slug or name filter from get_school_filters.'}, 'language': {'type': 'string', 'examples': ['spanish'], 'description': 'Language slug filter from get_school_filters (e.g. spanish, english).'}, 'course_type': {'type': 'string', 'description': 'Course type slug from get_school_filters (e.g. intensive, private).'}}, 'additionalProperties': True}
Esquema de salida
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'object', 'description': 'Meilisearch-style payload with hits[] (school_id, title, url, city, country, pricing hints).', 'additionalProperties': True}, 'success': {'const': True}}, 'additionalProperties': True}
Cambios recientes en herramientas
Servidores MCP similares
Award Travel Finder
Searches award flights and hotels, tracks bookings and loyalty balances, evaluates points and credit cards, and monitors travel r…
Good Turn Studio (all tools)
Offers consumer utilities for insurance claim appeals, subscription cancellation, flight fare research, financial recovery resour…
AI 代理人任務中樞
Aggregates Taiwan-focused tools for AI service comparisons, cryptocurrency data, game information, health guidance, and other con…
Gover MCP
Searches and manages corporate travel requests, flights, hotels, rental vehicles, passengers, carts, approvals, reservations, and…
DC Member API
Provides access to Dynamite Circle membership data, community profiles, chapters, events, trips, calendars, alerts, follows, agen…
Nomad Stays
Searches and books remote-work accommodations while supporting host listing management, rooms, packages, availability, and hospit…
lilo Vacation Rentals
Supports vacation-rental discovery, availability and direct booking, property operations, short-term-rental compliance, guest and…
mcp-server
Provides immigration, citizenship and residency programme research alongside tax, wealth structuring, banking, visa, treaty and c…