ClientCasa
API

MCP server (Claude & ChatGPT)

Connect Claude, ChatGPT, or Cursor to your ClientCasa data with a one-click OAuth connector. A hosted, org-scoped MCP server with 13 curated read and draft tools — and a hard no-send boundary.

ClientCasa runs a hosted Model Context Protocol server so an AI assistant — Claude, ChatGPT, or Cursor — can read your CRM, invoices, projects, and schedule, and draft new records for you to review. It connects with a one-click OAuth flow: no API key to copy, no config file to edit.

The MCP server is a curated, agent-shaped layer over the same v1 REST API — same OAuth tokens, same per-resource scopes, same organization isolation. It adds nothing the API can't already do, and — like the API — it cannot send anything or move money.

Endpoint

https://app.clientcasa.com/mcp

Paste that URL into your AI assistant's connector settings. That's the whole setup — the connector discovers where to authenticate and registers itself automatically.

Only the built-in connectors from Claude, ChatGPT, and Cursor can complete the connection. ClientCasa recognizes their official redirect destinations and turns them away otherwise, so a look-alike tool can't stand in for them. See Recognized connectors below.

The no-send boundary

This is the guarantee that makes agent access safe to grant:

No connector can send an email, text, or message on your behalf, or charge a card or move money. Every tool either reads your data or creates a draft you review and send yourself, from the dashboard.

There is no send tool, no payment-capture tool, no e-signature-dispatch tool, and no broadcast tool — by design, permanently. A draft_invoice call always produces a draft (never emailed, never charged); a create_contact call only writes a CRM record. Sending, charging, and signing stay in your hands, in the app. (This is the same boundary the REST API enforces.)

How the connection works

Add the connector

In your assistant's connector / integrations settings, add a custom connector and paste https://app.clientcasa.com/mcp.

  • Claude (claude.ai or Claude Desktop): Settings → Connectors → Add custom connector.
  • ChatGPT: Settings → Connectors → Add a custom MCP connector.
  • Cursor: add it as an MCP server in your MCP settings.

Sign in and approve

The connector sends you to ClientCasa to sign in. You'll see a consent screen that shows, in plain language, the two things a connector can be granted — Read and Read + Draft (see Scopes) — and restates the no-send boundary. Approve it.

There is no client secret or API key to manage: the connector registers itself with ClientCasa's authorization server via Dynamic Client Registration as a public PKCE client, and receives access only after you approve consent.

It's connected to one organization

The token is bound to the organization that was active when you approved — every tool call is automatically scoped to that org's data and enforces your membership live. If you belong to more than one organization and want to connect a different one, switch your active org and reconnect.

Manage or revoke the connection any time at Settings → Connected Apps in your dashboard — revoking cuts off the assistant immediately.

Tool catalog

Thirteen curated tools — eight read, five draft. They're deliberately task-shaped (not a raw table-by-table mirror), so the assistant reaches for the right one.

Read tools

ToolWhat it does
get_business_summaryA snapshot of open accounts receivable, month-to-date revenue, and active project count — the "how's my business" opener.
search_crmFind contacts and clients by name or email.
get_client_360A full relationship snapshot for one client: its contacts, open projects, and accounts-receivable summary.
list_invoicesList invoices, filterable by status, client, or the derived overdue condition.
get_projectOne project's name, client, status, dates, and contract value.
list_time_entriesTracked time, optionally scoped to a project and/or a date range.
get_event_dayOne run-of-show event day: date, status, venue, and the requested anchor times.
list_upcomingCalendar events starting within the next N days.

Draft tools (data only — never sent)

ToolWhat it does
create_clientCreate a client (a business relationship). A CRM record only — sends nothing.
create_contactCreate a contact (a person), optionally linked to a client.
log_time_entryRecord tracked time against a project. The billable rate is resolved server-side.
add_timeline_itemAdd a run-of-show timeline item to an event day.
draft_invoiceCreate a draft invoice for a client. Never sent, never charged — you send it from the dashboard.

Scopes: Read vs Read + Draft

The MCP tools use the same per-resource read: / write: OAuth scopes as the REST API. The consent screen groups them into two clearly labeled bundles so you know exactly what you're granting:

Read

read:clients, read:contacts, read:projects, read:invoices, read:time-entries, read:event-days, read:calendar-events — everything the eight read tools use.

Read + Draft

Read, plus write:clients, write:contacts, write:time-entries, write:timeline-items, write:invoices — the scopes the five draft tools use to create records you review.

A write: scope here only ever creates a draft — it never grants a send, charge, or sign capability. That's the no-send boundary, enforced at the tool layer, not just described here.

Recognized connectors only

Because the connection uses open self-registration, ClientCasa only lets a connector reach an approvable consent screen when every redirect destination it registers is an official host for a recognized assistant — currently claude.ai, chatgpt.com, and www.cursor.com (plus loopback addresses for local desktop clients). A connector that mixes in any other destination is refused before consent, so its self-chosen name can't be used to impersonate a first-party ClientCasa app. Recognized connectors are always shown honestly as unverified third-party tools — ClientCasa doesn't operate or endorse them.

Good to know

  • Reads don't touch any AI budget. MCP reads are ordinary database reads scoped to your org — they don't run ClientCasa's own AI, so there's no metering beyond anti-scrape rate limits.
  • One org per connection. The token is bound to the org active at approval; reconnect after switching orgs to point a connector elsewhere.
  • Same data rules as the API. Every tool runs with your organization's access control (overrideAccess: false) and re-checks your live membership on every call — a removed member's token stops returning data immediately.

See also

  • Authentication — API keys vs OAuth, and the scope model.
  • OAuth quick-start — the authorization-code + PKCE flow, if you're building your own client.
  • Connected Apps — review and revoke everything connected to your account.

On this page