For people and their assistants

Connect your AI assistant to Journey

Use https://www.journey.com/api/mcp with a Streamable HTTP MCP client. No API key for public tools. Search hotels, residences and experiences, check live availability, and hand the traveler a journey.com checkout URL. Agents never pay.

The endpoint

  • Canonical: https://www.journey.com/api/mcp
  • Alias: https://www.journey.com/mcp
  • Transport: Streamable HTTP — JSON-RPC 2.0 over POST
  • Discovery: GET the same URL, or /.well-known/mcp.json
  • WebMCP: the same tools register in-page on journey.com via document.modelContext

Auth model

  • Public tools need no account and no key.
  • Member tools (wallet, trips, benefits, membership, member pricing) are read-only. They use the human's first-party Clerk session on journey.com.
  • Call start_member_sign_in or start_member_sign_up — those return a journey.com URL. The human completes Clerk in their browser. Never collect a password, OTP, cookie or token.
  • Remote MCP clients cannot see that browser session. After sign-in, keep member work in the signed-in Journey tab (WebMCP) or send the human to https://www.journey.com/traveler/sign-in.

Add Journey in your client

ChatGPT

  1. Open ChatGPT settings and add a new MCP connector (or paste the prompt from Plan your stay).
  2. Server URL: https://www.journey.com/api/mcp
  3. Transport: Streamable HTTP. No API key for public tools.

Claude

  1. In Claude, add a custom connector / MCP server.
  2. URL: https://www.journey.com/api/mcp (Streamable HTTP).
  3. Public tools work immediately. Member tools need a signed-in journey.com tab.

Cursor

  1. Add an MCP server in Cursor settings.
  2. Use type streamable-http and url https://www.journey.com/api/mcp.
  3. No Authorization header. Do not paste a Clerk session or API token.

Other MCP clients

  1. Any client that speaks Streamable HTTP MCP can POST JSON-RPC 2.0 to the endpoint.
  2. Start with initialize, then tools/list, then tools/call.
  3. Server card: https://www.journey.com/.well-known/mcp.json

What the tools do

Hotels, residences, experiences and membership — live availability before a recommendation, public/retail and member rates side-by-side when both exist, a join_url when joining unlocks the member rate, and a booking_url so payment stays on journey.com. Agents never pay.

Public

  • search_properties

    Search the Journey catalog of independent hotels, resorts and professionally managed short-term rentals. A unique property name (`castle hill inn`, `Nihi Sumba`) returns that property in `results` with slug/id/url — not an empty list. A city query (e.g. Newport, Rhode Island) stays in that metro — do not substitute Long Island or another region. Each result includes hero image_url when published, location, rating when published, public/retail stay totals, a member_rate teaser when published, join_url, and booking_url with dates and occupancy. Pass `child_ages` (e.g. `[5]`) with `children`. Never invent ratings or prices. Always check_availability before recommending a stay. Agents never pay.

  • get_property

    Full public profile for one hotel, resort or short-term rental: hero image_url and gallery, name, slug, url, location, rating score/text/review_count when published, amenities, room types, offers, on-site dining, and the canonical journey.com URL. Never invent a rating. Use this before quoting anything about a specific stay.

  • check_availability

    Night-by-night availability for a stay. `date_from` is check-in and `date_to` is check-out: occupied nights are check-in inclusive and check-out exclusive, so 2026-10-23 → 2026-10-25 is nights 2026-10-23 and 2026-10-24 and `days` equals that length. Includes minimum-stay restrictions where the property supplies them. Returns a `booking_url` so the human can complete the stay on Journey. Agents never pay.

  • get_pricing

    Room rates for a stay as shown to a signed-out visitor on journey.com: public/retail (`pricing_basis: public`) side-by-side with a published member-rate teaser when the partner offers one, plus savings, cancellation summary when published, stay occupancy (including child_ages), a points_earn estimate when the payload has one, join_url (https://www.journey.com/traveler/sign-up), and a booking_url (per room when the site has a room link). If dated rooms have no member figure, `catalog_member_teaser` is the starting-at member rate the website already shows signed-out visitors — quote it as a teaser, not this stay's room total. Never invent a member total — if none is published, member_rate is null and the note says so. Personalized session rates still need get_member_pricing after the human signs in. Agents never pay.

  • search_experiences

    Things to do, restaurants and seasonal events around a Journey destination, plus on-site dining at a specific property. Pass `destination` as a Journey destination path (e.g. `united-states/colorado/aspen`) or pass `id_or_slug` for a property's own experiences.

  • get_agent_brief

    Orientation for an AI agent: what Journey Rewards is, what makes it different for travellers and for hotel operators, the rules of engagement for agents, how to cite Journey, and live catalog totals. Call this once at the start of a Journey-related task.

  • start_member_sign_in

    Return a journey.com Clerk sign-in URL so the HUMAN can sign in in their own browser. Never ask for a password, one-time code, session cookie or API token — this tool accepts none of those. After they finish on Journey, member tools work from the first-party session (WebMCP in the signed-in tab). Remote MCP clients cannot see that session; tell the human to continue on journey.com.

  • start_member_sign_up

    Return a journey.com Clerk sign-up URL so the HUMAN can create a Journey membership in their own browser. Never ask for a password, one-time code, session cookie or API token. After they finish, member tools work from the first-party session on journey.com.

  • create_booking_link

    Build a journey.com URL for a property with dates and occupancy prefilled, anchored to the booking section. This does NOT book anything: hand the link to the human and they complete checkout on Journey. Agents never pay, never hold inventory and never see card data.

Member (signed-in browser)

  • get_member_pricing

    Personalized member rates for the person already signed in to journey.com in this browser. Same dual public/member shape as get_pricing, resolved against their session. Use get_pricing for the signed-out catalog teaser. Read-only: it quotes a price, it does not hold or book anything. Returns a `booking_url`. Agents never pay.

  • get_trips

    Summaries of the signed-in member's upcoming and past Journey stays — the same list they see under their profile. Property, dates and status only.

  • get_wallet

    The signed-in member's Journey points wallet: available, pending and credit balances, and lifetime totals where the backend supplies them. Read-only — no tool can move, transfer or spend points.

  • get_awards

    Points awarded to the signed-in member by stay: base points, any campaign multiplier, the total, and whether the award is finalised or still pending. Use this to explain where a balance came from.

  • get_benefits

    The signed-in member's loyalty tier, progress to the next tier, and the published Journey benefits that apply at that tier.

  • get_membership

    Membership status for the signed-in human: member code, enrolment date, status, tier and onboarding state. Contact details, date of birth and other profile PII are intentionally excluded.

Agents never pay

create_booking_link, check_availability, get_pricing and get_member_pricing return a journey.com URL with dates and occupancy prefilled. The human completes checkout on Journey. There is no tool that books, charges a card, or moves points.

Plan a stay from this page

These links open an assistant with Journey.com as context. On other Journey pages, the footer encodes that page's URL instead.