WebMCP
WebMCP exposes in-page tools to agents via document.modelContext on the live page.
- Category
- Protocol discovery
- Standard
- Emerging checkEmerging
- Off by default, turn on in settings
What it checks
WebMCP lets a page register tools that an agent in the browser can call. The tools only exist in the live page, so this check reads the page open in your active tab rather than fetching anything. It looks for:
- tools registered through
document.modelContext, the entry point the spec settles on; - tools registered through
navigator.modelContext, the earlier alias, which Chrome 150 and later deprecate; and - declarative tools: elements such as forms marked up with a
toolnameattribute, and whether each has atooldescription.
Where it can, it reports how many tools are registered.
Results
| Status | When |
|---|---|
| Pass | Tools are registered through document.modelContext |
| Pass | Tools are registered through navigator.modelContext, with a note to migrate |
| Pass | The page declares toolname tools, with a note if any lack a tooldescription |
| N/A | No WebMCP tools of either kind were found on the page |
| Unmeasured | The extension could not read the page, so it could not look |
Unmeasured usually means the site you scanned is not the one open in the active tab. Open it there and scan again.
How to fix
To offer tools, register them through document.modelContext in the page’s
script. If you already use navigator.modelContext, switch to
document.modelContext.
For a form, you can declare it as a tool in the markup instead, and describe what it does so an agent knows when to use it:
<form toolname="search-products" tooldescription="Search the product catalogue by keyword.">
<label for="q">Search</label>
<input id="q" name="q" type="search" />
<button type="submit">Search</button>
</form>
Related: Form control labelling and MCP Server Card.