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.
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
The viewer’s own bookings, upcoming or past.
Passes, memberships and credits the viewer already holds.
Navigation — moves the page, never writes
Applies filters to the on-screen schedule and reports the result.
Opens the session detail sheet.
Opens the purchase sheet for a product.
Opens the booking sheet pre-filled and stops at confirm. The payment route.
Opens the sign-in sheet. Credentials never pass through the agent.
Writes — real, and unable to charge
Books a session outright when the amount due is zero. Never takes payment details.
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.
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
<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.