이 MCP로 할 수 있는 일
Searches and compares cruise sailings and provides information about fares, price history, cabins, ships, cruise lines, ports, excursions, and travel timing.
도구
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120, 'description': 'A sailing id from searchCruises results, e.g. "carnival-breeze:2026-09-21:5"'}, 'maxItems': 3, 'minItems': 2}, 'cabin': {'type': 'array', 'items': {'enum': ['inside', 'oceanview', 'balcony', 'suite'], 'type': 'string'}, 'maxItems': 4, 'description': 'Cabin types to price: inside, oceanview, balcony, suite. Omit for all.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['place'], 'properties': {'place': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'A port, region or destination, e.g. "Alaska"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ship', 'cabin'], 'properties': {'ship': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Ship name, e.g. "Allure of the Seas"'}, 'cabin': {'type': 'string', 'pattern': '\\d', 'maxLength': 16, 'minLength': 1, 'description': 'Cabin number, e.g. "9318" or "D126"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['line'], 'properties': {'line': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Cruise line name, e.g. "Carnival" or "Seabourn"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['line'], 'properties': {'line': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Cruise line name, e.g. "Royal Caribbean"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cruiseline': {'type': 'string', 'maxLength': 120, 'description': 'Cruise line name; omit for all lines'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['port'], 'properties': {'port': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Port name or slug, e.g. "Cozumel"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['port'], 'properties': {'port': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Port name, e.g. "Cozumel"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 120, 'description': 'A sailing id from searchCruises results, e.g. "carnival-breeze:2026-09-21:5"'}, 'cabin': {'type': 'array', 'items': {'enum': ['inside', 'oceanview', 'balcony', 'suite'], 'type': 'string'}, 'maxItems': 4, 'description': 'Cabin types to price: inside, oceanview, balcony, suite. Omit for all.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ship'], 'properties': {'ship': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Ship name, e.g. "Voyager of the Seas"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ship'], 'properties': {'ship': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Ship name, e.g. "Carnival Breeze"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cabin': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'default': [], 'maxItems': 10, 'description': 'Cabin-type keys, lowercase, from exactly: "inside", "oceanview", "balcony", "suite". Multiple values are OR-ed. Do not use any other spelling or capitalization (e.g. not "Suite") — unrecognised values are rejected.'}, 'ports': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'default': [], 'maxItems': 10, 'description': 'Ports of call, exact catalogue names. OR-ed together. The tool resolves each against the real catalogue and returns suggestions for any name it does not recognise.'}, 'price': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'INSIDE-CABIN TOTAL price for the whole cruise, per person, in whole US dollars, as a colon-delimited INCLUSIVE range "lo:hi", e.g. "100:900" for $100 to $900. Open-ended ranges are allowed: "500:" or ":1500". Use this for a total budget ("under $1,500"); for a budget stated per day / per night use `pricePerNight` instead. Always the inside-cabin price, never other cabin types. Do NOT pass a bare number or a hyphenated range. null means no constraint.'}, 'ships': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'default': [], 'maxItems': 10, 'description': 'Ship names, exact catalogue values. OR-ed together. The tool resolves each against the real catalogue and returns suggestions for any name it does not recognise.'}, 'vibes': {'type': 'array', 'items': {'enum': ['relaxing', 'adventure', 'nature', 'shopping'], 'type': 'string'}, 'default': [], 'maxItems': 10, 'description': 'Itinerary character, from exactly: "relaxing", "adventure", "nature", "shopping". OR-ed together. Map only what the user says ("a relaxing beach week" -> ["relaxing"]; "scenery and wildlife" -> ["nature"]); never infer a vibe from a destination. Empty array means no constraint.'}, 'family': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'Family-suitability of the SHIP as a colon-delimited INCLUSIVE range "lo:hi" over a 0-100 score. "Family", "with the kids", "teens", "multi-generational" -> "60:"; "adults only", "couples retreat", "no kids", "quiet ship" -> ":40". Never quote the score to the user. Do NOT pass a bare number or a hyphenated range. null means no constraint.'}, 'nights': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'Cruise length as a colon-delimited INCLUSIVE range "lo:hi", e.g. "7:7" for exactly 7 nights, "5:9" for 5 to 9 nights. Open-ended ranges are allowed: "5:" (5+ nights) or ":9" (up to 9 nights). Do NOT pass a bare number like "7" and do NOT use a hyphen like "5-9" — both are invalid and the filter will be rejected. null means no constraint.'}, 'safety': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'Safety score as a colon-delimited INCLUSIVE range "lo:hi" over a 0-100 scale, e.g. "80:100" for safety score 80 and up. Open-ended ranges are allowed: "80:" or ":50". Do NOT pass a bare number or a hyphenated range. null means no constraint.'}, 'endDate': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'Latest sail date, as "YYYY-MM-DD" (e.g. "2027-06-30"). null means no upper bound.'}, 'regions': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'default': [], 'maxItems': 10, 'description': 'Sub-region names, exact catalogue values (e.g. "Eastern Caribbean", "Western Mediterranean"). OR-ed together. The tool resolves each against the real catalogue and returns suggestions for any name it does not recognise — it is not case-sensitive but must be a real region.'}, 'lineType': {'type': 'array', 'items': {'enum': ['mainstream', 'premium', 'luxury', 'river'], 'type': 'string'}, 'default': [], 'maxItems': 10, 'description': 'Cruise-line tier, from exactly: "mainstream", "premium", "luxury", "river". OR-ed together. Use for "luxury cruise", "something upscale", "the big mainstream lines". A NAMED line ("Seabourn") goes in `cruiselines`, never here — this field is for when no line is named. Empty array means no constraint.'}, 'shipSize': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'Ship size as PASSENGER CAPACITY (number of guests), as a colon-delimited INCLUSIVE range "lo:hi". Map words to these bands: "small ship" / "intimate" / "boutique" / "not a floating city" -> ":1500"; "mid-size" -> "1500:3000"; "big ship" / "mega-ship" / "lots to do on board" -> "3000:". A stated number works too: "under 1,000 passengers" -> ":1000". The fleet runs 100 to 7,600 guests. Open-ended ranges are allowed. Do NOT pass a bare number or a hyphenated range. null means no constraint.'}, 'shipYear': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'Year the ship was BUILT, as a colon-delimited INCLUSIVE range "lo:hi", e.g. "2015:" for ships built in 2015 or later — this is how to answer "a newer ship". The catalogue spans 1998-2024. Open-ended ranges are allowed: "2015:" or ":2005". Note this is the build year, NOT the sail year — for when the cruise departs use startDate/endDate. Do NOT pass a bare number or a hyphenated range. null means no constraint.'}, 'startDate': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'Earliest sail date, as "YYYY-MM-DD" (e.g. "2027-03-01"). null means no lower bound.'}, 'tripShape': {'anyOf': [{'enum': ['round_trip', 'one_way'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Whether the cruise returns to where it started. "round_trip" for sailings that end at their departure port — use this when someone does not want to book two flights. "one_way" for sailings that end somewhere else, which includes repositioning cruises. Exactly those two strings; null means no constraint. About one in five sailings is one-way.'}, 'cruiselines': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'default': [], 'maxItems': 10, 'description': 'Cruise line names, exact catalogue values (e.g. "Carnival Cruise Line", not "Carnival"). OR-ed together. The tool resolves each against the real catalogue and returns suggestions for any name it does not recognise.'}, 'destination': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'A single top-level region name, exact catalogue value (e.g. "Caribbean", "Europe", "Alaska") — NOT a sub-region like "Mediterranean" or "Eastern Caribbean" (those go in `regions`). Must be a real catalogue value; the tool returns suggestions if it is not recognised. null means no constraint.'}, 'departureDays': {'type': 'array', 'items': {'enum': ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'], 'type': 'string'}, 'default': [], 'maxItems': 10, 'description': 'Weekday the cruise departs, from exactly: "mon", "tue", "wed", "thu", "fri", "sat", "sun". OR-ed together. "Weekend getaway" / "leave on the weekend" -> ["fri","sat"], and set `nights` to ":4" unless the user gave a length. A named day ("sails on a Saturday") -> that day. A short cruise on its own never implies a weekend. Empty array means no constraint.'}, 'pricePerNight': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None, 'description': 'INSIDE-CABIN price PER NIGHT, per person, in whole US dollars, as a colon-delimited INCLUSIVE range "lo:hi" — e.g. ":100" for "under $100 a day", "80:120" for $80 to $120 a night. Use this whenever the user states a budget per day, per night or per person per day; use `price` for a total. Divide nothing yourself — pass the per-night figure the user said. Do NOT pass a bare number or a hyphenated range. null means no constraint.'}, 'departurePorts': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'default': [], 'maxItems': 10, 'description': 'Departure/embarkation port names, exact catalogue values. OR-ed together. The tool resolves each against the real catalogue and returns suggestions for any name it does not recognise.'}}, 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
Award Travel Finder
Searches award flights and hotels, tracks bookings and loyalty balances, evaluates points and credit cards, and monitors travel r…
AI 代理人任務中樞
Aggregates Taiwan-focused tools for AI service comparisons, cryptocurrency data, game information, health guidance, and other con…
Good Turn Studio (all tools)
Offers consumer utilities for insurance claim appeals, subscription cancellation, flight fare research, financial recovery resour…
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…