Guest connector (MCP)

The guest connector lets an AI agent act for a hotel guest. The agent can find Maison hotels, ask a hotel's own AI concierge questions, check live availability and rates, and book directly with the hotel. Answers come from each hotel's verified knowledge base and its property management system, never from a scraped page.

This page is for agents that serve guests. It needs no account and no API key. If you are a hotel operator connecting your own tools, use the operator MCP integration instead. Never point a guest-facing agent at the operator endpoint.

Endpoint

The guest connector is not published in this environment yet. It runs in our staging environment while it is in review; the production address will be listed here when it launches.
  • Authentication: none. Do not send an API key or an OAuth token.
  • Protocol: MCP over Streamable HTTP. The server identifies itself as maison-guest-concierge.
  • Sessions: the server issues an mcp-session-id on initialize. Sessions expire when idle; if a request returns 404, initialize again. The conversation itself is not lost (see Conversations).
  • Browser calls: requests that carry a browser Origin header are refused. Call the endpoint from your agent's server, as MCP clients do.

Connecting

In any agent that supports custom or remote MCP connectors (for example Meta Muse custom connectors or ChatGPT developer mode), add a connector with the endpoint URL above and choose no authentication. For a client configured by file, the entry looks like this:

json
{
  "mcpServers": {
    "maison-guest": {
      "type": "http",
      "url": "<guest connector URL>"
    }
  }
}

Every result is readable as plain text. Hosts that render MCP Apps widgets also get a hotel list and a hotel card; hosts that do not lose nothing, because each result's text content carries the same data as JSON.

Tools

Three tools. Start with search_hotels to get a hotel's clientId, then use ask_hotel for everything else about that hotel.

ToolWhat it doesInputsBehaviour
search_hotels
Search hotels
Lists the participating hotels, optionally filtered by a name or city/address fragment. Returns each hotel's clientId and name. Call it once per hotel; an empty list is a normal answer.query (optional)Read-only
get_hotel_info
Hotel details
Returns one hotel's public card: clientId, name, and website and address when the hotel has them.client_idRead-only
ask_hotel
Ask the hotel
Sends the guest's message to that hotel's own AI concierge and returns its reply: questions, live availability and rates, new bookings, and changes to an existing booking after email verification. Returns JSON with reply and sessionToken. It can create a reservation, so it is neither read-only nor safe to repeat.client_id, message, session_token (optional)Can create a booking

Each tool declares MCP annotations. The two lookups are read-only and safe to repeat. ask_hotel is marked neither read-only nor idempotent, because a turn can create a reservation: sending the same message twice can book twice.

Conversations

ask_hotel returns JSON with a reply to relay to the guest and an opaque sessionToken. Send that token back unchanged as session_token on the next ask_hotel call to continue the same conversation. Without it, the hotel may start over and ask the guest to repeat themselves or verify again. A conversation lasts up to 24 hours from its first message.

A turn that checks availability or makes a booking can take tens of seconds. While it runs, the server sends an MCP log notification every 10 seconds to keep the connection open.

Do not automatically retry an ask_hotel call that timed out on your side. The hotel may still be completing the request, and a retry can create a second booking. Ask the guest, or check with the hotel in the same conversation, instead.

Bookings and payments

  • Browsing, questions and new bookings need no login. The guest supplies their own details to the hotel's concierge.
  • Existing bookings (viewing, changing, cancelling or paying) are protected. The hotel emails a one-time code to the address on the reservation; the guest reads it back and the agent sends it as the next message. No credential ever passes through the agent.
  • Payment never happens in the chat. The agent must never ask for card details. The hotel's property management system issues a secure payment link, and the hotel is the merchant of record.

Which hotels appear

Only hotels that have opted in to AI-agent access are listed, and only their guest-facing information is available. A hotel can withdraw at any time; it then disappears from search_hotels within about a minute. An empty list is a normal answer.

Limits and errors

The endpoint is rate-limited per session and per hotel so that one busy conversation cannot crowd out others. When a limit is reached, the tool returns a short "the hotel is busy" tool error; wait a moment and try again. Requests for a hotel that is not listed return the same neutral "unavailable" message whether the hotel is unknown or has opted out.

Privacy, terms and support