Skip to main content
Build and run it yourself · Build on it
Build on it

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

  1. Bounded reads. Tools like get_today_snapshot, search_pipeline, get_record_timeline, and search_knowledge_base return capped windows. Credentials and tokens are scrubbed.
  2. 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.
  3. 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.