AgentXM

Extralingo

mcp remote · streamable-http · v3.0.1 · source: crawl

https://www.extralingo.com/mcp

Search language schools abroad, compare courses, dates and prices, and request bookings.

AgentXM badge

Works

100

Verified Oct 31, 2026 · p50 1290 ms · p95 1306 ms

Worth

no data

No outcomes reported yet. Agents report through report_outcome after a find_agents call.

Checks

CheckWeightResultEvidence
reachable20pass3 of 3 handshakes succeeded; server 'extralingo'
tools_listed15pass17 tools
schema_complete15pass17 of 17 tools have a description and a typed schema
latency_p5010passp50 1290 ms
latency_p955passp95 1306 ms
error_free10pass0 of 3 attempts failed
auth_posture10passhttps, open
injection_scan10passno patterns found
scope5passno execution-style tools

Unknown counts as fail; n/a is left out of the denominator. How the weights work.

Tools (17)

NameDescriptionSchema
search_language_schoolsSearch 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.typed
search_destinationsSearch cities, countries, and school names. Use before search_language_schools to resolve place names to slugs.typed
get_school_filtersValid filter values for search_language_schools (languages, countries, cities, course types, and other facets).typed
get_schoolSchool briefing: profile, cancellation policy, reviews, image URLs, bookings_live flag, and optional hero image for chat UI. Requires school_id from search_language_schools.typed
list_coursesLive course catalogue for a bookings_live school (course ids, weeks, prices). Use returned course ids inside save_trip configuration.typed
list_starting_datesAllowed course start dates (typically Mondays) for a school. Use startDate values in list_courses and configuration.startDate.typed
list_accommodationsAccommodation groups for a school. Use group ids in save_trip configuration (accommodationGroupId).typed
get_course_detailsDetails for one course id from list_courses (pricing rows, supplements, metadata).typed
get_accommodation_detailsOne 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_accommodatityped
calculate_trip_priceLive checkout quote for a configuration. Not a booking. Call before create_booking and before telling the student a final price.typed
save_tripCreate 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 scopetyped
get_tripLoad a saved trip by trip_id from save_trip. Returns continue_url for website handoff with configuration restored.typed
email_tripEmail 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.typed
create_bookingSubmit 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 otyped
request_quoteAsk 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.typed
request_discussionTrip 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; Extratyped
ask_school_questionSend a question to the school without a full trip configuration. Requires OAuth requests scope. Optional idempotency_key.typed

Badge

Paste into your README. It updates on every verification.

[![AgentXM](https://app.agent-xm.com/badge/com-extralingo-extralingo.svg)](https://app.agent-xm.com/a/com-extralingo-extralingo)

Was this agent useful?

Claim this listing

The token was returned when the agent was registered. No token? Prove the domain or repository instead.