Skip to content

Web MCP

Let an AI agent in your customer’s browser book for them — on your Sessions page, or on your own site through the embeds.

There is nothing to connect to and no key to issue. Your page registers the tools; an agent running in the same browser lists them and calls them. Because the tools run in the page, they act as whoever is signed in and they are already scoped to your business — the agent never picks one, and never sees a credential.

Nothing is required of you to make this safe to leave on. On a browser without Web MCP the tools are simply never registered, and the code behind them is never downloaded — visitors on those browsers pay nothing for it and see no difference.

Chrome and Edge have shipped it behind an origin trial, and browsers’ built-in assistants, ChatGPT Desktop, Brave’s Leo, extensions and your own in-page assistant can all call page-registered tools — a server-side agent cannot, and should use the MCP servers or UCP checkout instead. current support. The API itself is a W3C proposal, and it is still moving; Sessions tracks the changes so you do not have to. Read the WebMCP proposal.

javascript
const tools =
  await document.modelContext.getTools();

const schedule = tools.find(
  (t) => t.name === 'sessions_list_schedule',
);

const result = await document.modelContext
  .executeTool(schedule, {activity: 'yoga'});

Tools

What an agent can do on your pages, grouped by what it costs you to allow. Every name links to its parameters, its return shape, and a call you can paste into a console.

Discovery — read-only, works signed out

Orientation for an agent that just landed: what this business is, and how to use the rest of the tools.

Identity, locations, time zone, currency and contact details.

Upcoming sessions with times, prices and remaining capacity, optionally filtered.

Full detail for one session, including what booking it would require.

Passes, memberships, gift cards and merchandise with prices.

One product in full, including terms and restrictions.

Real totals for a booking — subtotal, discount, tax, credit, amount due.

Signed-in state and identity. Safe to call anonymously.

Viewer — the signed-in customer's own data

sessions_list_bookingsread-onlysign-in required

The viewer’s own bookings, upcoming or past.

sessions_list_purchasesread-onlysign-in required

Passes, memberships and credits the viewer already holds.

Navigation — moves the page, never writes

sessions_filter_scheduleSessions pages only

Applies filters to the on-screen schedule and reports the result.

Opens the session detail sheet.

sessions_open_productSessions pages only

Opens the purchase sheet for a product.

Opens the booking sheet pre-filled and stops at confirm. The payment route.

sessions_start_sign_inSessions pages only

Opens the sign-in sheet. Credentials never pass through the agent.

Writes — real, and unable to charge

sessions_book_sessionsign-in required

Books a session outright when the amount due is zero. Never takes payment details.

sessions_cancel_bookingsign-in required

Previews the refund outcome, then cancels on a second, confirmed call.

On your own website

The tools travel with the embeds. Add the tools attribute to <sessions-context> and an agent helping a visitor on your own site can browse your schedule, price a booking and open the booking sheet — without you writing any of it. Leave the attribute off and nothing is registered, and the code is never downloaded.

One thing to check
Web MCP is gated by the tools permission, which browsers default to self, so a normal page needs no header. If your site sends a restrictive Permissions-Policy, allow tools for your own origin or the registration is rejected.

Two differences from your Sessions page: the embed never touches your site's URL — sessions_open_session asks your mounted schedule to open its own sheet instead — and the three tools that would need Sessions' own chrome are not offered. Embed reference

html
<sessions-context business="your-handle" tools>
  <sessions-schedule></sessions-schedule>
</sessions-context>

What an agent cannot do

Both of these are enforced in the code, not left to the agent's judgement.

It can never take a card — An agent can complete a booking only when your server re-prices it at zero right before writing — a free session, or one covered by a pass, membership or gift-card credit the customer already holds. No payment method is ever sent, so it cannot charge a card even in principle. Anything owing money, and anything behind a waiver or registration form, opens the booking sheet and stops there for your customer to finish.

It can never cancel in one step — Cancelling asks twice. The first call returns what your cancellation policy would refund right now and changes nothing; only a second, explicitly confirmed call goes through. An agent has to have shown your customer the outcome to get that far.

Next

The rest of the agent surface, and the machine-readable catalogue.