Studio concept · AI agents / MCP

Devre

Devre: a permission gate for agent tools

A Studio concept. A working, local and deterministic agent/MCP-style simulation for a studio supply room: read tools run freely, the single write tool stops at an on-page approval gate, and every call is recorded in an append-only trace.

Studio concept

Readable workflow and decision summary

The brief

Agents that can call tools need a clear line between looking and changing. People approving a write must see exactly what will change, and calls outside the agreed tool set must be stopped without asking anyone.

Our approach

The permission model is drawn as a circuit: one agent node, a bus and four declared tools, with a switch on the only mutating call. Tools are allowlisted by side-effect class (read, draft, write). The write pauses with its exact payload shown as a diff of the on order quantities; Approve closes the switch and updates the local ledger, Reject leaves it unchanged.

What we made

  • Demonstration data and scenario design
  • Tool-call and result interfaces
  • Human control and error states
  • Locally running interactive prototype

Try the project →

One payload, three decisions

Approved write

Reset; choose Restock low items and step to the gate. commit_reorder request: {draft_id: "DR-0001", ledger_version: 1, lines: [{sku: "SR-101", add_on_order: 6}, {sku: "SR-103", add_on_order: 13}, {sku: "SR-105", add_on_order: 3}, {sku: "SR-106", add_on_order: 6}]}. Approve changes on_order from [0,0,0,0] to [6,13,3,6]; ledger v1 becomes v2.

Rejected write

Reset and repeat with the same request. Reject returns {ok: false, error: "mutation_blocked", ledger_version: 1}. on_order remains [0,0,0,0]. The rejected request stays in the trace.

Blocked tool

Reset; choose Clear old stock. delete_item request: {sku: "SR-104", reason: "clear old stock"}. Response: {error: "tool_not_allowed", tool: "delete_item", policy: "deny"}. SR-104 remains on_hand: 5, on_order: 0; ledger v1 is unchanged. No approval prompt is offered.

Read, draft, write

Local rules

read_stock reads the ledger. draft_reorder and request_approval prepare a change without mutating it. Only commit_reorder may write, after approval of its exact versioned payload. delete_item is outside the allowlist.

Implementation status

The gate and append-only trace run in browser memory. This is a permission-policy prototype; it does not implement an MCP server or a connected tool transport. The circuit describes the local policy rather than a deployed agent service.

What can we build for you?

Start a project