This page doesn't hand an AI agent a screen to squint at. It hands it typed functions. Ask an agent to read this page, fill the form, fetch your local weather, make a share image, and post it. Watch every call arrive on the right.
The page hands over its own content as structured data, so nothing gets scraped off a rendered screen.
summarize_page to learn what this page is and what it can do.The agent writes into the DOM with typed arguments. It can fill and propose, but a human still presses confirm. Nothing is sent anywhere.
A tool can reach a real API. This one calls Open-Meteo. With no arguments it uses your approximate location (from your connection, via the edge). The agent can also pass any city.
get_weather.The agent renders a branded card on a <canvas> and produces a downloadable PNG: an artifact generated on the page.
create_share_card.A page can publish tools, but something has to be the agent that calls them. Easiest path: install the tiny on-device agent below. It runs Chrome's built-in Gemini Nano, so there's no API key and nothing about you leaves your machine.
A tiny Chrome extension that reads this page's tools and drives them with Gemini Nano, the model Chrome already ships. No API key, no network, no flags.
chrome://extensions and turn on Developer mode (top-right).web-mcp-agent folder.Chrome 138+ on desktop. The first run downloads Gemini Nano once (a few GB); after that it runs instantly and offline. It's the client half of WebMCP, so it's an agent built on Chrome's model, not the browser doing it natively.
Its built-in browser calls site tools with GPT-5.6 Sol or Terra. Open this page as a tab and ask. Heads up: site tools are off on Enterprise/Edu workspaces, so use a personal account.
Turn the API on, then drive it with the extension above or by hand.
chrome://flags/#enable-webmcp-testingWith WebMCP on, drive the tools yourself in DevTools: real calls, no agent.
await document.modelContext.getTools()
summarize_page returns data, not pixels. The page tells the agent what it is, so it reasons instead of scraping.
fill_lead_form mutates the DOM with typed args, then arms the button. A human commits. The page chose that gate; the browser doesn't enforce it.
get_weather hits a real external API. Tools aren't limited to the page. They can reach the internet.
create_share_card renders a canvas image and hands back a downloadable file, so an agent can produce a real artifact right on the page.
share_page triggers an outbound action. The agent opens the composer; you decide to post.