mcp-server
Ce que fait ce MCP
Searches vacation rentals with availability and pricing, provides property details and reviews, and supports shortlists and booking links.
Outils
Schéma d’entrée
{'type': 'object', 'required': ['propertySlugs'], 'properties': {'guests': {'type': 'number', 'description': 'Number of guests'}, 'checkIn': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Check-in date for live pricing'}, 'context': {'type': 'string', 'description': 'Optional: the guest\'s needs/criteria behind these picks (e.g., "Best options for a family of 6 with dogs in Vermont"). Used by the backend as a search/personalization hint — recorded on the guest\'s journey so the property manager sees what the guest is looking for. Not displayed to the guest.'}, 'checkOut': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Check-out date for live pricing'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}, 'propertySlugs': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'Ordered array of property slugs to present. The carousel preserves this order. Max 10.'}, 'semanticFilters': {'type': 'object', 'properties': {'required': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Natural-language must-haves. Every returned property must have listing, policy, amenity, or review evidence for each criterion; never infer a match from missing data.'}, 'requested': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Natural-language preferences used as soft ranking signals. A property may still be returned when one or more requested preferences are not evidenced.'}}, 'description': 'Reserved optional evidence-backed semantic criteria that complement the explicit location, date, capacity, pet, property-type, and budget filters. Put true must-haves in `required`; put preferences that should improve ranking without excluding otherwise valid stays in `requested`. Until server instructions announce that semantic matching is enabled, omit this field.', 'additionalProperties': False}}}
Schéma de sortie
{'type': 'object', 'required': ['success', 'type', 'collection', 'propertyPicks'], 'properties': {'type': {'type': 'string', 'description': 'Widget type discriminator (discoverVrm).'}, 'dates': {'type': 'object', 'properties': {'checkIn': {'type': 'string'}, 'checkOut': {'type': 'string'}}}, 'guests': {'type': 'number', 'description': 'Echo of the applied party size (widget header seed).'}, 'reviews': {'type': ['object', 'null'], 'properties': {'count': {'type': 'number'}, 'averageRating': {'type': ['number', 'null']}}}, 'success': {'type': 'boolean'}, 'collection': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}}, 'llmContext': {'type': 'string', 'description': 'Echo of the input `context` (search/personalization hint). Carried in widget state for refresh continuity; not rendered to the guest.'}, 'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'logoUrl': {'type': ['string', 'null']}, 'website': {'type': ['string', 'null']}, 'location': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'reviewCount': {'type': ['number', 'null']}, 'averageRating': {'type': ['number', 'null']}, 'propertyCount': {'type': ['number', 'null']}}}, 'description': 'Manager branding and aggregate context for collection filter cards.'}, 'propertyPicks': {'type': 'object', 'required': ['items', 'totalMatching'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'webUrl': {'type': ['string', 'null']}, 'pricing': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'nights': {'type': 'number'}, 'currency': {'type': 'string'}, 'available': {'type': 'boolean'}, 'avgNightly': {'type': 'number'}, 'taxFeeNotes': {'type': ['string', 'null']}, 'feeBreakdown': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'isTax': {'type': 'boolean'}, 'amount': {'type': 'number'}}}}, 'totalIncludesEstimatedTax': {'type': 'boolean'}}}, 'tagline': {'type': ['string', 'null']}, 'bedrooms': {'type': ['number', 'null']}, 'distance': {'type': 'object', 'properties': {'unit': {'type': 'string'}, 'value': {'type': 'number'}}}, 'latitude': {'type': ['number', 'null']}, 'location': {'type': ['string', 'null']}, 'bathrooms': {'type': ['number', 'null']}, 'longitude': {'type': ['number', 'null']}, 'maxGuests': {'type': ['number', 'null']}, 'bookingUrl': {'type': ['string', 'null']}, 'cardImages': {'type': ['array', 'null'], 'items': {'type': 'string'}}, 'highlights': {'type': ['array', 'null'], 'items': {'type': 'string'}}, 'quoteToken': {'type': ['string', 'null']}, 'anchorPrice': {'type': 'object', 'properties': {'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'currency': {'type': 'string'}}}, 'petsAllowed': {'type': ['boolean', 'null']}, 'heroImageUrl': {'type': ['string', 'null']}, 'propertyType': {'type': ['string', 'null']}, 'memberPricing': {'type': 'object', 'required': ['currency'], 'properties': {'total': {'type': 'number'}, 'nightly': {'type': 'number'}, 'currency': {'type': 'string'}}, 'description': 'Optional authenticated-member pricing. Omitted for anonymous guests and whenever the manager does not offer a member rate.'}, 'collectionSlug': {'type': ['string', 'null']}}}}, 'totalMatching': {'type': 'number'}}}, 'bookingBaseUrl': {'type': 'string', 'description': 'Base URL for booking redirects.'}, 'multiCollection': {'type': 'boolean', 'description': 'True when the carousel contains properties from multiple managers.'}, 'semanticFiltering': {'type': 'object', 'required': ['required', 'requested', 'description'], 'properties': {'required': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Hard semantic criteria that were applied to the result set.'}, 'requested': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Soft semantic preferences that were used to rank the result set.'}, 'description': {'type': 'string', 'description': 'Concise evidence-grounded explanation of how required and requested criteria affected filtering and ranking, including any evidence limitations.'}}, 'description': 'Optional semantic-filtering summary. Omitted until semantic matching is enabled and the criteria have actually been evaluated.'}, 'suggestedFollowUps': {'type': 'array', 'items': {'type': 'string'}}, 'appliedSearchParams': {'type': 'object', 'description': 'Optional echo of the structured and semantic search criteria used to produce these picks, for widget refresh continuity.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'neLat': {'type': 'number', 'description': 'BOUNDS MODE: Northeast corner latitude. Required with swLat.'}, 'neLng': {'type': 'number', 'description': 'BOUNDS MODE: Northeast corner longitude. Required with swLat.'}, 'swLat': {'type': 'number', 'description': 'BOUNDS MODE: Southwest corner latitude. Use bounding box for geographic regions like coastlines, mountain ranges, lake shores, or any area that is not a single point. Example: Oregon coast → swLat=42.0, swLng=-124.8, neLat=46.3, neLng=-123.5.'}, 'swLng': {'type': 'number', 'description': 'BOUNDS MODE: Southwest corner longitude. Required with swLat.'}, 'guests': {'type': 'number', 'description': 'Number of guests'}, 'offset': {'type': 'number', 'description': 'Skip this many results (for pagination / load-more). Default 0.'}, 'region': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by state or region name (e.g., ["Vermont"], ["Vermont", "New Hampshire"]). Case-insensitive. Use this instead of bounding box when a guest asks for a specific state.'}, 'sleeps': {'type': 'number', 'description': 'Minimum sleeping capacity required (filters properties that sleep at least this many)'}, 'checkIn': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Check-in date (YYYY-MM-DD)'}, 'country': {'type': 'string', 'description': 'Filter by ISO 3166-1 alpha-2 country code (e.g., "US"). Rarely needed since collections are typically in one country.'}, 'feature': {'type': 'string', 'description': 'Soft ranking signal — boost properties with a guest-confirmed feature. Does NOT hard-filter. Example values: "mountain_views", "spotless_clean", "amazing_host", "cozy", "beachfront", "stocked_kitchen", "quiet_peaceful".'}, 'nearLat': {'type': 'number', 'description': 'POINT MODE: Latitude to search near (e.g. 35.789). Use for specific places like a town, address, or landmark. Resolve place names to coordinates before calling. For broad areas (coastlines, mountain ranges), use bounding box (swLat/neLat) instead.'}, 'nearLng': {'type': 'number', 'description': 'POINT MODE: Longitude to search near (e.g. -83.534). Required when nearLat is provided.'}, 'persona': {'type': 'string', 'description': 'Soft ranking signal — boost properties popular with a guest persona. Does NOT hard-filter. Example values: "hiking", "young_family", "romantic", "pet_owners", "fishing", "honeymoon", "luxury", "foodie".'}, 'bedrooms': {'type': 'number', 'description': 'Minimum bedrooms needed'}, 'checkOut': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Check-out date (YYYY-MM-DD)'}, 'locality': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by city or town name (e.g., ["Stowe"], ["Seaside", "Cannon Beach"]). Case-insensitive. Use instead of geo when a guest asks for a specific town.'}, 'nearUnit': {'enum': ['miles', 'kilometers'], 'type': 'string', 'description': 'Unit for nearRadius and distance values. Default "miles".'}, 'nearRadius': {'type': 'number', 'description': 'POINT MODE: Max distance from the nearLat/nearLng point in nearUnit. Default 25 miles. Use 50+ for broad areas.'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}, 'preferences': {'type': 'string', 'description': 'Free text preferences (e.g., "hot tub, mountain view")'}, 'petsRequired': {'type': 'boolean', 'description': 'Whether guest needs pet-friendly property'}, 'maxProperties': {'type': 'number', 'description': 'Max property picks to return. Default 5.'}, 'propertySlugs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'REPRICE / REHYDRATE mode (the carousel widget\'s date-change refresh). When set, return EXACTLY these properties re-priced for the dates, in this order — dropping any now unavailable for the dates and backfilling with the next-best similar available properties so the set keeps its size ("same or slightly expanded"). Lets a curated/merged carousel re-price across new dates without re-searching. Overrides offset/limit pagination.'}, 'propertyTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Property type(s). The coarse family (house vs apartment) is the only hard filter; a specific subtype (e.g. "cabin", "a-frame") returns its whole family with that subtype boosted — cross-manager interleaving may still rank other family members above it; never zero results.'}, 'semanticFilters': {'type': 'object', 'properties': {'required': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Natural-language must-haves. Every returned property must have listing, policy, amenity, or review evidence for each criterion; never infer a match from missing data.'}, 'requested': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Natural-language preferences used as soft ranking signals. A property may still be returned when one or more requested preferences are not evidenced.'}}, 'description': 'Reserved optional evidence-backed semantic criteria that complement the explicit location, date, capacity, pet, property-type, and budget filters. Put true must-haves in `required`; put preferences that should improve ranking without excluding otherwise valid stays in `requested`. Until server instructions announce that semantic matching is enabled, omit this field.', 'additionalProperties': False}, 'budgetMaxPerNight': {'type': 'number', 'description': 'Max nightly budget in major currency units'}}}
Schéma de sortie
{'type': 'object', 'required': ['success', 'type', 'collection', 'propertyPicks', 'suggestedFollowUps'], 'properties': {'type': {'type': 'string', 'description': 'Widget type discriminator (discoverVrm).'}, 'dates': {'type': 'object', 'properties': {'checkIn': {'type': 'string'}, 'checkOut': {'type': 'string'}}}, 'guests': {'type': 'number', 'description': 'Echo of the applied party size (widget header seed).'}, 'reviews': {'type': ['object', 'null'], 'properties': {'count': {'type': 'number'}, 'averageRating': {'type': ['number', 'null']}}}, 'success': {'type': 'boolean'}, 'collection': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}}, 'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'logoUrl': {'type': ['string', 'null']}, 'website': {'type': ['string', 'null']}, 'location': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'reviewCount': {'type': ['number', 'null']}, 'averageRating': {'type': ['number', 'null']}, 'propertyCount': {'type': ['number', 'null']}}}, 'description': 'Manager branding and aggregate context for collection filter cards.'}, 'propertyPicks': {'type': 'object', 'required': ['items', 'totalMatching'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'webUrl': {'type': ['string', 'null']}, 'pricing': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'nights': {'type': 'number'}, 'currency': {'type': 'string'}, 'available': {'type': 'boolean'}, 'avgNightly': {'type': 'number'}, 'taxFeeNotes': {'type': ['string', 'null']}, 'feeBreakdown': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'isTax': {'type': 'boolean'}, 'amount': {'type': 'number'}}}}, 'totalIncludesEstimatedTax': {'type': 'boolean'}}}, 'tagline': {'type': ['string', 'null']}, 'bedrooms': {'type': ['number', 'null']}, 'distance': {'type': 'object', 'properties': {'unit': {'type': 'string'}, 'value': {'type': 'number'}}}, 'latitude': {'type': ['number', 'null']}, 'location': {'type': ['string', 'null']}, 'bathrooms': {'type': ['number', 'null']}, 'longitude': {'type': ['number', 'null']}, 'maxGuests': {'type': ['number', 'null']}, 'bookingUrl': {'type': ['string', 'null']}, 'cardImages': {'type': ['array', 'null'], 'items': {'type': 'string'}}, 'highlights': {'type': ['array', 'null'], 'items': {'type': 'string'}}, 'quoteToken': {'type': ['string', 'null']}, 'anchorPrice': {'type': 'object', 'properties': {'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'currency': {'type': 'string'}}}, 'petsAllowed': {'type': ['boolean', 'null']}, 'heroImageUrl': {'type': ['string', 'null']}, 'propertyType': {'type': ['string', 'null']}, 'memberPricing': {'type': 'object', 'required': ['currency'], 'properties': {'total': {'type': 'number'}, 'nightly': {'type': 'number'}, 'currency': {'type': 'string'}}, 'description': 'Optional authenticated-member pricing. Omitted for anonymous guests and whenever the manager does not offer a member rate.'}, 'collectionSlug': {'type': ['string', 'null']}}}}, 'totalMatching': {'type': 'number'}}}, 'bookingBaseUrl': {'type': 'string'}, 'multiCollection': {'type': 'boolean', 'description': 'True when the carousel contains properties from multiple managers.'}, 'semanticFiltering': {'type': 'object', 'required': ['required', 'requested', 'description'], 'properties': {'required': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Hard semantic criteria that were applied to the result set.'}, 'requested': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Soft semantic preferences that were used to rank the result set.'}, 'description': {'type': 'string', 'description': 'Concise evidence-grounded explanation of how required and requested criteria affected filtering and ranking, including any evidence limitations.'}}, 'description': 'Optional semantic-filtering summary. Omitted until semantic matching is enabled and the criteria have actually been evaluated.'}, 'suggestedFollowUps': {'type': 'array', 'items': {'type': 'string'}}, 'appliedSearchParams': {'type': 'object', 'description': 'Echo of the search filters that were applied for widget round-trips.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['propertySlug'], 'properties': {'checkIn': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Check-in date for pricing'}, 'checkOut': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Check-out date for pricing'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}, 'propertySlug': {'type': 'string', 'description': 'Slug of the vacation rental property'}}}
Schéma de sortie
{'type': 'object', 'required': ['type', 'property'], 'properties': {'type': {'type': 'string', 'description': 'Always "vrDetail".'}, 'reviews': {'type': 'object', 'properties': {'count': {'type': 'number'}, 'recent': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': ['string', 'null']}, 'text': {'type': ['string', 'null']}, 'rating': {'type': ['number', 'null']}, 'channel': {'type': ['string', 'null']}, 'reviewer': {'type': ['string', 'null']}}}}, 'averageRating': {'type': ['number', 'null']}}}, 'property': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'pricing': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'nights': {'type': 'number'}, 'currency': {'type': 'string'}, 'available': {'type': 'boolean'}, 'avgNightly': {'type': 'number'}}}, 'tagline': {'type': ['string', 'null']}, 'bedrooms': {'type': ['number', 'null']}, 'location': {'type': 'string'}, 'policies': {'type': 'object', 'properties': {'minimumAge': {'type': ['number', 'null']}, 'quietHours': {'type': ['object', 'null'], 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}}}, 'maximumStay': {'type': ['number', 'null']}, 'minimumStay': {'type': ['number', 'null']}, 'petsAllowed': {'type': ['boolean', 'null']}, 'smokingAllowed': {'type': ['boolean', 'null']}, 'additionalRules': {'type': ['string', 'null']}, 'petPolicyDetail': {'type': ['string', 'null']}, 'earlyCheckInTime': {'type': ['string', 'null']}, 'lateCheckOutTime': {'type': ['string', 'null']}, 'suitableForEvents': {'type': ['boolean', 'null']}, 'suitableForInfants': {'type': ['boolean', 'null']}, 'suitableForChildren': {'type': ['boolean', 'null']}}}, 'bathrooms': {'type': ['number', 'null']}, 'maxGuests': {'type': ['number', 'null']}, 'description': {'type': ['string', 'null']}, 'topFeatures': {'type': 'array', 'items': {'type': 'string'}}, 'topPersonas': {'type': 'array', 'items': {'type': 'string'}}, 'propertyType': {'type': ['string', 'null']}, 'shortSummary': {'type': ['string', 'null']}, 'memberPricing': {'type': 'object', 'required': ['currency'], 'properties': {'total': {'type': 'number'}, 'nightly': {'type': 'number'}, 'currency': {'type': 'string'}}, 'description': 'Optional authenticated-member pricing. Omitted for anonymous guests and whenever the manager does not offer a member rate.'}}}, 'detailUrl': {'type': 'string'}, 'membership': {'type': 'object', 'required': ['available', 'url'], 'properties': {'url': {'type': 'string', 'description': 'Manager-owned membership page URL, capable of carrying kid_sid.'}, 'perks': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Manager-authored membership benefit lines.'}, 'available': {'type': 'boolean'}, 'programName': {'type': 'string'}, 'memberRatesEnabled': {'type': 'boolean'}}, 'description': 'Optional collection membership metadata. Anonymous responses may expose availability, but member pricing is populated only for authenticated guests.'}, 'similarAvailable': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'bedrooms': {'type': ['number', 'null']}, 'currency': {'type': 'string'}, 'location': {'type': ['string', 'null']}, 'avgNightly': {'type': ['number', 'null']}, 'petsAllowed': {'type': ['boolean', 'null']}, 'propertyType': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}, 'distanceMiles': {'type': ['number', 'null']}, 'collectionSlug': {'type': ['string', 'null']}}}, 'description': 'Nearest collection siblings that ARE available for the requested dates.'}, 'alternateDateWindows': {'type': 'array', 'items': {'type': 'object', 'properties': {'total': {'type': ['number', 'null']}, 'nights': {'type': 'number'}, 'checkIn': {'type': 'string'}, 'checkOut': {'type': 'string'}, 'currency': {'type': 'string'}, 'avgNightly': {'type': ['number', 'null']}}}, 'description': 'Nearest bookable windows for THIS property when the requested dates are unavailable.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'sort': {'enum': ['newest', 'oldest', 'highest', 'lowest'], 'type': 'string', 'description': 'How to sort reviews (default newest).'}, 'limit': {'type': 'number', 'description': 'Number of reviews to return (default 5, max 20).'}, 'offset': {'type': 'number', 'description': 'Number of reviews to skip for pagination (default 0).'}, 'season': {'enum': ['winter', 'spring', 'summer', 'fall'], 'type': 'string', 'description': 'Filter to reviews from a specific season.'}, 'persona': {'type': 'string', 'description': 'Filter to reviews from a guest persona type (e.g. "family", "couples", "solo").'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}, 'propertySlug': {'type': 'string', 'description': 'Slug of the specific property to get reviews for. If omitted, returns collection-level reviews.'}}}
Schéma de sortie
{'type': 'object', 'required': ['success', 'type', 'scope', 'summary', 'reviews', 'pagination'], 'properties': {'type': {'type': 'string', 'description': 'Always "vrReviews".'}, 'scope': {'enum': ['property', 'collection'], 'type': 'string'}, 'reviews': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': ['string', 'null']}, 'text': {'type': ['string', 'null']}, 'rating': {'type': ['number', 'null']}, 'channel': {'type': ['string', 'null']}, 'propertyName': {'type': 'string'}, 'propertySlug': {'type': 'string'}, 'reviewerName': {'type': 'string'}}}}, 'success': {'type': 'boolean'}, 'summary': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'byCategory': {'type': 'object'}, 'averageRating': {'type': ['number', 'null']}}}, 'scopeSlug': {'type': 'string'}, 'collection': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}}, 'pagination': {'type': 'object', 'required': ['total', 'limit', 'offset', 'hasMore'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}}}}}
Schéma d’entrée
{'type': 'object', 'required': ['propertySlug'], 'properties': {'guests': {'type': 'number', 'description': 'Number of guests'}, 'checkIn': {'type': 'string', 'description': 'Check-in date (YYYY-MM-DD)'}, 'checkOut': {'type': 'string', 'description': 'Check-out date (YYYY-MM-DD)'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}, 'propertySlug': {'type': 'string', 'description': 'Slug of the vacation rental'}}}
Schéma de sortie
{'type': 'object', 'required': ['type', 'propertySlug', 'bookingUrl'], 'properties': {'type': {'type': 'string', 'description': 'Always "bookingLinkVrm".'}, 'bookingUrl': {'type': 'string', 'description': 'URL the guest can follow to book.'}, 'propertySlug': {'type': 'string'}, 'datesRejected': {'type': 'boolean', 'description': "True when the requested dates violate the property's booking rules; bookingUrl is then the undated property page."}, 'rejectionReason': {'type': 'string', 'description': 'Why the requested stay is not bookable (only when datesRejected).'}, 'alternateDateWindows': {'type': 'array', 'items': {'type': 'object', 'required': ['checkIn', 'checkOut'], 'properties': {'checkIn': {'type': 'string'}, 'checkOut': {'type': 'string'}}}, 'description': 'Up to three nearest bookable windows of the same length (only when datesRejected).'}}}
Schéma d’entrée
{'type': 'object', 'required': ['section'], 'properties': {'limit': {'type': 'number', 'description': 'Max items for reviews. Default 10.'}, 'offset': {'type': 'number', 'description': 'Pagination offset'}, 'section': {'enum': ['about', 'reviews'], 'type': 'string', 'description': 'Content section'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}}}
Schéma de sortie
{'type': 'object', 'required': ['type', 'section'], 'properties': {'data': {'type': 'object', 'properties': {'url': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}}, 'description': 'Collection metadata for the "about" section.'}, 'type': {'type': 'string', 'description': 'Always "vrmContent".'}, 'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'reviews': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': ['string', 'null']}, 'text': {'type': ['string', 'null']}, 'rating': {'type': ['number', 'null']}, 'channel': {'type': ['string', 'null']}, 'property': {'type': ['string', 'null']}, 'reviewer': {'type': ['string', 'null']}, 'propertySlug': {'type': ['string', 'null']}}}}, 'section': {'enum': ['about', 'reviews'], 'type': 'string'}, 'summary': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'averageRating': {'type': ['number', 'null']}}, 'description': 'Review aggregates for the "reviews" section.'}, 'membership': {'type': 'object', 'required': ['available', 'url'], 'properties': {'url': {'type': 'string', 'description': 'Manager-owned membership page URL, capable of carrying kid_sid.'}, 'perks': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Manager-authored membership benefit lines.'}, 'available': {'type': 'boolean'}, 'programName': {'type': 'string'}, 'memberRatesEnabled': {'type': 'boolean'}}, 'description': 'Optional collection membership metadata. Anonymous responses may expose availability, but member pricing is populated only for authenticated guests.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['auth_state', 'identity', 'account_status', 'activity_summary'], 'properties': {'identity': {'type': 'object', 'properties': {'timezone': {'type': ['string', 'null']}, 'first_name': {'type': ['string', 'null']}, 'email_on_file': {'type': 'boolean'}, 'phone_on_file': {'type': 'boolean'}, 'email_verified': {'type': ['boolean', 'null']}, 'phone_verified': {'type': ['boolean', 'null']}, 'preferred_language': {'type': ['string', 'null']}}}, 'auth_state': {'enum': ['authenticated', 'anonymous'], 'type': 'string', 'description': "When 'anonymous', identity flags are false/null. If the user is asking about THEIR personal data, offer to call sign_in."}, 'collections': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'stays': {'type': 'array', 'items': {'type': 'object', 'properties': {'nights': {'type': 'number'}, 'status': {'type': 'string'}, 'check_in': {'type': 'string'}, 'upcoming': {'type': 'boolean', 'description': 'True if check_out is in the future (an upcoming trip, not a past stay). Canceled bookings are excluded entirely.'}, 'check_out': {'type': 'string'}, 'property_name': {'type': 'string'}, 'property_slug': {'type': 'string'}}}}, 'bookings': {'type': 'number'}, 'last_check_out': {'type': ['string', 'null']}}}, 'description': "Per-collection itemized stay history. Each entry's `stays` array lists the guest's bookings at that collection (property name + slug, check-in/out, nights, status). Use to answer 'my past stays with <collection>'. Empty when anonymous."}, 'memberships': {'type': 'array', 'items': {'type': 'object', 'properties': {'tier': {'type': ['string', 'null']}, 'status': {'type': 'string', 'description': 'ACTIVE | CANCELED'}, 'member_since': {'type': ['string', 'null']}, 'collection_name': {'type': 'string'}, 'collection_slug': {'type': 'string'}}}, 'description': "The guest's Insider memberships — the collections they belong to (with status, tier, and member-since). Empty when anonymous or not a member of any. Use it to tell the guest which collections they're an Insider member of."}, 'preferences': {'type': 'object', 'properties': {'currency': {'type': ['string', 'null']}, 'accessibility_needs': {'type': 'array', 'items': {'type': 'string'}}, 'saved_search_filters': {}, 'group_profile_default': {}}}, 'communication': {'type': 'object', 'properties': {'marketing_opt_in': {'type': 'boolean'}, 'transactional_opt_in': {'type': 'boolean'}, 'reply_channel_preferred': {'type': ['string', 'null']}, 'reply_channels_available': {'type': 'array', 'items': {'type': 'string'}}}}, 'account_status': {'type': 'object', 'properties': {'kismet_tier': {'type': ['string', 'null']}, 'member_since': {'type': ['string', 'null']}, 'identity_source': {'type': ['string', 'null']}, 'payment_provider': {'type': ['string', 'null']}, 'identity_provider': {'type': ['string', 'null']}, 'linked_collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Manager / collection slugs the guest has transacted with.'}, 'has_payment_on_file': {'type': 'boolean'}}}, 'shortlist_count': {'type': ['number', 'null']}, 'activity_summary': {'type': 'object', 'properties': {'last_active_at': {'type': ['string', 'null']}, 'last_booked_at': {'type': ['string', 'null']}, 'total_collections_booked': {'type': 'number'}, 'total_bookings_across_collections': {'type': 'number'}}}, 'assistant_guidance': {'type': 'string', 'description': "Behavioral hints for the assistant (greeting, anonymous don't-prompt-sign-in rules, how to read collections[]). Not guest PII."}}}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of saved properties to return (default 20).'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}}}
Schéma de sortie
{'type': 'object', 'required': ['success', 'type', 'items', 'isEmpty'], 'properties': {'type': {'type': 'string', 'description': 'Always "shortlistVrm".'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'checkIn': {'type': ['string', 'null']}, 'pricing': {'type': ['object', 'null'], 'properties': {'total': {'type': ['number', 'null']}, 'nights': {'type': ['number', 'null']}, 'currency': {'type': 'string'}, 'avgNightly': {'type': ['number', 'null']}}}, 'savedAt': {'type': 'string', 'description': 'ISO 8601 timestamp.'}, 'bedrooms': {'type': ['number', 'null']}, 'checkOut': {'type': ['string', 'null']}, 'bathrooms': {'type': ['number', 'null']}, 'maxGuests': {'type': ['number', 'null']}, 'bookingUrl': {'type': 'string'}, 'quoteToken': {'type': ['string', 'null']}, 'memberPricing': {'type': 'object', 'required': ['currency'], 'properties': {'total': {'type': 'number'}, 'nightly': {'type': 'number'}, 'currency': {'type': 'string'}}, 'description': 'Optional authenticated-member pricing. Omitted for anonymous guests and whenever the manager does not offer a member rate.'}}}}, 'isEmpty': {'type': 'boolean'}, 'success': {'type': 'boolean'}, 'collection': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}}, 'totalSaved': {'type': 'number'}, 'emptyMessage': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max results (default 20).'}, 'query': {'type': 'string', 'description': 'Free-text search across name, region, and description.'}, 'region': {'type': 'string', 'description': 'Filter by region, state, or country (e.g. "Oregon").'}, 'category': {'type': 'string', 'description': 'Filter by category, e.g. "vacation_rental".'}}}
Schéma de sortie
{'type': 'object', 'required': ['success', 'collections'], 'properties': {'total': {'type': 'number'}, 'success': {'type': 'boolean'}, 'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['collection_id', 'name'], 'properties': {'name': {'type': 'string'}, 'region': {'type': ['string', 'null']}, 'country': {'type': ['string', 'null']}, 'regions': {'type': 'array', 'items': {'type': 'string'}}, 'category': {'type': ['string', 'null']}, 'logo_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'website_url': {'type': ['string', 'null']}, 'collection_id': {'type': 'string', 'description': 'Stable slug — pass this in the `collections` array of property tools.'}, 'property_count': {'type': ['number', 'null']}, 'tool_capabilities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Manager-side tool names this collection exposes.'}}}, 'description': 'Ranked collections matching the query / filters.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'sort': {'enum': ['relevance', 'price_asc', 'price_desc', 'beds_desc', 'name_asc'], 'type': 'string', 'description': 'Sort order. Default "relevance".'}, 'neLat': {'type': 'number', 'description': 'BOUNDS MODE: Northeast latitude'}, 'neLng': {'type': 'number', 'description': 'BOUNDS MODE: Northeast longitude'}, 'swLat': {'type': 'number', 'description': 'BOUNDS MODE: Southwest latitude'}, 'swLng': {'type': 'number', 'description': 'BOUNDS MODE: Southwest longitude'}, 'guests': {'type': 'number', 'description': 'Number of guests'}, 'offset': {'type': 'number', 'description': 'Pagination offset. Default 0.'}, 'region': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by state/region (e.g., ["Vermont"]). Case-insensitive.'}, 'sleeps': {'type': 'number', 'description': 'Minimum sleeping capacity'}, 'country': {'type': 'string', 'description': 'Filter by ISO alpha-2 country code (e.g., "US")'}, 'feature': {'type': 'string', 'description': 'Soft ranking signal — boost properties with a guest-confirmed feature (e.g., "mountain_views", "spotless_clean", "hot_tub", "cozy", "beachfront"). Does NOT hard-filter.'}, 'nearLat': {'type': 'number', 'description': 'POINT MODE: Latitude to search near'}, 'nearLng': {'type': 'number', 'description': 'POINT MODE: Longitude'}, 'persona': {'type': 'string', 'description': 'Soft ranking signal — boost properties popular with a guest persona (e.g., "hiking", "romantic", "young_family", "pet_owners", "fishing", "luxury"). Does NOT hard-filter.'}, 'bedrooms': {'type': 'number', 'description': 'Minimum bedrooms needed'}, 'locality': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by city/town name (e.g., ["Stowe"], ["Seaside", "Cannon Beach"]). Case-insensitive.'}, 'nearUnit': {'enum': ['miles', 'kilometers'], 'type': 'string', 'description': 'Default "miles".'}, 'nearRadius': {'type': 'number', 'description': 'POINT MODE: Max distance. Default 25.'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}, 'dateWindows': {'type': 'array', 'items': {'type': 'object', 'required': ['checkIn', 'checkOut'], 'properties': {'checkIn': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'checkOut': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}}}, 'maxItems': 5, 'description': 'Up to 5 date windows to check availability and pricing across. Each window returns per-property availability. Omit for browse mode — browse results carry the nightly anchor "from" price only, never a dated total.'}, 'petsRequired': {'type': 'boolean', 'description': 'Pet-friendly only'}, 'maxProperties': {'type': 'number', 'description': 'Max results. Default 20.'}, 'propertyTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Property type(s). The coarse family (house vs apartment) is the only hard filter; a specific subtype (e.g. "cabin", "a-frame") returns its whole family with that subtype boosted — cross-manager interleaving may still rank other family members above it; never zero results.'}, 'semanticFilters': {'type': 'object', 'properties': {'required': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Natural-language must-haves. Every returned property must have listing, policy, amenity, or review evidence for each criterion; never infer a match from missing data.'}, 'requested': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Natural-language preferences used as soft ranking signals. A property may still be returned when one or more requested preferences are not evidenced.'}}, 'description': 'Reserved optional evidence-backed semantic criteria that complement the explicit location, date, capacity, pet, property-type, and budget filters. Put true must-haves in `required`; put preferences that should improve ranking without excluding otherwise valid stays in `requested`. Until server instructions announce that semantic matching is enabled, omit this field.', 'additionalProperties': False}, 'budgetMaxPerNight': {'type': 'number', 'description': 'Max nightly budget in major currency units'}}}
Schéma de sortie
{'type': 'object', 'required': ['type', 'totalMatching', 'properties'], 'properties': {'type': {'type': 'string', 'description': 'Always "searchProperties".'}, 'collection': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}}, 'properties': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'dateWindows'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tagline': {'type': ['string', 'null']}, 'bedrooms': {'type': ['number', 'null']}, 'distance': {'type': 'object', 'properties': {'unit': {'type': 'string'}, 'value': {'type': 'number'}}}, 'location': {'type': 'object', 'properties': {'region': {'type': ['string', 'null']}, 'latitude': {'type': ['number', 'null']}, 'locality': {'type': ['string', 'null']}, 'longitude': {'type': ['number', 'null']}}}, 'bathrooms': {'type': ['number', 'null']}, 'maxGuests': {'type': ['number', 'null']}, 'highlights': {'type': ['array', 'null'], 'items': {'type': 'string'}}, 'anchorPrice': {'type': 'object', 'properties': {'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'currency': {'type': 'string'}}}, 'dateWindows': {'type': 'array', 'items': {'type': 'object', 'required': ['checkIn', 'checkOut', 'available', 'nights'], 'properties': {'total': {'type': ['number', 'null']}, 'nights': {'type': 'number'}, 'checkIn': {'type': 'string'}, 'checkOut': {'type': 'string'}, 'currency': {'type': ['string', 'null']}, 'available': {'type': 'boolean'}, 'avgNightly': {'type': ['number', 'null']}, 'memberPricing': {'type': 'object', 'required': ['currency'], 'properties': {'total': {'type': 'number'}, 'nightly': {'type': 'number'}, 'currency': {'type': 'string'}}, 'description': 'Optional authenticated-member pricing. Omitted for anonymous guests and whenever the manager does not offer a member rate.'}}}}, 'petsAllowed': {'type': ['boolean', 'null']}, 'topFeatures': {'type': 'array', 'items': {'type': 'object', 'properties': {'slug': {'type': 'string'}, 'count': {'type': 'number'}}}}, 'topPersonas': {'type': 'array', 'items': {'type': 'object', 'properties': {'slug': {'type': 'string'}, 'count': {'type': 'number'}}}}, 'featureMatch': {'type': 'object', 'properties': {'feature': {'type': 'string'}, 'avgRating': {'type': 'number'}, 'reviewCount': {'type': 'number'}}}, 'personaMatch': {'type': 'object', 'properties': {'persona': {'type': 'string'}, 'avgRating': {'type': 'number'}, 'reviewCount': {'type': 'number'}}}, 'propertyType': {'type': ['string', 'null']}, 'shortSummary': {'type': ['string', 'null']}, 'collectionSlug': {'type': ['string', 'null'], 'description': 'Parent collection slug. Present on federated results; pass it in `collections` when rendering selected properties.'}}}}, 'totalMatching': {'type': 'number'}, 'semanticFiltering': {'type': 'object', 'required': ['required', 'requested', 'description'], 'properties': {'required': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Hard semantic criteria that were applied to the result set.'}, 'requested': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Soft semantic preferences that were used to rank the result set.'}, 'description': {'type': 'string', 'description': 'Concise evidence-grounded explanation of how required and requested criteria affected filtering and ranking, including any evidence limitations.'}}, 'description': 'Optional semantic-filtering summary. Omitted until semantic matching is enabled and the criteria have actually been evaluated.'}, 'suggestedFollowUps': {'type': 'array', 'items': {'type': 'string'}}}}
Schéma d’entrée
{'type': 'object', 'required': ['propertySlug'], 'properties': {'action': {'enum': ['save', 'remove'], 'type': 'string', 'description': "Whether to save or remove the property from the shortlist. Optional — defaults to 'save'; pass 'remove' to take a property off the shortlist."}, 'checkIn': {'type': 'string', 'description': 'Check-in date (ISO 8601).'}, 'checkOut': {'type': 'string', 'description': 'Check-out date (ISO 8601).'}, 'quoteToken': {'type': 'string', 'description': 'Quote token for the selected rate.'}, 'collections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Collection slug(s) — each a `collection_id` from list_collections. For search_bookables and discover_collections: OMIT to span the whole network, pass one to scope to a single manager, or several to compare across managers. For build_bookable_carousel: pass the collection_id(s) your chosen properties belong to — one, or several when the picks span managers. Every other tool operates on a single collection — pass exactly ONE.'}, 'propertyName': {'type': 'string', 'description': 'Display name of the property. Strongly recommended (you have it from search_bookables); if omitted, a readable name is derived from the slug.'}, 'propertySlug': {'type': 'string', 'description': 'Slug of the property being shortlisted (required).'}, 'collectionSlug': {'type': 'string', 'description': 'Optional. The parent collection slug. If omitted it is derived from the globally-unique propertySlug, so you can save with propertySlug alone.'}, 'pricingSnapshot': {'type': 'object', 'properties': {'memberPricing': {'type': 'object', 'required': ['currency'], 'properties': {'total': {'type': 'number'}, 'nightly': {'type': 'number'}, 'currency': {'type': 'string'}}, 'description': 'Optional authenticated-member pricing. Omitted for anonymous guests and whenever the manager does not offer a member rate.'}}, 'description': 'Pricing snapshot at the time of shortlisting.'}}}
Schéma de sortie
{'type': 'object', 'required': ['persisted'], 'properties': {'action': {'enum': ['save', 'remove'], 'type': 'string'}, 'reason': {'type': 'string'}, 'checkIn': {'type': 'string'}, 'message': {'type': 'string'}, 'checkOut': {'type': 'string'}, 'optionId': {'type': 'string'}, 'anonymous': {'type': 'boolean'}, 'persisted': {'type': 'boolean'}, 'propertyName': {'type': 'string'}, 'propertySlug': {'type': 'string'}}, 'description': 'JSON-encoded shortlist persistence result returned in content[0].text. Fields below describe the parsed shape.'}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['auth_state'], 'properties': {'success': {'type': 'boolean'}, 'identity': {'type': 'object', 'properties': {'first_name': {'type': ['string', 'null']}, 'email_verified': {'type': ['boolean', 'null']}}}, 'auth_state': {'enum': ['authenticated', 'anonymous'], 'type': 'string', 'description': "'authenticated' on a successful sign-in (bearer attached, session.oauth populated). 'anonymous' only on the defense-in-depth path where session.oauth somehow isn't set after the gate — surface that to the user honestly, do not pretend to be signed in."}}}
Schéma d’entrée
{'type': 'object', 'required': ['email'], 'properties': {'code': {'type': 'string', 'description': 'The six-digit code from the mail Kismet sent; omit on the first call.'}, 'email': {'type': 'string', 'description': "The agent's own verified inbox address."}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['status'], 'properties': {'scope': {'type': 'string'}, 'status': {'enum': ['code_sent', 'signed_in'], 'type': 'string'}, 'agent_id': {'type': 'string'}, 'expires_in': {'type': 'number'}, 'token_type': {'type': 'string'}, 'access_token': {'type': 'string'}, 'email_masked': {'type': 'string'}, 'refresh_token': {'type': 'string'}, 'expires_in_minutes': {'type': 'number'}}}
Schéma d’entrée
{'type': 'object', 'required': ['token'], 'properties': {'token': {'type': 'string', 'description': 'The Kismet guest token, OR the "continue in your AI assistant" handoff link that carries it (e.g. https://kismet.travel/continue?kgt=…). Pass the pasted link verbatim — the token is extracted from it; do not fetch the URL.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['token_status', 'requires_sign_in_for'], 'properties': {'offer': {'type': ['object', 'null']}, 'source': {'type': 'string'}, 'manager': {'type': ['object', 'null']}, 'itinerary': {'type': ['object', 'null']}, 'token_status': {'enum': ['loaded', 'expired', 'invalid'], 'type': 'string'}, 'requires_sign_in_for': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Actions that require a real OAuth sign_in — this tool grants none of them.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['email'], 'properties': {'code': {'type': 'string', 'description': 'The six-digit code from the mail Kismet sent; omit on the first call.'}, 'email': {'type': 'string', 'description': "The agent's own inbox address."}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['status', 'email_masked'], 'properties': {'status': {'enum': ['code_sent', 'verified'], 'type': 'string'}, 'email_masked': {'type': 'string'}, 'expires_in_minutes': {'type': 'number'}}}
Modifications récentes des outils
Serveurs MCP similaires
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…