Agent automation can move too quickly
A model saying approved must not become operational authorization.
WebMCP-native logistics control
LoadGuard gives a WebMCP agent structured access to inspect a truck, build and validate a deterministic 3D loading plan, and stage it for review while the application and database prevent execution until a human approves the exact proposal.
The agent reasons. The operator authorizes. The website defines and enforces the contract.

The problem
A model saying approved must not become operational authorization.
Agents need structured capabilities instead of guessing page state from labels.
The operator must approve the exact proposal that will later execute.
Commit needs idempotency, revision checks, and database-enforced state transitions.
The control model
Cannot approve itself.
Approval itself does not mutate truck state.
Database authority
Workflow
Agent reads TRK-042, the active truck load, and package constraints.
A deterministic planner creates a complete candidate load.
An independent validator checks hard loading constraints.
The agent stages an immutable proposal for human review.
Commit before approval returns APPROVAL_REQUIRED.
The operator approves the exact staged proposal in the UI.
The database verifies authority and updates active load state.
Judge scenario
Current
TRK-042
8/9 loaded, MED-901 inbound, 993/1200 kg, 75.6%, revision 1
Agent proposal
Valid candidate
9/9 placed, 1011 kg, 78.4%, 0 hard violations
Human gate
APPROVAL_REQUIRED
Commit is blocked until the exact proposal is approved.
Execution
EXECUTED
MED-901 loaded, active revision 2, duplicate commit blocked.
Spatial workspace

Solid cargo represents the truck's current operational state.
Cyan translucent cargo shows what the agent wants to stage.
Handling constraints remain visible before authorization.
The active load does not change until an approved commit succeeds.
WebMCP
| Tool | Purpose | Consequence |
|---|---|---|
| get_load_state | Inspect truck state | READ ONLY |
| get_package_constraints | Inspect package constraints | READ ONLY |
| create_load_plan | Build candidate plan | CANDIDATE |
| validate_load_plan | Validate candidate | CANDIDATE |
| stage_load_plan | Stage immutable proposal | CANDIDATE |
| commit_load_plan | Apply approved proposal | OPERATIONAL |
| get_action_ledger | Inspect audit events | READ ONLY |
Commit accepts a proposal identifier. The server and database decide whether execution is authorized.
Explore WebMCP architectureTrust by construction
Human approval is bound to the canonical staged proposal hash.
Stale proposals cannot execute against a newer truck revision.
Old proposals lose authority instead of lingering indefinitely.
One operator session cannot authorize another session's proposal.
Executed proposals cannot mutate the active load twice.
Agent, human, system, and blocked actions are recorded without chain-of-thought.
Structured capability
WebMCP Challenge
Production
Live deployment available now
WebMCP
Exactly 7 registered tools
Database
RLS plus protected authority RPCs
3D
Active and candidate cargo visualization
Validation
Independent planner and validator checks
Quality
Build, typecheck, lint, and tests verified
Final proof
Inspect the live judge scenario, stage a deterministic candidate, and see the execution boundary enforced by the application itself.