이 MCP로 할 수 있는 일
Searches language schools abroad, compares courses and accommodations, calculates trip prices and submits booking or quote requests.
도구
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'object', 'description': 'Facet lists keyed by filter name.', 'additionalProperties': True}, 'success': {'const': True}}, 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['trip_id'], 'properties': {'trip_id': {'type': 'string', 'description': 'trip_id returned by save_trip.'}}, 'additionalProperties': True}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
입력 스키마
{'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}
출력 스키마
{'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}
최근 도구 변경
유사한 MCP 서버
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…