WebMCP lets your website hand AI agents a proper set of tools
AI agents in Chrome already click through websites for people, guessing at buttons from what they see. WebMCP, a proposed web standard in origin trial from Chrome 149, lets a site describe its actions as tools instead, so an agent can call "book a table" with the right fields rather than hunting for the date picker.
In short
- WebMCP is a proposed standard that lets a page register structured tools, each with a name, a description and an input schema, for agents running in the browser.
- You can annotate an existing HTML form with two attributes, or register tools in JavaScript with document.modelContext.registerTool.
- It is experimental: an origin trial from Chrome 149, a flag for local testing, and APIs that are still changing.
- Google says Gemini in Chrome will support it, which makes it worth trying on the forms that earn you money.
Agents are already browsing your site
At Google I/O in May 2026, Chrome described Gemini in Chrome as running on desktop, iOS and now Android, with auto browse carrying out multi-step tasks for people: compare these, fill that in, book the next free slot. Other assistants do the same in their own browsers. Some of the visitors to your booking form are no longer looking at it with eyes.
Today those agents mostly work from what they can see. They take a screenshot or read the page structure, decide which box is the date field, type, look again, and hope the custom date picker behaves. It works surprisingly often, and fails in exactly the places that matter: the step that takes payment, the dropdown built from divs, the button that only appears after a scroll.
Reading the screen
- Screenshot the page
- Guess which box is the date
- Open the date picker
- Click the wrong month
- Screenshot again
- Pick the 30th
- Find the guests dropdown
- Scroll to the Book button
Calling a tool
book_table({ date, guests, time })- The site answers with the booking
What WebMCP is
WebMCP is a proposed web standard that lets a page register structured tools for agents running in the browser. A tool has a name, a plain-language description, a JSON Schema for its inputs, and a function that does the work. The agent reads the list of tools a page offers and calls one, much like a developer calls an API.
The name nods to the Model Context Protocol, the way many AI apps already connect to tools, but the difference matters: WebMCP runs inside your web page, in the visitor's own browser, with the visitor there. There is no separate server to run, and the tool executes with the same session and permissions the person already has on your site. The Chrome team says it is designed for that human-in-the-loop case first.
The easy way: describe the form you already have
The declarative API is two required attributes on a form, toolname and tooldescription, plus an optional toolparamdescription on any field that needs explaining. The browser turns the form's fields into the tool's input schema. Hover a field to see what an agent is handed.
Your form
Date30/10/2026 Time20:00 Guests4 NameAsha Book a tableWhat the agent sees
{
"name": "book_table",
"description": "Book a table for a date,
time and party size.",
"inputSchema": {
"properties": {
"date": { "type": "string" },
"time": { "type": "string" },
"guests": { "type": "number" },
"name": { "type": "string" }
}
}
}
<form toolname="book_table"
tooldescription="Book a table for a date, time and party size."
action="/reservations" method="post">
<label>Date
<input type="date" name="date" required
toolparamdescription="The day of the booking">
</label>
<label>Guests
<input type="number" name="guests" min="1" max="12" required
toolparamdescription="How many people, from 1 to 12">
</label>
<label>Name <input name="name" required></label>
<button>Book a table</button>
</form>When an agent fills and submits the form, the submit event tells you so: SubmitEvent gains an agentInvoked flag and a respondWith() method, so you can send the agent a useful answer instead of a page it has to read. Two new CSS pseudo-classes, :tool-form-active and :tool-submit-active, let you show visitors when an agent is working on a form. By default the agent fills the fields and the person presses the button; a toolautosubmit attribute lets the agent submit as well.
form.addEventListener('submit', e => {
if (!e.agentInvoked) return;
e.preventDefault();
e.respondWith(
book(new FormData(form)).then(r => `Booked for ${r.guests} at ${r.time}.`)
);
});The flexible way: register tools in JavaScript
Not every useful action is a form. The imperative API registers tools on document.modelContext with registerTool(). It suits single-page apps, search boxes, filters and anything that only makes sense in a certain state, because a tool can be registered when it becomes useful and removed with an AbortController when it stops being useful.
const controller = new AbortController();
await document.modelContext.registerTool({
name: 'check_order_status',
description: 'Look up the delivery status of an order by its number.',
inputSchema: {
type: 'object',
properties: {
order: { type: 'string', description: 'The order number, like CH-1042' },
},
required: ['order'],
},
annotations: { readOnlyHint: true },
execute: async ({ order }, { signal }) => {
const res = await fetch(`/api/orders/${encodeURIComponent(order)}`, { signal });
const { status, eta } = await res.json();
return `Order ${order} is ${status}, arriving ${eta}.`;
},
}, { signal: controller.signal });
// When the tool no longer makes sense on this page:
controller.abort();Annotations tell the agent how careful to be. The Chrome docs list readOnlyHint for tools that change nothing, consequentialHint for tools with real effects such as a purchase, and untrustedContentHint for results that contain text from other people, such as reviews. Both APIs sit behind a tools permissions policy that defaults to your own origin, so a cross-origin iframe only gets tools if you allow it.
How to try it today
- 01Turn on the flag
In Chrome, open
chrome://flags/#enable-webmcp-testing, set it to Enabled and relaunch. - 02Install an inspector
The Chrome team publishes a Model Context Tool Inspector extension that lists the tools a page registers and lets you call them by hand.
- 03Annotate one form
Start with the form that earns you money: bookings, enquiries, quotes. Write the description the way you would brief a new colleague.
- 04Join the origin trial
From Chrome 149, register for the WebMCP origin trial to switch it on for real visitors on your domain.
What I would expose first
My view, for a small business site: start with the two or three actions a person would ask an assistant to do for them, and make them honest and boring.
Book or enquire
The declarative attributes on your existing form. Leave submission to the person, so nothing is booked by surprise.
Search what you sell
A read-only tool that returns real prices and availability, so agents quote you correctly instead of guessing from a cached page.
Check an order
Read-only again. It saves your inbox the "where is my order" emails, whoever is asking.
Anything that spends money should carry consequentialHint and keep a visible confirmation step. The point is to make your site easier to use correctly, not to remove the person from decisions that are theirs.
Also from Chrome at I/O 2026
- The Prompt API is stable from Chrome 148, so pages can run prompts on the built-in model, alongside the Summarizer, Translator and Language Detector APIs that shipped in Chrome 138.
- The Soft Navigations API is coming, so single-page apps get proper Core Web Vitals for each route change.
- Chrome DevTools for agents lets coding agents drive and debug Chrome, and DevTools' own AI assistance can now read Lighthouse data.
Sources
Every fact above comes from these pages, read on 26 Oct 2026. Where a number comes from a report about someone else's data, the article says so.
- 01Chrome for Developers: 15 updates from Google I/O 2026developer.chrome.com
- 02WebMCP: get starteddeveloper.chrome.com
- 03WebMCP imperative APIdeveloper.chrome.com
- 04WebMCP declarative APIdeveloper.chrome.com
- 05WebMCP explainer on GitHubgithub.com
- 06Chrome Platform Status: WebMCPchromestatus.com
- 07Built-in AI APIs in Chromedeveloper.chrome.com
From the studio
Things I have designed and built on the platform this article is about.
What is WebMCP?
WebMCP is a proposed web standard from the Chrome team and the Web Machine Learning community group. It lets a website expose structured tools, with names, descriptions and input schemas, so AI agents in the browser can use the site's features directly instead of reading the screen.
Is WebMCP the same as MCP?
It borrows the idea of tools from the Model Context Protocol, but it runs inside the web page, in the visitor's browser, with the visitor present. A site does not run a separate MCP server to use it.
Which Chrome version supports WebMCP?
The WebMCP origin trial starts in Chrome 149. For local testing you can turn on chrome://flags/#enable-webmcp-testing.
Do I need to rebuild my forms?
No. The declarative API adds toolname and tooldescription attributes to an existing form, and optional toolparamdescription attributes to its fields.
Is WebMCP safe to ship to production?
Treat it as an experiment. The API is still under discussion and has changed between Chrome versions, so ship it behind the origin trial, keep a human confirmation step for anything that spends money, and watch the release notes.
Keep reading
More insights.
- Your next customer might be an AI agent. Here is what it reads in your store Shopify and Google's Universal Commerce Protocol lets AI agents search, build carts and check out. What it does, where it works and how to get your store ready. Read the article
- Manifest V2 is gone. This is what a Chrome extension looks like now Manifest V2 left the Chrome Web Store on 31 August 2026, a month after stricter data rules began. The new baseline for a Chrome extension people can trust. Read the article
For businesses
Reading is one thing. Shipping it is another.
Want your booking or enquiry flow ready for AI agents? I can build and test it with you.