Browser agents (WebMCP)
Every booking website hosted on the platform registers a small set of
WebMCP tools with the browser.
An assistant built into the visitor’s browser — Gemini in Chrome, Copilot in
Edge, or an extension — discovers them through document.modelContext and
calls them with structured arguments instead of reading the page’s DOM.
This is the guest-side counterpart of the MCP server: the MCP server serves the agency’s own agents with an API key; WebMCP serves the guest’s agent on the public website, with no key and no more data than the page shows.
| Tool | Where | What it does |
|---|---|---|
search_stays | every page | Homes free for the whole stay; up to 5 results with area, bedrooms, capacity, nightly price and link. Opens the same results for the visitor. |
list_areas | every page | Districts with the number of homes and the lowest nightly price, as filter values for search_stays. |
get_quote | every page | Exact price of one home for a stay from the agency’s pricing engine: nightly rates, cleaning fee, Tourism Dirham, VAT, promotions, total, availability. |
prepare_booking_request | listing page only | Fills in the enquiry form with the stay and the guest’s details and opens it for review. Nothing is sent — the guest presses “Send request”. |
Argument mistakes come back as readable tool errors (Error: 'to' (check-out) must be after 'from' (check-in)., Error: Minimum stay for these dates is 5 nights.), so an agent can correct itself.
Security posture
Section titled “Security posture”- Tools call only the public endpoints the pages call themselves. There is no server surface that exists for agents alone; rate limits and the enquiry form’s bot protection apply unchanged.
- The three reading tools carry
readOnlyHint. The one tool with a side effect prepares a form and hands over to a human; it cannot submit. - Results are short (five homes, about 1,500 characters) and contain no free text written by third parties.
- Tools are page-scoped:
prepare_booking_requestexists only while a home is open and disappears when the visitor leaves the page. - Enquiries that were prepared by an agent carry
[via browser agent]in their message, so the agency sees the channel.
Agencies switch the tools off in their portal under Website → Browser assistants.
In the agency console
Section titled “In the agency console”The console has its own, separate set of tools for the staff’s browser
assistant — “which units are free next weekend?”, “who arrives today?”, “block
Marina 2BR from the 12th to the 15th”. They run with the signed-in person’s
session and rights, read from the same endpoints the console pages call, and
never write: the two tools with a side effect (prepare_booking,
prepare_task) open the console’s own dialog filled in, and a human presses
the button. Every answer that can contain guest text carries
untrustedContentHint.
This set is off by default and switched on per agency under Users & Rights → Browser assistants in this console by someone holding the corresponding right. It is not part of the partner API and needs no key.
Trying it
Section titled “Trying it”WebMCP is in an origin trial: Chrome 149 to 156 and Edge 150 and later expose
the API on websites that carry a token for their origin (the agency pastes it
in the portal; it is rendered as <meta http-equiv="origin-trial">).
For local testing without a token, enable
chrome://flags/#enable-webmcp-testing, relaunch, open a booking website and
run in the DevTools console:
const tools = await document.modelContext.getTools();tools.map((t) => t.name);// ["search_stays", "list_areas", "get_quote"] — plus "prepare_booking_request" on a listing pageChrome’s Model Context Tool Inspector
extension lists the registered tools and lets you call them by hand. WebMCP is
only available in a secure context (HTTPS or localhost).