Skip to content
UHPUHPDeveloper Guide
Independent developer guide. Not affiliated with HarnessRouter or the official UHP project.

UHP vs WebMCP

WebMCP exposes structured tools from a web document to browser/in-page agents; UHP standardizes remote execution through a selected complete agent harness. They can compose, but they standardize different boundaries.

Page reviewed 4 Oct 2026 Source and review policy

WebMCP: W3C Community Group DraftScope: evolving Community Group draft

Use WebMCP when a browser document exposes application actions to an agent; use UHP when a client submits work to a server-owned complete harness. The current WebMCP draft and Chrome implementation guidance, reopened 4 October 2026, describe a proposed browser API. They do not make it a W3C Recommendation. UHP is UHP 2026-09-28 Draft.

RequirementBoundary to design
Act on the currently loaded web applicationWebMCP document/tool scope, origin and browser support
Continue remote work after a page is closedUHP execution lifecycle plus explicit bridge persistence
Cancel a page tool and an outer harness turnTwo cancellation paths; observe each outcome
Let another origin invoke a toolWebMCP exposure/permissions policy plus application authorization

Consider a harness that asks a page to export a report. Before bridging the call, decide what happens if navigation destroys the document: whether the action already committed, whether a result can be retrieved independently, and whether the outer task should fail or await reconciliation. An AbortSignal or a cancelled outer run does not prove the report was rolled back.

The browser tool’s annotations inform an agent; the application still enforces its permissions. UHP security controls the outer server boundary. Keep these checks separate and feature-detect the concrete browser surface rather than treating publication of a draft or test dashboard as universal browser availability.

UHP standardizes how a client asks a server to execute a selected, configured complete agent harness; WebMCP standardizes a browser-facing JavaScript/HTML surface through which a web document exposes structured tools to agents.

The overlap is agent execution, but the trust boundary and object model are different. A WebMCP tool lives with a web page and invokes page/application logic. A UHP Response or Session represents work owned by a remote UHP server and complete harness runtime.

The September source snapshot was a Draft Community Group Report dated 4 September 2026, published by the W3C Web Machine Learning Community Group. The document explicitly states that it is not a W3C Standard and is not on the W3C Standards Track.

At the preserved 6 September review cutoff, the official webmachinelearning/webmcp repository main was 50c4b7fd6c4402731271649bc544b662b061ed44. That 4 September change explicitly documents headless use cases as in scope. The specification also links an active Web Platform Tests suite.

The current draft extends Document in secure contexts with document.modelContext. Its ModelContext interface exposes three principal methods plus a change event:

  • registerTool(tool, options) registers a structured page tool.
  • getTools(options) returns tools exposed to an in-page caller from the document tree.
  • executeTool(tool, inputObject, options) invokes a registered tool on its owning document.
  • ontoolchange notifies consumers when the exposed tool set changes.

An imperative ModelContextTool carries a name, human-facing optional title, natural-language description, JSON Schema inputSchema, an asynchronous-capable execute callback and optional annotations. Tool execution receives an AbortSignal, and callers can also cancel an execution with an AbortSignal.

The current annotations are:

  • readOnlyHint — the tool is intended not to modify state;
  • untrustedContentHint — returned content should be treated as untrusted;
  • consequentialHint — execution may have significant or non-reversible real-world effects.

Registration can also declare exposedTo origins, while getTools() can request tools from selected fromOrigins. The API is gated by a tools Permissions Policy and origin-isolation requirements. The draft separately includes a declarative WebMCP path intended to expose form-driven functionality without requiring every tool to be authored only through imperative JavaScript.

Section titled “WebMCP is related to MCP, but it is not the MCP wire protocol”

The WebMCP specification says pages using the API can be thought of as MCP servers whose tools are implemented in client-side script. That is a useful mental model, not a statement that a page becomes a network MCP server speaking the MCP transport specification.

WebMCP’s normative surface is browser/web-platform API machinery: Document, ModelContext, document trees, origins, Permissions Policy, events and JavaScript callbacks. MCP’s canonical protocol surface is a client/server protocol with its own transports, capabilities, tools/resources/prompts and extensions.

Accordingly:

  • WebMCP is not a new UHP version or UHP extension.
  • WebMCP is not the MCP 2026-07-28 protocol release and should not be described as an MCP Core release.
  • A WebMCP-capable website is not automatically a UHP server.
  • A UHP server does not automatically expose WebMCP tools.

See UHP vs MCP for the broader MCP boundary.

DimensionUHPWebMCP
Primary concernExecute work through a selected configured complete harnessExpose web-application functionality as structured page tools to agents
Primary boundaryClient ↔ UHP server ↔ complete harnessWeb document ↔ browser/in-page agent
Core objectsHarnesses, Responses, Sessions, Containers, Files, streamed EventsDocument.modelContext, registered tools, input schemas, execution callbacks, annotations
Execution locationServer-managed harness/runtime and workspaceThe tool’s owning web document/application logic
Transport modelHTTP resource API plus SSE event streamingBrowser JavaScript/HTML API; not a remote UHP task transport
DiscoveryUHP discovery and configured harness catalogueTool registration plus browser/in-page discovery through ModelContext
CancellationUHP response/task lifecycle cancellationPer-tool execution cancellation through AbortSignal
Cross-origin modelAuthenticated-principal/object scoping at the UHP server boundaryOrigin isolation, tools Permissions Policy, exposedTo / fromOrigins controls
Current maturityUHP 2026-09-28 Draft with a 85-check conformance suiteW3C Web ML Community Group Draft report, 4 Sep 2026; not a W3C Standard

A realistic architecture can use both layers:

Product / client
│
│ UHP: start/continue remote harness work
▼
UHP server + complete harness
│
│ browser automation / browser agent
▼
Web page
│
│ WebMCP: discover and invoke page tools
▼
Web application logic

For example, a complete harness running behind UHP could control a browser that understands WebMCP and choose a page-registered tool instead of inferring a sequence of DOM clicks. UHP would still own the remote task/session/workspace contract; WebMCP would govern the page-level tool exposure and invocation boundary.

That composition is an architecture, not a standardized UHP↔WebMCP binding. No primary source reviewed here establishes native WebMCP support in HarnessRouter, native UHP support in WebMCP, or a conformance mapping between their object models.

Security boundaries matter more than the similar “tool” vocabulary

Section titled “Security boundaries matter more than the similar “tool” vocabulary”

WebMCP’s current security/privacy section treats agent-visible tools as a meaningful trust surface. It calls out prompt injection through tool metadata, output injection, malicious or inconsistent tool implementations, misrepresentation of intent, privacy leakage through over-parameterized tools, same-origin concerns and private-browsing boundaries.

The draft also records unresolved limits: agents cannot currently verify that an implementation matches its natural-language description, descriptions remain semantically ambiguous, and tool behavior lacks a statically verifiable behavioral contract. Its annotations help communicate intent and trust signals, but they are not cryptographic proof that a tool is safe or faithfully implemented.

UHP’s security requirements live at a different boundary: server authentication, principal/object isolation, artifact/credential handling, structured errors and harness execution controls. A deployment using both protocols must preserve both trust models rather than assuming one substitutes for the other.

Material changes worth revisiting include:

  1. movement from Community Group Draft toward a formal W3C Standards Track deliverable;
  2. substantive changes to the ModelContext IDL, declarative API, permissions/origin model or security annotations;
  3. broader browser implementation evidence beyond experimental or trial surfaces;
  4. a standardized bridge between WebMCP and network MCP transports; or
  5. explicit UHP/HarnessRouter integration backed by primary-source code or documentation.

Read UHP vs MCP for the network tool/context protocol boundary, MCP Tasks for MCP’s durable asynchronous-operation extension, Skills Over MCP for skill distribution, and the ecosystem map for adjacent interoperability layers.