Skip to content

DISC-015Find

WebMCP tools exposed to browser agents

Whether your pages show signs of WebMCP, which lets an agent running in the browser call tools your page registers.

What we check

We look for WebMCP markers in the HTML of the pages our crawl captured. WebMCP is a Draft Community Group Report (Web Machine Learning Community Group, 17 September 2026). It is not on the W3C Standards Track and is in origin trials in Chrome 149 and Edge 150. It lets a page register tools for an agent in the browser. We recognise three markers: a script call to modelContext.registerTool(...), a declarative <form toolname="..."> (so far described only in the explainer, not the specification), and Shopify's WebMCP loader marker "shopify:webmcp_adapter_loaded".

Why it matters

An agent shopping for someone inside the browser currently has to work out your page by clicking and reading. With WebMCP, your page can offer named tools, such as search or add to cart, that the agent calls directly. Support is still limited to browser trials.

How we check

We send no extra request. We search the raw and rendered HTML of every page the crawl captured. PASS: at least one marker is found. The result names the kind of marker and the page, and lists tool names only when a <form toolname> states them in the HTML. We never guess the names of tools registered by scripts. SKIPPED: no marker is found. This check never fails, because tools registered at runtime by scripts cannot be seen in HTML without a WebMCP-capable browser, so their absence cannot be proved.

How to fix it

  1. Decide which actions a browser agent should be able to call on your pages, such as product search or add to cart.
  2. Register each one with document.modelContext.registerTool({ name, description, inputSchema, execute }). The draft moved this API from navigator.modelContext, and Chrome keeps the old name as an alias.
  3. For simple forms, the explainer proposes adding toolname and tooldescription attributes to the <form> element.
  4. On Shopify: the storefront loads its own WebMCP adapter, which registers tools only in a browser that supports it. Check that your theme has not removed it.

What good looks like

<form action="/search" toolname="search_products"
      tooldescription="Search the catalogue by keyword">
  <input name="q" type="search">
</form>

<script>
  document.modelContext?.registerTool({
    name: "add_to_cart",
    description: "Add a product variant to the cart",
    inputSchema: { type: "object", properties: { variantId: { type: "string" } } },
    execute: async ({ variantId }) => addToCart(variantId)
  });
</script>

Sources