Decionis
Use case · Human-in-the-loop MCP

The agent proposes. A person disposes. The record proves it.

How to make an MCP agent pause on its consequential tool calls until a person approves: the agent calls the decision gate as a tool, ESCALATE holds the action, the approver signs off in Slack, Microsoft Teams, or Webex, and the whole exchange lands in a signed Decision Dossier.

The loop

Propose → evaluate → hold → approve → execute

The agent calls the gate as a tool before its consequential tools. ALLOW proceeds immediately. ESCALATE holds the action and routes it to a person on Slack, Teams, or Webex. BLOCK refuses outright. Every outcome is signed.

What does the agent actually call?

A tool. The hosted MCP server at protocol.decionis.com/mcp exposes decionis.evaluate_decision over streamable HTTP with an org API key; the @decionis/mcp npm package exposes the same check over stdio for local hosts. The agent describes the action it wants to take; the verdict — ALLOW, ESCALATE, or BLOCK — comes back before the consequential tool runs.

MCP surfaces and setup

Where does the human actually approve?

On the decisioning surface the org already lives in: Slack, Microsoft Teams, or Webex. The escalated action arrives as a card with the context and the policy that held it; approve, reject, or escalate further, and the decision is recorded with the reviewer identity. There is no separate approval console to adopt.

What the approver sees

What stops the agent from just executing anyway?

On an escalated verdict no execution grant is issued — the gate's answer is the hold itself, and the integration executes only on an authorized outcome. The mandatory rule is simple: ESCALATE means a human approval, every time, and the dossier shows whether that rule was honored.

Escalation and overrides

Who can approve an AI agent's customer-acquisition action?

For a sales agent working a prospect list — a CRM record updated, an outbound message sent — the named account owner approves each send through the same loop, and a changed recipient, a message off the approved template, a contact who opted out, an expired approval, or a provider answer that was lost each fails to execute. The reference implementation carries a synthetic, offline, self-checking demo of exactly that boundary. It is the sales reading of customer acquisition; a bank taking on a customer is a different action, described by the banking profile.

The CRM outreach demo (synthetic, not a hosted integration)

What proof exists after the loop closes?

An Ed25519-signed Decision Dossier for the evaluation and the review outcome: what the agent proposed, which policy version held it, who signed off, when. Anyone holding the link can verify the signature against the published key — no account, no trust in a dashboard.

Public verification

What about verifying the approver is really the person present?

That is Presence, the adaptive human verification layer built into Decionis: it evaluates behavior, device trust and liveness, and steps verification up only when the action's risk demands it — passkey step-up, out-of-band mobile approval, and its own signed records. Use Decionis to decide and hold the action; add Presence when who is physically approving matters as much as whether it is approved.

Presence — adaptive human verification

Try the loop end to end

Point your MCP host at the gate, propose an action a policy escalates, and watch it wait for the approval — then verify the signed dossier the exchange produced.

Quickstart