@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.)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). Requires scope read:events.master_profile_search
master_profile_search
Search identity-resolved master guest profiles — golden records merged
across source systems. 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. 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 <scope>) rather than failing the connection.
Connect
Claude (OAuth)
In Claude, add a custom connector and paste the MCP URL — no API key needed:- Settings → Connectors → Add custom connector.
- Set the URL to
https://api.casa-layer.com/mcpand add it. - 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).
- 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 withmcp-remote:
MCP Inspector
Point the Inspector at the URL with Streamable HTTP transport and add anAuthorization header: