Daily demo · 3 Nov 2026

Call the catalog, don’t scrape the page

Simulated agents, live tools. The shop registers tools on document.modelContext. No model call, no API key, nothing leaves the tab.

Alpine Outfitters is a ten-product outdoor shop. A shopper wants trail shoes under $140 with a heel-to-toe drop of 5mm or less. One agent reads CSS classes and clicks what it finds. The other calls tools the page registered. MCP would be those tools on a server. WebMCP is this tab, with the buyer still confirming the charge.

MCP

The agent calls tools on a backend the company hosts. The shopper may never be looking at that session.

WebMCP

The open page registers tools with the browser. The shopper’s agent calls them here. Money still waits for the buyer.

DOM scrape

Steps
—
Modeled
—
Result
Not run

WebMCP

Steps
—
Modeled
—
Result
Not run

Alpine Outfitters

A list, not a faceted search. Drop and price are tool arguments. Nothing here is for sale.

Shelf

Scrape log

    WebMCP log

      Tool registry

      From getTools() on this page. Chrome 153 wanted tool arguments as a JSON string; Chrome 155 takes an object. This polyfill accepts both.

      Call a tool yourself. The cart and the checkout panel update if the tool writes them.

      Inspired by