Search CodeHorizon

Products

CSS Class HighlighterChrome extension · Live ShopGradeChrome extension + web app · Live SecureVaultAndroid app · Live Companion AIAndroid app · Live Speaker CleanerAndroid app · Live NickedAndroid game · Live TubeFocusChrome extension · Live TabClusterPast Chrome extension · Past project NotiloPast Chrome extension · Past project

Insights

Android now checks who built an app before it installs itAndroid WebMCP lets your website hand AI agents a proper set of toolsWeb and AI Your next customer might be an AI agent. Here is what it reads in your storeShopify Manifest V2 is gone. This is what a Chrome extension looks like nowChrome extensions Google sends fewer clicks now. Here is how a business website should adaptSearch

Pages

HomeThe studio ServicesWebsites, stores, extensions and apps Case studiesSelected work ProcessHow a project runs All productsThe complete collection InsightsPlatform changes, explained JournalEvery release, newest first Start a projectPlan it in a minute
move openEsc close

Web and AI6 min read

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.

Yuvaraj VodiboinaFounder, CodeHorizonFacts checked 26 Oct 2026

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

  1. Screenshot the page
  2. Guess which box is the date
  3. Open the date picker
  4. Click the wrong month
  5. Screenshot again
  6. Pick the 30th
  7. Find the guests dropdown
  8. Scroll to the Book button
steps

Calling a tool

  1. book_table({ date, guests, time })
  2. The site answers with the booking
1call
An illustration of the same booking done two ways. With a tool, the agent never has to work out what a widget is.

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.

149the Chrome version where the origin trial starts
2ways to expose tools: HTML attributes, or JavaScript
0new servers to run: tools live in the page

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 table

What 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" }
    }
  }
}
A simplified view of the tool a booking form becomes. The real schema also carries each field's constraints and descriptions.
HTMLbook.html
<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>
ExampleTwo attributes turn a form into a toolThe form still works for people exactly as before. Agents now see a tool called book_table with a description and typed fields.

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.

JavaScriptbook.js
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}.`)
  );
});
ExampleAnswering the agent directlyCall preventDefault first, then hand respondWith a promise. People who submit the form normally get the usual page.

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.

JavaScriptorders.js
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();
ExampleA read-only tool for order statusThe description is written for the model: say what the tool does and what a good input looks like.

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

  1. 01
    Turn on the flag

    In Chrome, open chrome://flags/#enable-webmcp-testing, set it to Enabled and relaunch.

  2. 02
    Install 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.

  3. 03
    Annotate one form

    Start with the form that earns you money: bookings, enquiries, quotes. Write the description the way you would brief a new colleague.

  4. 04
    Join 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.

  1. 01Chrome for Developers: 15 updates from Google I/O 2026developer.chrome.com
  2. 02WebMCP: get starteddeveloper.chrome.com
  3. 03WebMCP imperative APIdeveloper.chrome.com
  4. 04WebMCP declarative APIdeveloper.chrome.com
  5. 05WebMCP explainer on GitHubgithub.com
  6. 06Chrome Platform Status: WebMCPchromestatus.com
  7. 07Built-in AI APIs in Chromedeveloper.chrome.com

From the studio

Things I have designed and built on the platform this article is about.

Questions

Asked often.

Something else? Ask me directly.

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.

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.

Booking new projects

Tell me what you’re building.

I read every message myself and reply within a day or two with honest next steps.

  1. 01You share the ideaA few lines is plenty. Links to anything similar help.
  2. 02We talk it throughOne short conversation by email or a quick call.
  3. 03You get a clear planScope, timing and a price that fits, before any work starts.
Just say helloFour fields, that is all

Your details come straight to my inbox and are only used to reply. Nothing is stored on this site or shared.

Project plannerTakes about a minute
01What do you need?Pick any that fit. Skip it for a quick hello.
02Budget
03Timeline
04Tell me about it

Your details come straight to my inbox and are only used to reply. Nothing is stored on this site or shared.