Skip to main content
Sailer MCP lets Claude, ChatGPT, Cursor, and anything else that speaks MCP call tools against a live workspace. You add a URL, sign in, and ask in plain language. The model does the rest. Two servers, not one: dumping both on a model makes it pick worse tools. Connect the one you actually need. Start with CRM. Studio is for people who edit agents. The URL must include /mcp/ before /crm or /studio. /crm by itself is a typo, and the client will tell you it cannot reach the server.

What is live

CRM record tools take a resource argument so they can grow. Today the only value is "contact". Campaigns are live. Organizations, deals, and messages are not tools yet — OAuth may list those scopes; the tools are not behind them. Studio inspects an agent’s working copy, publishes it, and tests it in a sandbox. Nothing reaches live conversations until you publish on purpose.

How it talks

Stateless JSON over Streamable HTTP. There is no SSE stream, no WebSocket, and no local stdio package. Long work — a sandbox turn — is start-then-poll, because a connection that sits idle dies on the load balancer. You do not need to know that to connect. Your client does.

Prove it

Once a client is connected, ask:
Which Sailer workspace am I connected to?
The model should call whoami and name the workspace, the parent organization, who authorized the connection, and the scopes you granted. That single answer confirms auth, tenancy, and tool-calling all work.

Start here

Connect a client

Claude Code, Claude, ChatGPT, or Cursor. About ten minutes.

Authentication

OAuth vs a workspace token, scopes, and why the first connection cannot write.

CRM server

Contacts, schema, campaigns. Call describe_schema before you guess field keys.

Agent Studio

Graphs, publish, sandbox. Draft until you ship.