WebMCP checker

Type your address and a real crawl finds the WebMCP tools your HTML declares, checks each one against the draft standard, and says what an AI agent in Chrome would get. It reads robots.txt and llms.txt for AI agents on the same scan.

Free · no account · we never call a tool or post a form, we obey your robots.txt, and we identify ourselves in your logs, except the requests sent under each AI agent’s name, which is what the agent check measures.

WebMCP, in plain English

WebMCP is a draft web standard that lets a page hand an AI agent in the browser a list of tools: named actions, each with a description and inputs. The agent calls a tool instead of guessing which button to click. The draft is written in the open by the W3C Web Machine Learning Community Group (webmachinelearning/webmcp). It is a draft: names and rules still change, and this checker is pinned to a dated revision of it, which the result names.

It is not the same as an MCP server. An MCP server is a separate service an AI app connects to. WebMCP tools live in your page and run in the visitor’s own browser tab, with whatever they are already signed in to. Convertlyft has both: an MCP server for your AI tools, and WebMCP tools on this site, including the form above.

Two ways to declare a tool

A form (declarative). Add a toolname and a tooldescription to a form you already have. Each named field becomes an input; toolparamdescription says what it is for.

<form action="/search" toolname="search_products"
      tooldescription="Searches the shop's products by keyword.">
  <input name="q" toolparamdescription="What to search for, like 'blue shoes'">
  <button type="submit">Search</button>
</form>

A script (imperative). Register a tool with document.modelContext.registerTool: a name, a description, an input schema, and the function that runs.

if (document.modelContext?.registerTool) {
  document.modelContext.registerTool({
    name: 'get_opening_hours',
    description: 'Returns the shop opening hours for one day.',
    inputSchema: { type: 'object', properties: {
      day: { type: 'string', description: 'A weekday, like Monday' } } },
    annotations: { readOnlyHint: true },
    execute: async ({ day }) => ({ content: [{ type: 'text', text: hoursFor(day) }] }),
  });
}

It is document.modelContext, not navigator.modelContext: the navigator shape was deprecated in Chrome 150, and code written against it registers nothing in current Chrome.

Turning it on in Chrome

  1. To test on your machine: open chrome://flags/#enable-webmcp-testing, set “WebMCP for testing” to Enabled, and relaunch Chrome.
  2. For your visitors: Chrome runs a WebMCP origin trial from Chrome 149 to 156. Register your site for it with Google and serve the token on your pages, as a <meta http-equiv="origin-trial"> tag or an Origin-Trial header. A token is tied to one origin and has an end date; an expired or wrong token switches nothing on.
  3. Serve the page over https. Tools declared on an http: page are one of the things the checker flags.

Mistakes the checker finds most easily

  • A toolname without a tooldescription, or the other way round: the browser does not get a usable tool.
  • A field with no name, or an input with no description or label: the agent cannot tell what to put in it.
  • Two tool forms with one toolname, or names and descriptions over the length limits.
  • A password field inside a tool form, or a hidden field an agent can set.
  • toolautosubmit on a form that changes something, like an order or a payment: the agent can then send it without the person pressing anything.
  • Scripts written against a removed WebMCP shape, such as navigator.modelContext.

What the free check reads, and what it cannot

The free check is the same crawl as our agent readiness check, read for WebMCP first. It opens up to 16 pages and reads the HTML your server sends: every tool form, the attributes on it, and the WebMCP sections of our 103 agent checks: availability and gating, the tool list, form quality and tool safety. It also reads your robots.txt for each AI agent and your llms.txt, because an agent that cannot reach a page never sees its tools.

It cannot see tools a script registers, whether Chrome actually registered any tool, or each tool’s input schema as the browser holds it. Those need your page loaded in Chrome, which a free account’s crawl does. It never calls a tool or submits a form: what a tool does when it runs is not measured.

A check tells you what is there today. Convertlyft keeps watching.

Tools as Chrome holds them

Every tool the browser registered on your pages, with its input schema, its quality and safety findings, and who registered it.

Caught when they break

Re-crawl when you ship: a tool that disappears, changes, or starts failing a check shows up as a finding.

Fixes, not just a list

Each finding names one change and the evidence behind it, and your AI tools can read it over MCP.

Start free Run the free SEO audit too →