SEO gets your site found; the next step is getting it used by an agent in the browser. WebMCP proposes that the page offer tools with a name, a description, and parameters. It's a W3C community draft, with no stable browser: it's worth preparing a test page, not rebuilding the site or promising rankings.
1What WebMCP is and what state it's in (specification of 10/16/2026)
2The fields of a tool: name, description, schema, execute
3Feature detection, cancellation, and the manual path
4Where your site would gain a tool, and where it wouldn't
Goal: register a read-only tool with document.modelContext.registerTool() on a test page, as preparation.
01 · From found to used
Click each block.
Click each block in the diagram to see what it does.
First be found; then, in time, be used.
02 · Prepare without overdoing it
Tap each step.
1. Pick one journey
Start with something that only looks things up: opening hours, availability, list price, public order status. Nothing that buys, sends or deletes.
If your site has no useful journey for an agent, the right decision is to have no tool.
2. Describe it well
A specific, verb-based name (consultar_horarios). A description that says what it does, what it returns and its limit ("read-only; does not book"). Each parameter with a type and a description in the inputSchema.
3. Detect, and fall back to manual
Register only if the browser exposes the API ('modelContext' in document). If it doesn't, the page stays the same for the person, with the manual path visible.
Keep the AbortController: aborting removes the tool.
4. New name, old courses
The specification changed: the API now lives at document.modelContext. The old INEMA WebMCP courses and many guides use the earlier name, on the navigator object, and a declarative form on forms that does not appear in the text of the October 16, 2026 specification (to be confirmed in the explainer).
To go deeper (security, schemas, agents), follow the WebMCP Program, keeping this name change in mind.
03 · A read-only tool, ready to copy
Test page served over HTTPS. Replace the hours with yours.
horarios.html · test page
<section id="horarios">
<h1>Opening hours</h1>
<p>Monday to Friday, 8 a.m. to 6 p.m. Saturday, 8 a.m. to 12 p.m. Sunday, closed.</p>
</section>
<p id="aviso-agente" hidden>This browser does not offer tools to agents. The information above is just as valid.</p>
<script>
const horarios = { semana: "08:00-18:00", sabado: "08:00-12:00", domingo: "closed" };
const controle = new AbortController(); // controle.abort() removes the tool
if ("modelContext" in document) {
document.modelContext.registerTool({
name: "consultar_horarios",
title: "Check opening hours",
description: "Returns the store's opening hours for the requested day. Read-only: does not book anything.",
inputSchema: {
type: "object",
properties: {
dia: { type: "string", enum: ["semana", "sabado", "domingo"], description: "Day to look up" }
},
required: ["dia"]
},
annotations: { readOnlyHint: true },
async execute({ dia }) {
return { dia, horario: horarios[dia] };
}
}, { signal: controle.signal }).catch((erro) => console.warn("WebMCP:", erro));
} else {
document.getElementById("aviso-agente").hidden = false;
}
</script>
Header for pages WITHOUT WebMCP
Permissions-Policy: tools=()
Check
grep -c "registerTool(" horarios.html
# 1
# published: agente-ready detects the tool in the static code
python3 agente-ready.py https://seusite.com/teste/horarios.html --saida saida/teste
Example from the repository
agente-ready found on inema.club 1 registerTool() call on document.modelContext and the policy Permissions-Policy: tools=(self); the WebMCP block closed at 100. On the news and eventos sites, with no tool, the block stayed at 29.
This measures preparation. No AI promises to cite or rank you better because of it.
registerTool(tool, options) rejects a repeated name, an empty name or description, and an invalid schema.
Permissions-Policy: tools=() turns the API off on the page and in its frames.
04 · Practice: the test page
Don't touch the main site: use a test page.
E1 · Read-only tool
40 min
Adapt the template to a real lookup for your business, publish it on a test page over HTTPS and open it in a regular browser.
Done when: the page opens with no console errors, shows the manual-path notice when the browser doesn't offer the API, and grep for registerTool( returns 1.
E2 · Where yes, where no
20 min
List 3 journeys on your site and decide for each one: read-only tool, action with human confirmation, or no tool. Write down the reason.
Done when: a short text with 3 journeys, the decision and the reason for each, and which pages get Permissions-Policy: tools=().
05 · Test what you learned
The explanation appears after your answer.
Question 1 of 4
According to the October 16, 2026 specification, where does the WebMCP API live?skill
Correct
document.modelContext, HTTPS only. Older courses use the previous name, on the navigator object.
Not this one
document.modelContext, HTTPS only. Older courses use the previous name, on the navigator object.Review: From found to used
Question 2 of 4
How do you take a registered tool offline?
Correct
The specification has no separate remove function: the signal is what removes it.