@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.)guest_event_log
guest_event_log
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.master_profile_search
master_profile_search
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.loyalty_members_search
loyalty_members_search
Search loyalty members: each membership joined with its guest and program,
ordered by points. Requires scope
read:loyalty.reviews_summary
reviews_summary
Aggregate review statistics: totals, average rating, rating distribution,
per-channel breakdown, response count, and top positive/negative tags.
Requires scope
read:reviews.reservations_search
reservations_search
Search reservations by status, stay window, channel category, guest, or
free-text guest match — newest stays first. Requires scope
read:reservations.transactions_search
transactions_search
Search revenue transactions by guest, reservation, type, or consumption
date window — newest consumption first. Requires scope
read:transactions.consents_search
consents_search
Search contact-grain consent observations by contact, purpose, status, integration,
or observing guest — newest first. Email and SMS are independent. Requires scope
read:consents.tables_list
tables_list
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.table_get
table_get
Fetch one table by ID, including
member_count, last_refreshed_at, and
latest_run_status. Requires scope read:tables.table_members
table_members
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.reviews_search
reviews_search
Search individual reviews by text, rating bounds, channel, date window, or
host-response status — newest first. Requires scope
read:reviews.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:- Settings → Connectors → Add custom connector.
- Set the URL to
https://api.casa-layer.com/mcpand add it. - 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).
- 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 withmcp-remote:
MCP Inspector
Point the Inspector at the URL with Streamable HTTP transport and add anAuthorization header: