travel.kismet/mcp-server
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Semantic hotel search with real-time availability and price comparison for Kismet Travel
| Author | travel.kismet |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 696 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"mcp-server": {
"url": "https://mcp.kismet.travel/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
list_collectionsread-onlySearch the Kismet network for vacation-rental collections (property managers). Returns ranked collections with their slug (`collection_id`), regions, property count, and supported tools. Use this when the guest asks which managers operate in a place or wants to choose a manager. It is not required before network-wide search: search_bookables and discover_collections span every collection when `collections` is omitted. Searchable via free-text `query` plus optional `region`/`category` filters — not a full dump.
Parameters:
limit— number — Max results (default 20).query— string — Free-text search across name, region, and description.region— string — Filter by region, state, or country (e.g. "Oregon").category— string — Filter by category, e.g. "vacation_rental".
Hints: read-only yes · destructive no · idempotent not declared · open-world no
get_guest_profileread-onlyGet the signed-in user / guest Kismet account profile, identity, preferences, and account-level signals. Returns the currently authenticated user's (the logged-in guest's) Kismet profile: identity (first name), contact-channel status (whether an email / phone is on file and verified — never the raw values), account-level signals (linked property managers and collections the user has transacted with, plus membership status — which collections the user is an Insider member of), per-collection stay history (past and upcoming bookings with property names and dates), and a cross-collection activity summary (booking counts, last active, last booked across the Kismet network). Use this whenever the user wants to see their account, profile, or saved preferences, or whenever you need to personalize search results and recommendations for the signed-in user — common queries: "what does my profile look like", "who am I logged in as", "show my Kismet account", "check my preferences", "am I signed in", "personalize this for me". Returns an explicit anonymous state when no user is signed in. Anonymous browsing, search, and shortlisting are fully supported, so sign-in is not required for those flows. When `auth_state` is "anonymous", personal-account data (profile and identity, past stays and bookings, Insider memberships) is unavailable until the user signs in; the separate `sign_in` tool initiates the OAuth flow when the user wants to access it. This tool only READS the current auth state and never signs the user in.
Hints: read-only yes · destructive no · idempotent yes · open-world no
sign_inTrigger the Kismet OAuth sign-in flow for the current guest. Call this whenever the user explicitly asks to sign in, log in, authenticate, or connect their Kismet account — common queries: "sign me in", "log me in", "log me into Kismet", "sign me into Kismet", "connect my Kismet account", "authenticate me", "I want to log in". The host will open its OAuth WebView and run the standard PKCE handshake; after successful authentication this tool returns a privacy-minimized confirmation snapshot (first name and verified-email flag only) and every subsequent tool call (get_guest_profile, get_shortlist, shortlist_bookable, etc.) will see the authenticated guest. Do NOT call this tool unless the user explicitly asked to sign in — anonymous browsing, search, and shortlisting all work fully without sign-in. After a successful sign-in, call get_guest_profile to surface the guest's full Kismet profile to the conversation.
Hints: read-only no · destructive no · idempotent yes · open-world no
use_guest_tokenread-onlyLoad READ-ONLY context from a Kismet guest token — e.g. a "continue in your AI assistant" link a property manager handed the guest. Returns the manager and the draft/considered itinerary the token carries (plus any current offer, when one applies), so you can have an informed conversation. This is CONTEXT ONLY: it grants NO account access and is never required for browsing. To actually claim an offer, save itinerary changes, message the manager, or book, the guest must sign in — call `sign_in` (the standard OAuth flow). Call this when the user pastes or references a Kismet guest/booking token or a kismet.travel/continue?kgt=… handoff link — pass it straight to this tool rather than browsing the URL; the token is extracted from the link. An unrecognized or expired token returns a clean invalid state (never an error) — then offer to sign them in.
Parameters:
token(required) — string — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
verify_agent_inboxRecord and verify the email inbox that belongs to THIS agent (not to the person it acts for), so the agent can later sign back in on its own with sign_in_agent. Two steps with the same call: without `code`, Kismet mails a six-digit code to the address; with `code`, the inbox is marked verified. Requires the agent bearer from the device flow or a connector sign-in. An agent address is never used to create a guest account.
Parameters:
email(required) — string — The agent's own inbox address.code— string — The six-digit code from the mail Kismet sent; omit on the first call.
Hints: read-only no · destructive no · idempotent yes · open-world no
sign_in_agentSign this agent back in through its own verified email inbox, with no bearer and no action from the person. Two steps with the same call: without `code`, Kismet mails a six-digit code to the inbox; with `code`, Kismet returns the agent bearer (access and refresh token) that acts for the linked person. Only a verified inbox on an agent the person already linked works; anything else is told to link first.
Parameters:
email(required) — string — The agent's own verified inbox address.code— string — The six-digit code from the mail Kismet sent; omit on the first call.
Hints: read-only no · destructive no · idempotent no · open-world no
get_booking_linkReturns a booking link for a specific vacation rental property. Use when a guest is ready to book. When dates are provided they are validated against the property's booking rules (availability, minimum/maximum stay, arrival/departure restrictions); if the stay is not bookable, the result carries datesRejected with the reason and up to three alternate date windows — offer those to the guest instead.
Parameters:
propertySlug(required) — string — Slug of the vacation rentalguests— number — Number of guestscheckIn— string — Check-in date (YYYY-MM-DD)checkOut— string — Check-out date (YYYY-MM-DD)collections— array — 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.
Hints: read-only no · destructive no · idempotent yes · open-world no
search_bookablesread-onlyPrimary search tool — use this whenever the guest specifies ANY filter: location, dates, budget, bedrooms, pets, or persona. Returns a ranked list of candidate properties as plain text with each property's slug, name, location, dated or anchor pricing, top personas/features, and tagline — formatted so the LLM can read and reason over them directly. After picking your top candidates from the returned list, pass their slugs to build_bookable_carousel to render them visually for the guest. Supports up to 5 date windows in a single call (e.g. compare March 15-18 vs March 22-25) and all location modes (region, point+radius, bounding box).
Parameters:
sort— string — Sort order. Default "relevance".neLat— number — BOUNDS MODE: Northeast latitudeneLng— number — BOUNDS MODE: Northeast longitudeswLat— number — BOUNDS MODE: Southwest latitudeswLng— number — BOUNDS MODE: Southwest longitudeguests— number — Number of guestsoffset— number — Pagination offset. Default 0.region— array — Filter by state/region (e.g., ["Vermont"]). Case-insensitive.sleeps— number — Minimum sleeping capacitycountry— string — Filter by ISO alpha-2 country code (e.g., "US")feature— string — 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— number — POINT MODE: Latitude to search nearnearLng— number — POINT MODE: Longitudepersona— string — 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— number — Minimum bedrooms neededlocality— array — Filter by city/town name (e.g., ["Stowe"], ["Seaside", "Cannon Beach"]). Case-insensitive.nearUnit— string — Default "miles".nearRadius— number — POINT MODE: Max distance. Default 25.collections— array — 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— array — 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— boolean — Pet-friendly onlymaxProperties— number — Max results. Default 20.propertyTypes— array — 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— object — 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.budgetMaxPerNight— number — Max nightly budget in major currency units
Hints: read-only yes · destructive no · idempotent yes · open-world no
discover_collectionsVisually discover bookable-stay managers (collections) and their properties as an interactive carousel. OMIT `collections` to discover across the whole network (the widget shows manager filter cards plus an interleaved property carousel), pass one to feature a single manager, or several to compare. Each property card opens full details. Use this for browsing/visual presentation; use search_bookables when the guest has specific filters and you want ranked text candidates.
Parameters:
neLat— number — BOUNDS MODE: Northeast corner latitude. Required with swLat.neLng— number — BOUNDS MODE: Northeast corner longitude. Required with swLat.swLat— number — 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— number — BOUNDS MODE: Southwest corner longitude. Required with swLat.guests— number — Number of guestsoffset— number — Skip this many results (for pagination / load-more). Default 0.region— array — 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— number — Minimum sleeping capacity required (filters properties that sleep at least this many)checkIn— string — Check-in date (YYYY-MM-DD)country— string — Filter by ISO 3166-1 alpha-2 country code (e.g., "US"). Rarely needed since collections are typically in one country.feature— string — 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— number — 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— number — POINT MODE: Longitude to search near (e.g. -83.534). Required when nearLat is provided.persona— string — 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— number — Minimum bedrooms neededcheckOut— string — Check-out date (YYYY-MM-DD)locality— array — 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— string — Unit for nearRadius and distance values. Default "miles".nearRadius— number — POINT MODE: Max distance from the nearLat/nearLng point in nearUnit. Default 25 miles. Use 50+ for broad areas.collections— array — 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— string — Free text preferences (e.g., "hot tub, mountain view")petsRequired— boolean — Whether guest needs pet-friendly propertymaxProperties— number — Max property picks to return. Default 5.propertySlugs— array — 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— array — 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— object — 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.budgetMaxPerNight— number — Max nightly budget in major currency units
Hints: read-only no · destructive no · idempotent yes · open-world no
build_bookable_carouselPresent a curated set of specific properties as an interactive visual carousel. Pass `propertySlugs` in your chosen order, plus the collection_id(s) those properties belong to in `collections` — you get each candidate's collectionSlug from search_bookables. The picks MAY span multiple managers: pass ALL their collection_ids and the carousel renders them together with manager filter cards. Never fall back to a plain text list for a cross-manager set — this tool handles it. Call AFTER search_bookables.
Parameters:
propertySlugs(required) — array — Ordered array of property slugs to present. The carousel preserves this order. Max 10.guests— number — Number of guestscheckIn— string — Check-in date for live pricingcontext— string — 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— string — Check-out date for live pricingcollections— array — 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.semanticFilters— object — 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.
Hints: read-only no · destructive no · idempotent yes · open-world no
shortlist_bookableSave or remove a vacation rental property from the guest's shortlist. Reversible. Anonymous guests are tracked via the MCP session ID; signed-in guests via their guest ID — the tool reads the current identity from session context, so no auth fields need to be passed.
Parameters:
propertySlug(required) — string — Slug of the property being shortlisted (required).action— string — Whether to save or remove the property from the shortlist. Optional — defaults to 'save'; pass 'remove' to take a property off the shortlist.checkIn— string — Check-in date (ISO 8601).checkOut— string — Check-out date (ISO 8601).quoteToken— string — Quote token for the selected rate.collections— array — 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— string — Display name of the property. Strongly recommended (you have it from search_bookables); if omitted, a readable name is derived from the slug.collectionSlug— string — Optional. The parent collection slug. If omitted it is derived from the globally-unique propertySlug, so you can save with propertySlug alone.pricingSnapshot— object — Pricing snapshot at the time of shortlisting.
Hints: read-only no · destructive no · idempotent yes · open-world no
get_bookable_reviewsread-onlyGet guest reviews for a specific vacation rental property or for the entire collection. Returns a summary and individual review texts that can be used to answer questions about guest experiences.
Parameters:
sort— string — How to sort reviews (default newest).limit— number — Number of reviews to return (default 5, max 20).offset— number — Number of reviews to skip for pagination (default 0).season— string — Filter to reviews from a specific season.persona— string — Filter to reviews from a guest persona type (e.g. "family", "couples", "solo").collections— array — 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— string — Slug of the specific property to get reviews for. If omitted, returns collection-level reviews.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_shortlistread-onlyShow the guest's saved/shortlisted vacation rental properties for this collection. Call this when the user wants to see their saved properties or review their shortlist.
Parameters:
limit— number — Maximum number of saved properties to return (default 20).collections— array — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_collection_contentread-onlyReturns collection-level content for a VRM. Sections: "about" (collection info), "reviews" (guest reviews with ratings). Use for guest questions about the company, area, or review quality.
Parameters:
section(required) — string — Content sectionlimit— number — Max items for reviews. Default 10.offset— number — Pagination offsetcollections— array — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_bookable_detailread-onlyReturns full details for a specific vacation rental property: description, bedrooms, bathrooms, kitchen, outdoor spaces, features, policies, and recent reviews. Use when a guest wants to know more about a specific property.
Parameters:
propertySlug(required) — string — Slug of the vacation rental propertycheckIn— string — Check-in date for pricingcheckOut— string — Check-out date for pricingcollections— array — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.