Skip to main content
Casa Layer exposes a Model Context Protocol (MCP) server so AI assistants can read guest context — every guest, remembered — with the same tenant isolation as the REST API. Authenticate with personal API keys or Casa Layer sign-in (Claude). Partner credential tokens are rejected. It is a spec-compliant server built on the official @modelcontextprotocol/sdk, served over Streamable HTTP.
The MCP server is not a REST endpoint, so it is intentionally excluded from the API Reference. Connect with an MCP client, not curl.

Endpoint

Every tool runs scoped to the caller’s property group (or, for an API key, its pinned property) and enforces the same scopes as the REST API. Each call is audit-logged against the calling user or key. Two ways to authenticate, depending on the client:
  • Casa Layer sign-in — for clients that speak the MCP OAuth flow (Claude). The user signs in and consents. The connection acts as that user in their organization with a read-only, group-scoped credential.
  • Personal API key (casa_…) — for clients that send a bearer header (Cursor, MCP Inspector, programmatic SDK use). Same key as the REST API.

Tools

Eleven tools cover the guest context surface. All results are JSON matching the REST API’s response shapes.
Pagination. Every search/list tool returns { data, next_cursor, has_more }. limit sets the page size (max 500 per call), not a cap on the total: when has_more is true, call the tool again with cursor set to the previous result’s next_cursor, and repeat until next_cursor is null to retrieve the full set. (reviews_summary is an aggregate and is not paginated; the event log’s latest mode returns a single page.)
Read the append-only guest event log — the full ordered change history (timeline, default) or the latest delta slice per entity (latest; rollup is a compatibility alias). Filter by guest profile or master profile. The log does not accept a PMS source_id. Requires scope read:events.
Search identity-resolved master guest profiles — golden records merged across source systems. Each result includes member sub-profiles (guest_profiles + guest_profile_ids). Requires scope read:guests.
Search loyalty members: each membership joined with its guest and program, ordered by points. Requires scope read:loyalty.
Aggregate review statistics: totals, average rating, rating distribution, per-channel breakdown, response count, and top positive/negative tags. Requires scope read:reviews.
Search reservations by status, stay window, channel category, guest, or free-text guest match — newest stays first. Requires scope read:reservations.
Search revenue transactions by guest, reservation, type, or consumption date window — newest consumption first. Requires scope read:transactions.
Search contact-grain consent observations by contact, purpose, status, integration, or observing guest — newest first. Email and SMS are independent. Requires scope read:consents.
Enumerate ops tables for the authenticated property group. Tables are curated or filter-defined containers — not consent eligibility and not marketing segments. Requires scope read:tables.
Fetch one table by ID, including member_count, last_refreshed_at, and latest_run_status. Requires scope read:tables.
Browse table members with offset pagination. Each row includes guest_profile_id, master_profile_id, and effective consents. A property pin narrows visible rows only. Requires scope read:tables.
Search individual reviews by text, rating bounds, channel, date window, or host-response status — newest first. Requires scope read:reviews.
A tool call made without the required scope returns an MCP tool error (forbidden: missing scope) rather than failing the connection.

Connect

Claude OAuth

In Claude, add a custom connector and paste the MCP URL — no API key needed. This is Casa Layer sign-in:
  1. Settings → Connectors → Add custom connector.
  2. Set the URL to https://api.casa-layer.com/mcp and add it.
  3. Claude discovers the Casa Layer authorization server. Sign in and consent. If you belong to more than one organization, pick the one to connect at sign-in — the connection is locked to that org (to switch, remove and re-add the connector).
  4. The connector now calls the read tools as you, scoped to your organization.
The connection is read-only and group-scoped: connector tokens can call the MCP read tools but are rejected on the REST API. They reject X-Property-Id. Use a personal API key or a partner credential for property drill-down or REST access.
If the connector can’t complete sign-in, the most common cause is a server-side configuration gap (the MCP resource URL must match the deployed URL exactly). Cursor and the Inspector use the API-key path below and are unaffected.

Cursor (personal API key)

Most desktop MCP clients speak stdio, so bridge to the HTTP server with mcp-remote:

MCP Inspector

Point the Inspector at the URL with Streamable HTTP transport and add an Authorization header:

Programmatic (TypeScript SDK)