One Commerce Protocol, Two Interfaces: PWA for Humans and MCP for Agents
When a product adds an agent interface, it is tempting to treat it as a second application: the web interface is for people, while a collection of tools is for AI. That split is convenient at the UI layer. It becomes dangerous when it reaches the transaction model. If the human interface and the agent interface use different order states, permission rules or definitions of completion, the system…
Many companies add agent interfaces to their products, treating them as separate applications rather than part of the same system. This can lead to inconsistencies in transaction models, where a human sees one version of an order while an AI agent reports a completed action. To avoid this, it's safer to use one protocol with two different interfaces.
While a Progressive Web App (PWA) serves humans well by displaying terms, collecting approvals, managing identity, and inspecting exceptions, an MCP (Machine Communication Protocol) server excels at structured discovery, comparison, repetitive preparation, and following explicit machine-readable contracts.
The interfaces should not divide truth but divide work. Both interfaces must agree on the entity being acted upon, the current state, the allowed transition, and the evidence produced by that transition. Permissions should describe specific actions, not grant blanket access. For example, WebAZ uses a capability matrix where authenticated agent writes map to named action scopes, denying undeclared writes by default. This makes authorization part of the integration contract rather than an assumption hidden in client code.
An agent declaration can specify allowed actions, such as search and place_order. The key is that permission should name the action and its boundary. Preparation actions like search, compare, quote, or assembling a request are reversible, while commitment actions like creating a commercial obligation or changing accountable state are not. This separation makes it easier to reason about agent workflows.
WebAZ's risk actions return an approval URL, requiring a human to complete a Passkey ceremony in a browser surface before the agent can proceed. However, some actions require live human presence and cannot be overridden by a declared scope. A discovery-only surface, although not creating orders or moving funds, can help evaluate whether an agent can represent product facts and unknowns honestly before introducing consequential actions.
Before adding an agent interface to a commerce system, ask if the web app and agent read the same product and order identifiers, if both interfaces can name the same current state, if each agent write is mapped to an explicit scope, if undeclared writes are rejected, if preparation and commitment are separate transitions, if human approval is visible, if an agent can resume from a confirmed result, and if both interfaces produce the same audit trail when an operation fails.
If these answers differ, the issue lies in a split transaction model rather than just API design. The solution is to maintain a single protocol with two interfaces, exposing the real system while preserving the rules that make outcomes understandable.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.