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 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 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, schema, campaigns. Call
describe_schema before you guess field keys.Agent Studio
Graphs, publish, sandbox. Draft until you ship.