Because authorisation is per-user OAuth, the agent never holds more access than the person does, and a consequential change can be previewed before it lands. Workflow writes fail closed if the workspace resolves to a different tenant than the one you switched to.
Sanka's hosted MCP server at `https://mcp.sanka.com/mcp`. It connects an AI client to a Sanka workspace through browser-based OAuth, so each person signs in and approves access instead of putting a developer API key in the client config. The one endpoint carries both the general SDK tools and the read-only CRM tools.
- Business records inspected — companies, contacts, orders and invoices
- Those records created or updated, where the signed-in user holds write permission
- Approval requests and workflow state reviewed
- An operation previewed before a consequential change is carried out
- The active workspace read and changed mid-session, with record links and workflow writes re-bound to the new one immediately — `current_workspace`, `switch_workspace`
- Allowlisted browser workflows dispatched to a separate worker for the cases a CRM API cannot reach, such as setting a HubSpot company avatar through the UI — `browser_use`
A Sanka account. The endpoint takes no API key, bearer token or query parameter — the server starts the OAuth flow when the client connects, so the client has to support remote HTTP servers and OAuth discovery. Clients without native MCP OAuth get a Connect Sanka URL to open instead. Developer API tokens are deliberately not accepted for MCP access; they still work for the API and SDKs directly. What an agent can reach is bounded twice over: by the scopes approved at sign-in, and by the signed-in user's own Sanka permissions and workspace. Codex adds it with `codex mcp add` then `codex mcp login`; Claude Code with `claude mcp add --transport http`, then `/mcp` to sign in.
One command — claude mcp add --transport http sanka https://mcp.sanka.com/mcp
