What it is
WebMCP brings the MCP contract into the browser. A page declares tools via a <script type="application/mcp+json"> block or the window.mcp API. Chrome's WebMCP EPP (Early Preview Proposal) gives agents (like the one inside Chrome) direct access to page-scoped tools.
It's complementary to server-side MCP: WebMCP exposes capabilities that make sense only while the user is on the page (e.g. "summarise this article", "add this item to my cart using my logged-in session").
Remediation Prompt
I want to improve my site's agent readiness. Please implement the following fix for WebMCP across our codebase. Instructions: Please fix the WebMCP issue on my site so it is agent-ready.
How we test it
Since V1 is HTTP-only (no headless browser), we do the best we can from the HTML:
- Fetch homepage HTML.
- Look for a
<script type="application/mcp+json">tag. - Look for
<meta name="mcp-webmcp" content="...">hints. - Look for any
/.well-known/webmcp.jsonconvention file.
In V2 (headless browser), we'll evaluate window.mcp live.
Pass Warn Fail Matrix
| Condition | Status | Score |
|---|---|---|
| HTML declares a WebMCP block with ≥1 tool | pass | 1.0 |
Only a meta or .well-known/webmcp.json hint present |
warn | 0.6 |
| Nothing detected | fail | 0.0 |
Weight is only 1 — WebMCP is early.
Remediation Prompt
If your site is client-interactive and could expose in-page agent tools, publish a WebMCP descriptor in the HTML:
<script type="application/mcp+json">
{
"version": "1.0",
"tools": [
{
"name": "add_to_cart",
"description": "Add the currently viewed product to the user's cart.",
"inputSchema": { "type":"object","properties":{"productId":{"type":"string"}},"required":["productId"] }
}
]
}
</script>
Implement the corresponding handler on window.mcp.
Only expose tools that act within the user's current authenticated context.
References
Test Fixtures
pass-script-tag.htmlwarn-meta-only.htmlfail-none.html