# Cascadia Getaways: connector brief

Read this file first. It is the contract for connecting an AI assistant to Cascadia Getaways.

Brief rendered 2026-09-22. Canonical URL: https://www.cascadiagetaways.com/connectors/muse.md

## What this service is

This connector reaches Cascadia Getaways inventory only: search, live dated prices, details, policies and guest reviews. It runs on Kismet, which Cascadia Getaways uses for direct booking.

A user asks the assistant to find a place to stay, compare options, check a price for real dates, then open a booking link. The connector does not take payment and never sees card details. Cascadia Getaways is the merchant. Checkout happens on the page the booking link opens, with the user's approval.

## Connection details

| Item | Value |
|---|---|
| Brand | Cascadia Getaways |
| Website | https://www.cascadiagetaways.com/ |
| Operated by | Kismet, https://kismet.travel |
| Privacy | https://kismet.travel/privacy |
| Terms | https://kismet.travel/terms |
| Support | https://kismet.travel/support |
| MCP endpoint | https://kismet.travel/c/cascadia-getaways/mcp?src=muse |
| Transport | MCP Streamable HTTP. JSON-RPC 2.0 over HTTPS POST |
| Responses | One JSON object, `Content-Type: application/json` |
| Protocol version | `2025-03-26`. If your SDK proposes a newer version in `initialize`, the server answers `2025-03-26`. That is normal negotiation: continue with the version the server returned |
| Auth | None. Do not ask the user for a key, a token or a login |
| Session | `initialize` returns an `Mcp-Session-Id` response header. Send it back on every later call |

About the endpoint: the `src` query parameter is a label. It tells Kismet that a call came from a connector built from this brief, for reporting. Use the endpoint exactly as written above.

### Transport notes for a client you write yourself

1. Send `POST` with `Content-Type: application/json` and `Accept: application/json, text/event-stream`. A JSON-only `Accept` also works.
2. `GET` on the endpoint returns **405**. That is by design and means the host is up. Do not wait for server-sent events. Each POST gets one JSON reply.
3. `DELETE` returns 200. Sessions need no teardown.
4. Keep the `Mcp-Session-Id` from `initialize` for the whole conversation.
5. Use a request timeout of about 30 seconds.

Every tool result has two parts. `content[0].text` is a readable summary. `structuredContent` is the same result as JSON, with more fields. Read both.

## Tools on this endpoint

These names and arguments are read from the live tool definitions for Cascadia Getaways. Call `tools/list` for the full schemas.

### `search-properties`

Find stays in this collection. Pass dates to price them.

- `sort` (string): Sort order.
- `neLat` (number): BOUNDS MODE: Northeast latitude
- `neLng` (number): BOUNDS MODE: Northeast longitude
- `swLat` (number): BOUNDS MODE: Southwest latitude
- `swLng` (number): BOUNDS MODE: Southwest longitude
- `guests` (number): Number of guests
- `offset` (number): Pagination offset.
- `region` (array): Filter by state/region (e.g., ["Vermont"]).
- `sleeps` (number): Minimum sleeping capacity
- `country` (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").
- `nearLat` (number): POINT MODE: Latitude to search near
- `nearLng` (number): POINT MODE: Longitude
- `persona` (string): Soft ranking signal , boost properties popular with a guest persona (e.g., "hiking", "romantic", "young_family", "pet_owners", "fishing", "luxury").
- `bedrooms` (number): Minimum bedrooms needed
- `locality` (array): Filter by city/town name (e.g., ["Stowe"], ["Seaside", "Cannon Beach"]).
- `nearUnit` (string): Default "miles".
- `nearRadius` (number): POINT MODE: Max distance.
- `dateWindows` (array): Up to 5 date windows to check availability and pricing across.
- `petsRequired` (boolean): Pet-friendly only
- `maxProperties` (number): Max results.
- `propertyTypes` (array): Property type(s).
- `semanticFilters` (object): Reserved optional evidence-backed semantic criteria that complement the explicit location, date, capacity, pet, property-type, and budget filters.
- `budgetMaxPerNight` (number): Max nightly budget in major currency units

### `get-vr-detail`

Full details, policies and the dated total for one stay.

- `checkIn` (string): Check-in date for pricing
- `checkOut` (string): Check-out date for pricing
- `propertySlug` (string, required): Slug of the vacation rental property

### `get-booking-link-vrm`

The booking link for one stay and one set of dates.

- `guests` (number): Number of guests
- `checkIn` (string): Check-in date (YYYY-MM-DD)
- `checkOut` (string): Check-out date (YYYY-MM-DD)
- `propertySlug` (string, required): Slug of the vacation rental

### `get-vr-reviews`

Guest reviews for one stay.

- `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.
- `propertySlug` (string): Slug of the specific property to get reviews for.

### `shortlist-property`

Save a finalist to a working list for this session.

- `action` (string): Whether to save or remove the property from the shortlist.
- `checkIn` (string): Check-in date (ISO 8601).
- `checkOut` (string): Check-out date (ISO 8601).
- `quoteToken` (string): Quote token for the selected rate.
- `propertyName` (string): Display name of the property.
- `propertySlug` (string, required): Slug of the property being shortlisted (required).
- `collectionSlug` (string): Optional.
- `pricingSnapshot` (object): Pricing snapshot at the time of shortlisting.

### `get-shortlist`

Read that working list back.

- `limit` (number): Maximum number of saved properties to return (default 20).

What `get-booking-link-vrm` does, stated plainly: it **records a link token** on Kismet (which stay, which dates, which session) so a resulting booking can be credited correctly, and it returns a URL. It does **not** reserve, hold, charge or purchase anything. Because it records that token it is annotated as a write, so your host may ask the user before calling it. That is expected.

Any other tool this endpoint lists renders an interactive widget or needs a signed-in person. Those do not apply to a connector. Present results as text.

## Property identity and checkout

A property has one stable Kismet identity: `https://kismet.travel/vr/{propertyId}`. The ID is the property UUID, not its display name, slug, or booking token. Its checkout entry is `/vr/{propertyId}/checkout`. A supported agent handoff includes a separate `kismet_token` query parameter. Preserve the complete tool-returned URL: the token carries the booking session and attribution, and is not part of property identity. Renaming a property does not change its ID.

## Conventions

- Dates are `YYYY-MM-DD`. The check-out date is the departure day. Every date in this brief is a placeholder: always use future dates.
- Money is in major units with a currency code. Say the currency.
- A per-night "from" figure is not a price for the stay. Get the dated total from `get-vr-detail` before any cost comparison or recommendation.
- Say "including estimated taxes" when the server says so. An estimate is not an invoice. The checkout page shows the final price.
- Coverage is whatever the live server returns. Do not quote counts from memory.

## Rules

1. **Quote only what the server returned.** Never invent availability, rates, fees, policies or reviews.
2. **Check the rules before the link.** From `get-vr-detail`, check minimum stay and minimum booking age against the trip.
3. **Count the fees that change the math.** For a trip with a pet, fold the pet fee into the total before comparing.
4. **Rejected dates: offer the returned alternates exactly as returned.** Never guess that nearby dates are probably open.
5. **Only tool-minted links.** Give the user the booking URL exactly as returned. Never build, edit, shorten or reuse one from memory.
6. **Cascadia Getaways is the merchant.** The user books with Cascadia Getaways, on the terms Cascadia Getaways sets.
7. **No card details in chat.** Payment happens only on the page the booking link opens, with the user's approval.
8. **Open the returned link and nothing else.** Do not search the web for the stay or substitute another site.
9. **If a tool errors, say so.** Do not fill the gap with invented inventory.

## Recipe

The dates below are placeholders. Always use future dates.

1. `search-properties` with `{"guests":4}`. Pick two to four stays that fit the party.
2. For each, `get-vr-detail` with its `propertySlug` and the dates. Read the dated total, the fees and the minimum stay. Reuse the slug exactly as returned. Never invent a slug.
3. Present each pick with its total, one reason it fits and one honest caveat.
4. When the user chooses, `get-booking-link-vrm` with the `propertySlug`, the dates and `guests`. Give the link with the stay name, the dates and the total.
