Skip to content
UHPUHPDeveloper Guide
Independent resource · Not affiliated with HarnessRouter · Site data checked 6 Sep 2026

Comparison

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.

Verified: WebMCP: W3C Community Group DraftReport: 4 Sep 2026

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 current WebMCP specification is 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 this verification cutoff, the official webmachinelearning/webmcp repository main is 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-08-11 Draft with a 64-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.