AI overview

Two AI surfaces: in-app chat and external MCP clients.

Dalea exposes AI capabilities through two surfaces, with different audiences and trust models. Knowing which one you're using matters: they have different security properties, different action sets, and different user-experience.

In-app chat
A side panel that lives inside dalea.app. Authenticated as you. Can call destructive tools, but always asks for confirmation.
External MCP
Your Claude Desktop, Cursor or ChatGPT, connecting via OAuth. Read-only by default — destructive actions stay in the in-app chat.

The in-app chat

Open it with ⌘/ or the sparkle icon. The panel is multi-turn, streaming, tool-using, and aware of:

  • the workspace you're in
  • the document you're currently viewing (if any)
  • your selection inside that document
  • your role and permissions

It can do everything you can do — find documents, read data records, create new documents, append blocks, register objects, run saved queries, and compose follow-up questions about the results. Because it acts as your user, it can also do destructive things, which is why every destructive call is confirmed by a card in the chat before execution.

Approval cards

When the assistant proposes to run a destructive tool (manage_documents:create, data_objects:bulk_create, placements:check_out, …), it pauses and emits an approval card. You see:

  • the tool and action
  • the arguments (resource name, payload summary)
  • buttons: Approve once, Reject, Always approve this action type

The "always" toggle is per-workspace; you can revoke from Settings → AI Approvals.

Models and providers

Workspace admins configure which model providers are enabled: OpenAI, Anthropic, Google. Per user, you can pick a default model from Settings → AI models. There is also an on-device option (Gemma via WebGPU) which runs in your browser with zero network egress.

Frontend tools

A small set of tools execute in the browser without server confirmation: navigate, open_search, show_document. These can't change anything; they just steer your UI in response to a request like "open the IFN-γ protocol".

The external MCP server

Dalea's MCP server exposes your workspace as a set of tools that any MCP-compatible LLM can call. The flow is OAuth 2.1; the connection is HTTP-streaming. See Connect Claude Desktop for the step-by-step setup.

External clients see roughly 70 tools grouped by domain — documents, blocks, data, queries, inventory, files, search. Destructive actions (delete, archive, supersede) are deliberately not exposed via MCP; if Claude Desktop wants to delete a document, it has to ask you to do it in the in-app chat (which then confirms via an approval card).

External clients are bound by:

  • Workspace scope — each token authorises exactly one workspace, enforced server-side on every call.
  • Role intersection — the OAuth client is created with a role; effective permissions are the intersection of your role and the client's role.
  • Rate limits — per-user, per-workspace token budgets.
  • Audit — every tool call is logged with operator, timestamp, args and a hash of the response.

Privacy

Tool inputs and outputs go to the LLM provider you configured. Dalea never sends data to a model unless you opted into a chat session that uses it. On-device models keep everything in your browser.

What's next