WebMCP
WebMCP is a browser API that lets a web page register tools for the AI agent running in the browser, for example an assistant built into Chrome. The agent calls them directly from the page, instead of reading the screen and clicking through forms.
The Visamundi application form (https://form.visamundi.app) uses WebMCP to
expose the tools of the public MCP route. A browser
agent can look up a visa, prepare the application for the traveller and hand
over the payment link without any MCP configuration.
How it works
Section titled “How it works”The page does not define its own tools. It relays the tools of
https://mcp.visamundi.io/, so there is a single definition of each tool and
the same behaviour everywhere:
Browser agent ──► document.modelContext (form.visamundi.app) │ relays tools/list and tools/call ▼ https://mcp.visamundi.io/ (public route)- When the page loads in a browser that supports WebMCP, it connects to the public MCP route and lists its tools.
- It registers the allowed tools on
document.modelContext, with the same names, descriptions and input schemas. - When the agent calls a tool, the page forwards the call to the MCP server and returns the result unchanged.
In browsers without WebMCP, the page does nothing and the form works as usual.
Exposed tools
Section titled “Exposed tools”| Tool | Kind | What it does |
|---|---|---|
list_visas | read | Visa products for a destination. |
get_visa | read | Full details for one visa product. |
get_visa_requirements | read | Whether a visa is required for a nationality and destination. |
get_application_form | read | Fields, constraints, questionnaire and estimated price for one visa. |
save_application | write | Create or update the traveller’s application. |
get_payment_link | write | Payment link for a complete application, with the estimated delivery date. |
Write tools are flagged to the browser so it can ask the user before running them. See Tools for parameters and the full workflow.
What the agent can and cannot do
Section titled “What the agent can and cannot do”- It can prepare a complete application (trip, travellers, billing details) and get the Visamundi payment link.
- It cannot pay, accept the terms and conditions, or confirm the consents and disclaimers. The traveller does this on the summary page opened by the payment link.
- Priority processing, document-based visas and multi-country packs are not available to agents: the tools say so and send the traveller to the form.
- When the agent saves an application from the form tab, the page remembers it: the traveller can continue the same application in the form.
- Partner attribution is kept: if the traveller reached the form through a
partner link (
?partner=ag404), the page adds that code tosave_application, so the application and its price carry the partner discount.
Try it in Chrome
Section titled “Try it in Chrome”WebMCP is experimental. To try it:
-
Use Chrome 146 or later and enable
chrome://flags/#enable-webmcp-testing, then restart Chrome. -
Open
https://form.visamundi.app. -
In the DevTools console, list the tools:
const mc = document.modelContext ?? navigator.modelContext;(await mc.getTools()).map((t) => t.name); -
Call one.
executeTooltakes the tool object and an input object:const tool = (await mc.getTools()).find((t) => t.name === 'get_application_form');await mc.executeTool(tool, { visaId: 42629, language: 'en' });
You can also install the Model Context Tool Inspector extension to list and call the tools from a panel, or to test them with a natural-language prompt. That extension sends prompts to a third-party model: use test data only.
For other clients
Section titled “For other clients”Agents that are not in a browser (Claude, Cursor, ChatGPT…) connect to the same tools through the hosted MCP server. See Connect.