agentic‑readiness docs
/
Scan at scale Blog Build one › Run a scan ›

DocsCapabilitiesWebMCP

WebMCP

In-page tools a browsing agent can call directly.

adoption Early pilotstrend ▲ risingchecked on every pagechecks 8verified 2026-09-30
Set up WebMCP on your site How a page offers tools to a browsing agent at runtime, and what a well-formed tool looks like.
Free Add WebMCP tools

Why an agent cares

It lets a page hand an agent named tools instead of making it drive the UI, which is the difference between a reliable action and a screen-scrape. Tools register in JavaScript, so this is captured from the live page rather than parsed out of the HTML.

Adoption

Early pilots. Named early adopters exist, behind flags or trials. Nothing has been independently measured yet. For this one in particular, browsers are trialling it, but almost no publisher has shipped it.

Direction of travel: ▲ rising, as at .

Chrome origin trial in 149 to 156 and an Edge flag, but Spronta's Jul 2026 survey put publisher deployment at close to zero outside demonstrations.

AdopterDepthEvidence
Google Chrome (origin trial 149-156)previewdeveloper.chrome.com
Microsoft Edge (flag, 147+)previewspronta.com
Angular (declareWebMcpTool)previewangular.dev
Expedia, Booking.com, Shopifyannouncedspronta.com

What we check

Absence is never a finding. Every check below runs only when this technology is detected, so a site that has not adopted this is not assessed on it and appears in no report. 8 of these 9 can fail it. In Lumar these appear on each page's own row.
CheckSeverityRaisesOn whose authority
WebMCP Tool Missing NamehighusabilityLumar readiness bar, beyond W3C WebMCP draft (Web Machine Learning CG), Chrome docs — WebMCP
WebMCP Invalid Tool NamehighusabilityLumar readiness bar, beyond W3C WebMCP draft (Web Machine Learning CG)
WebMCP Tool Missing Descriptionhighusabilityvendor profile: Chrome docs — WebMCP
WebMCP Imperative Missing Descriptionhighconformance, usabilityspecification: W3C WebMCP draft (Web Machine Learning CG)
WebMCP Imperative Missing Executehighconformance, usabilityspecification: W3C WebMCP draft (Web Machine Learning CG)
WebMCP Input Schema Not An Objecthighconformance, usabilityspecification: W3C WebMCP draft (Web Machine Learning CG)
WebMCP Duplicate Tool NamehighusabilityLumar readiness bar, beyond W3C WebMCP draft (Web Machine Learning CG)
WebMCP Param Missing Descriptionmediumusabilityvendor profile: Chrome docs — WebMCP
WebMCP Imperative Missing Input Schemainformationalnothingspecification: W3C WebMCP draft (Web Machine Learning CG)

Examples

Both run through the same checks as a live scan: the first passes, the second is flagged.

correcthtml
<form
      toolname="subscribe_newsletter"
      tooldescription="Subscribe an email address to the newsletter."
      action="/api/subscribe"
      method="post"
    >
      <label>
        Email
        <input name="email" type="email" toolparamdescription="Subscriber email address" required />
      </label>
      <button type="submit">Subscribe</button>
    </form>

    <script>
      if (document.modelContext) {
        (async () => {
          await document.modelContext.getTools();
          document.modelContext.registerTool({
            name: "get_order_status",
            description: "Look up the status of an order by its ID.",
            inputSchema: {
              type: "object",
              properties: { orderId: { type: "string", description: "Order identifier" } },
              required: ["orderId"],
            },
            async execute({ orderId }) {
              return { status: "shipped", orderId };
            },
          });
        })();
      }
    </script>
present but wronghtmlexcerpt
<form toolname="subscribe_newsletter" action="/api/subscribe" method="post">
      <input name="email" type="email" required />
      <button type="submit">Subscribe</button>
    </form>

    <script>
      if (navigator.modelContext) {
        navigator.modelContext.registerTool({
          name: "get_order_status",
          async execute(args) {
            return { status: "unknown" };
          },
        });
      }
    </script>

Specifications

DocumentRevisionKind
W3C WebMCP draft (Web Machine Learning CG)Draft, 30 September 2026specification
Chrome docs — WebMCPLiving documentvendor profile
Chrome docs — declarative API (form annotations)Living documentvendor profile
Chrome docs — imperative API (registerTool)Living documentvendor profile

Last re-read against the published documents: .