A live WebMCP playground

Give your browser hands.

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, book a real meeting, fetch your local weather, and make a share image. Watch every call arrive on the right.

checking…
READ · summarize_page()

Let the agent understand this page

The page hands over its own content as structured data, so nothing gets scraped off a rendered screen.

Nothing read yet. An agent would call summarize_page to learn what this page is and what it can do.
WRITE + BOOK · fill_lead_form() · get_available_slots() · book_slot()

Book a real walkthrough

The agent fills your details, fetches real open times from a live cal.com calendar, and books one for real.

    No times fetched yet. An agent would call get_available_slots.

    FETCH · get_weather()

    Pull in live context

    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.

    No data fetched yet. An agent would call get_weather.
    GENERATE + NAVIGATE · create_share_card() · share_page()

    Make a card, then share it

    The agent renders a branded PNG on a canvas, then reveals the share buttons here. You pick a network and post it. No popups fired at you.

    Nothing generated yet. Ask an agent to make a share card.

    Tool calls

    idle
      Calls appear here the moment an agent (or you, via the DevTools
      console) invokes a tool. See “how to run it” up top.

      How to test WebMCP

      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.

      Easiest · on-device · no key

      The WebMCP Agent extension

      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.

      checking whether Gemini Nano is on this browser…
      ↓ Download the extension (.zip)
      1. Unzip it.
      2. Open chrome://extensions and turn on Developer mode (top-right).
      3. Click Load unpacked and choose the web-mcp-agent folder.
      4. Pin the extension, come back here, click it, type a goal, and press Run.
      Try:"Book a demo — I'm Priya at Acme, priya@acme.com, then make a share card and post it to X."

      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.

      With ChatGPT

      ChatGPT desktop app

      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.

      Chrome 149+ / Edge 147

      Flip the flag

      Turn the API on, then drive it with the extension above or by hand.

      1. Open chrome://flags/#enable-webmcp-testing
      2. Set it to Enabled, relaunch
      3. Reload this page. The badge above turns green.
      Developers

      Call them in the console

      With WebMCP on, drive the tools yourself in DevTools: real calls, no agent.

      await document.modelContext.getTools()

      Read

      summarize_page returns data, not pixels. The page tells the agent what it is, so it reasons instead of scraping.

      Write

      fill_lead_form mutates the DOM with typed args and submits — no clicking through a UI, no guessing at field selectors.

      Fetch

      get_weather hits a real external API. Tools aren't limited to the page. They can reach the internet.

      Generate

      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.

      Navigate

      share_page sets up an outbound action. The agent reveals the share buttons; you click to post.