MCP concepts
Bounded reads, staged writes, and tenant isolation, using the exact same registry the UI uses.
Updated September 19, 2026 1 min read
When your team prefers an external assistant, Model Context Protocol (MCP) gives that client a defined way to read workspace context and prepare supported actions. The platform offers a tenant-scoped Streamable HTTP endpoint and a separate local stdio adapter; use the connection guide that matches your installation.
Invariants
- Bounded reads. Tools like
get_today_snapshot,search_pipeline,get_record_timeline, andsearch_knowledge_basereturn capped windows. Credentials and tokens are scrubbed. - Staged writes. Mutating tools insert into
action_queue. There is no MCP tool that approves a proposal. Approval happens from an authenticated admin session on Today. - Tenant isolation. External HTTP requests authenticate with a per-tenant MCP Bearer key from Integrations, or a founder session. Do not share one key across workspaces.
The tool list is the same registry the UI uses. Adding a tool in ai-tools.ts and claiming it on a module is what makes it appear over MCP. You do not maintain a second list.
Endpoints
- Platform:
/api/mcp - Tenant:
/api/public/<tenantSlug>/mcp
A GET on the tenant endpoint returns a small ok payload you can use to check DNS and deploy before debugging auth.
Client setup is on Connect an MCP client.