What Is WebMCP? The Next Layer of AI Discovery
WebMCP lets a page declare interactive tools for AI agents, not just content. What it is, how it differs from llms.txt, and how readiness is actually measured.
Content is for reading. WebMCP is for doing.
llms.txt and structured data tell an AI system what a page is about. Neither tells an agent what a page lets you do. WebMCP closes that gap: a page declares its interactive tools (search, filter, add to cart, submit a form) the same way it declares a title or a schema, so an MCP-compatible agent can use them directly instead of guessing at a UI it was never built to see.
Two ways to declare a tool
WebMCP defines a browser API, navigator.modelContext.registerTool(), that a page calls to register a tool with a name, a description, and parameters — the imperative path. A simpler declarative path exists too: toolname and tooldescription attributes placed directly on the HTML element that triggers the action, no JavaScript API required.
- The imperative path calls
registerTool()from JavaScript, typically inside a bundled module. - The declarative path uses
toolname/tooldescriptionattributes on the element itself, readable straight from raw HTML.
Why most sites test as “none” even when they have working tools
A real bug in our own engine illustrates how easy this is to get wrong. GEO Optimizer's WebMCP check originally looked for registerTool() only in the raw HTML response. That's invisible for almost any real implementation, because Astro, Vite, Next, and SvelteKit all emit that call inside a hashed, externally-loaded JS bundle, never inline. A site with five working tools, a published manifest, and a webmcp block in its own /ai/summary.json still scored readiness_level: none.
The fix wasn't to execute JavaScript on every audited page (too expensive to run at scale) or to fetch and parse every bundle (fragile, since there's no reliable way to know which file to look in). It was simpler: /ai/summary.json is data the audit already downloads for a different check, so reading its webmcp block, for example {"webmcp": {"available": true, "tools": [...]}}, costs zero extra requests and credits partial readiness when the static HTML scan finds nothing. If your tools are implemented behind bundled JS, declaring them in /ai/summary.json too is the one addition that makes them visible to any static scanner, not just this one.
How readiness is actually scored
The check looks at two groups of signals. WebMCP signals: registerTool() in raw HTML, toolname/tooldescription attributes, or a declared webmcp block in /ai/summary.json. Broader agent signals: schema.org potentialAction (SearchAction, BuyAction, OrderAction), forms with real labels an agent can parse, and a linked OpenAPI/Swagger spec.
- Advanced requires at least one WebMCP signal plus two or more agent signals.
- Ready needs either a WebMCP signal on its own, or two-plus agent signals without one.
- Basic means at least one agent signal, but no WebMCP signal.
- None means nothing detected.
This is diagnostic, not scored: it carries zero weight in the 100-point GEO score today. That's deliberate. The standard is still forming, and folding an early, largely optional signal into a score used to compare sites would penalize sites for not adopting something with no confirmed adoption curve yet.
Should you implement it now?
Depends on what your site actually does. If it's informational — a blog, a marketing page, a guide — there's nothing to declare; WebMCP describes actions, and you don't have any beyond navigation. If your site has real interactive surfaces — search, filtering, checkout, account actions, a dashboard — it's the first formal way to make those legible to an agent instead of leaving it to guess at a UI built for a mouse and a screen.
Our own roadmap lists WebMCP readiness as exploring, not shipped. The spec itself is early, with no confirmed adoption curve or citation impact yet. Treat this guide as a map of what exists today, not a claim that skipping it costs you anything right now.
Further reading
- What Is llms.txt? — the declarative content layer WebMCP's action layer sits next to.
- AI crawlers and robots.txt: the 2026 guide — the access layer underneath both.
- Structured data for AI citations — potentialAction and the other schema signals WebMCP readiness also checks.
- How Claude Cites Sources: What We Know So Far
Apply this guide
Run an AI SEO audit before you change pages.
Use the audit to find which signal is holding the site back: crawler access, schema, llms.txt, content clarity, AI discovery, or entity strength.
- Best for pages that need a technical and content baseline.
- Next metric: AI readiness score plus the weakest signal category.
Frequently asked questions
Is WebMCP the same thing as MCP (Model Context Protocol)?
Related, not identical. MCP is a protocol for connecting an AI assistant to external tools and data sources, typically through a dedicated server. WebMCP applies the same idea directly inside a web page — a page declares its own tools in-browser, without needing a separate MCP server running.
Does adding WebMCP improve my GEO score?
Not directly. It's a diagnostic signal with zero weight in the 100-point score today, because the standard is still early and unconfirmed as a ranking or citation factor. It's tracked so you can see where you stand, not to reward or penalize adoption yet.
My tools are registered via JavaScript. Why does the audit say “none”?
Almost certainly because registerTool() runs inside a bundled JS file the static scan doesn't execute — the exact gap described above. Add a webmcp block to /ai/summary.json listing your tool names, and readiness credits it without needing to see the bundle at all.
Do I need WebMCP if my site is just content — no search, no checkout, no forms?
No. WebMCP declares actions. If your site doesn't have actions beyond navigation, there's nothing to declare, and a “none” or “basic” readiness level is accurate, not a problem to fix.
Get the monthly State of GEO report
AI search readiness benchmarks, adoption stats, and the actions that move the needle — delivered monthly. No spam.
By submitting, you agree to receive the monthly GeoReady newsletter: benchmark data from the State of GEO dataset, practical GEO guidance, and product updates. You can unsubscribe anytime. See our Privacy Policy.