Skip to main content
Casa 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 API keys or MCP OAuth (Claude). 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:
  • OAuth — for clients that speak the MCP OAuth flow (Claude). The server advertises WorkOS AuthKit as its authorization server; the user signs in and consents, and the connection acts as that user in their organization with a read-only, group-scoped credential.
  • 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). Requires scope read:events.
Search identity-resolved master guest profiles — golden records merged across source systems. 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. 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 <scope>) rather than failing the connection.

Connect

Claude (OAuth)

In Claude, add a custom connector and paste the MCP URL — no API key needed:
  1. Settings → Connectors → Add custom connector.
  2. Set the URL to https://api.casa-layer.com/mcp and add it.
  3. Claude discovers the authorization server, opens WorkOS AuthKit, and you 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, and property drill-down (X-Property-Id) is not available over OAuth. Use an API key if you need property-pinned 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 be registered with WorkOS exactly as deployed). Cursor and the Inspector use the API-key path below and are unaffected.

Cursor (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)