What WebMCP actually is
WebMCP is an open proposal in the W3C Web Machine Learning community group, with Chrome shipping the first implementation behind an origin trial from Chrome 149. The problem it addresses is what Chrome's documentation calls actuation: today, a browser agent completes a task on your site by simulating a human — reading the DOM, guessing which button does what, typing into fields, clicking. Every step of that guesswork is a place to fail.
WebMCP replaces guessing with declaration. The page itself registers tools — search, filter_results, checkout — with names, descriptions and JSON Schema for their input parameters, returning structured results. There are two ways to do it: an imperative API, where JavaScript registers tool functions, and a declarative API, where annotations on standard HTML forms turn them into tools. When a browser-integrated agent lands on the page, it sees the registered tools and calls them instead of puppeteering the interface. The tools execute visibly, in the tab, in front of the user.
Three structural facts worth underlining
Before comparing anything, three properties of WebMCP shape everything downstream. They come straight from Chrome's own documentation, not from our reading of it.
- There is no crawler discovery. Chrome's docs list it as a limitation in so many words: clients and browsers must visit a site directly to know whether it has callable tools. No
.well-knownpath, no registry, no scan. A WebMCP tool exists only for an agent that has already loaded your page. - There is no headless mode. Tool calls are handled in page JavaScript, so a browsing context — an open tab or webview with a visible interface — is required. Assistants and server-side agents calling tools without a browser are explicitly out of scope.
- The spec is in motion. WebMCP is an origin trial and an active discussion, and Chrome's documentation says plainly that it is subject to change. Anything built on it today is built on a moving surface.
The server-side door: MCP over HTTP
Now the other door. A remote, server-side MCP deployment exposes an HTTP endpoint speaking JSON-RPC 2.0 (Streamable HTTP is one of the protocol's two standard transports, alongside stdio) that any agent can call — no browser, no tab, no page. Our own KaliCart MCP plugin is a small, read-only example: it exposes a WordPress site's posts and pages as five tools (site_info, site_map, list_content, search_content, get_content) on a single endpoint, with discovery at a .well-known path, returning clean Markdown. The commerce equivalent is the KaliCart Bridge, which exposes a WooCommerce catalog to agents on the merchant's own domain — and, with consent, to federated search across the network. Details and documentation live at mcp.kalicart.com.
The callers here are headless by nature: assistants answering a question, shopping agents comparing offers, pipelines reading content. They discover servers the way machines discover things — well-known paths, manifests, registries — and they call tools from wherever they run. No screen is involved, and no one is watching the call happen.
The differences, side by side
Put the two doors next to each other and the shape of each becomes obvious.
- Who calls it. WebMCP: a browser agent driving a visible tab on the user's machine. Server MCP: any headless agent, anywhere, over HTTP.
- Where the tools live. WebMCP: in the page, registered by your frontend JavaScript or form annotations, alive only while the page is. Server MCP: on your server, behind a stable endpoint, available whether or not anyone has a tab open.
- How it's discovered. WebMCP: it isn't, in the crawling sense — an agent must load the page to learn the tools exist. Server MCP: discovery is the point — well-known paths, manifests, registries, federation.
- What it's for. WebMCP: assisted interaction — filling a complex form correctly, driving a date picker, completing a checkout the user is watching. Server MCP: machine consumption — reading a catalog, searching content, comparing structured offers at scale.
- Trust surface. WebMCP executes in front of the user, inside origin isolation and a permissions policy. A public catalog MCP may answer anonymous callers — the protocol itself supports authorization — which is why, on an open surface, provenance, consent and honest availability signals have to live in the protocol responses themselves.
Google maintains its own comparison of WebMCP and MCP, and it draws the same line: these are complementary mechanisms for different agent contexts, not two contenders for one job.
Two doors on the same storefront
Which brings us to the question a WooCommerce merchant should actually ask: do I have to choose? No — and eventually you shouldn't. The same site can expose a server-side MCP surface for the agents that never open a browser, and register WebMCP tools for the agents that arrive with a user in a tab. The tools can even mirror each other: the search_products a Bridge exposes over HTTP today is, almost verbatim, the tool a product listing page would register via WebMCP tomorrow.
Our order of operations is deliberate, and it follows the same rule we apply everywhere else: measure before you claim, and build where the traffic is. The measurable agent traffic on real WooCommerce catalogs today is headless — assistants and shopping agents calling HTTP endpoints. That door is open now. WebMCP's callers are still in preview, the spec is still moving, and there is no discovery mechanism for a crawler to find in the meantime. So WebMCP sits on our watchlist, not on our roadmap: the trigger to build is real browser-agent traffic on real merchant sites, not a specification milestone. When that traffic arrives, the second door gets built — as a progressive enhancement on the same catalog contract, not as a rewrite.
Two doors, one storefront. The mistake would be reading the new door as a replacement for the one agents are already walking through.
Sources
- WebMCP — Chrome for Developers (published 2026-05-18, updated 2026-06-09)
- WebMCP explainer — W3C Web Machine Learning CG
- Comparing WebMCP and MCP — Chrome for Developers
- Chrome Status: WebMCP
- KaliCart MCP · plugin on WordPress.org · related: UCP and ARC: two layers, not two standards