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 aresource of "contact", "organization", or
"deal". Campaigns and conversation traces have their own tools. There is no
send on a live conversation — messages:write is unwired. Models that need to
send do so into a sandbox through Studio.
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 localstdio 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, organizations, deals, campaigns. Call
describe_schema before you guess field keys.Agent Studio
Graphs, publish, sandbox. Draft until you ship.