insight
WebMCP and the dual-mode website: what leadership actually decides
Answer first
There is a widely held expectation that web pages end up as a prompt box. WebMCP is the more modest version of that future: the application stays visible, and a prompt is added as a second way to operate it. Two things have to exist for that to work. Only one of them is yours to build, and whether you build the second one as well is the decision about who controls the agent.
Ask where the web is heading and a version of the same answer comes back: pages give way to a prompt, and the user states an outcome instead of learning an interface. It is a plausible reading of the market, and it is the reading that makes boards nervous, because it implies that the application you have spent four years building becomes a text box somebody else owns.
WebMCP is the gradual version of that transition. The pages stay as they are. A prompt is added next to them, supplied by one of three different sources, and the agent behind it operates the application the user is already looking at. The user can watch it happen, take over mid-task, and hand the next step back. That is the whole idea, and it is a smaller idea than the one it is competing with.
Two components, and only one of them is yours
The first thing to settle in any leadership conversation about this: supporting WebMCP does not mean putting an AI assistant inside your product. Two separate things have to exist, and they do not have to come from the same organisation.
Your application declares the operations an agent is allowed to perform. Something else understands the user's request, picks an operation, fills in its parameters and explains the result. The first is an integration job with a known size. The second is a product in its own right, and the interesting decision is whether you build it.
What a declared tool actually is
A tool is a short declaration with four parts, and it is worth seeing the shape of it once, because most of the discussion about agents assumes something far more elaborate.
That is real implementation work, and it is thinner than it looks, because it should be an adapter rather than a second implementation of the feature. WebMCP is designed to expose the functions, forms and application logic a page already has. If creating a booking is a service call today, the tool is a mapping onto that call, an authorisation check, and an honest description.
The cost sits in the decisions around it rather than in the code:
- Which operations are exposed at all, and which stay reachable only by a person
- Names and descriptions, which are the only thing the agent has to reason over
- Input validation, because a parameter can now be generated rather than typed
- Authorisation in the user's own session, not a broader one
- Confirmation for anything consequential, and who gives it
- Structured results and errors an agent can act on rather than paraphrase
- Prompt injection and data exposure, which the specification treats as first-class concerns
Read that list as an integration and security surface, not as metadata added to buttons. The specification explicitly considers tool poisoning, privacy leakage and origin boundaries, which is a fair signal of what the review has to cover before anything ships.
Where the agent comes from
Three places, and the choice is an investment decision rather than a technical one.
| Agent | You expose tools | You build the assistant | What you give up |
|---|---|---|---|
| Supplied by the browser | Yes | No | Control over the model, the wording and the confirmation flow |
| Approved extension or agent platform | Yes | No | Dependence on a vendor's roadmap and its access rules |
| Embedded in your application | Yes | Yes | Budget: UI, model, conversation state, logging, cost control |
| None available | Yes | No | Nothing happens; the tools are there and nobody calls them |
For a public-facing site aimed at browsers that will eventually ship an agent, exposing tools alone may turn out to be enough, and the annotation is cheap enough to place that bet now. For a controlled enterprise product, where you need consistent behaviour, an audit trail and a known model, an embedded assistant or a single approved extension is the clearer route, and the embedded option is the one with a real budget attached: assistant UI, model provider, conversation state, tool orchestration, authentication context, permissions, confirmations, logging, and rate and cost controls.
Building both is the control decision
Only the tool layer is required of you. The agent is optional in the sense that you need not build it, and not optional at all in the sense that somebody has to supply it. Exposing tools and stopping there is a decision, not the absence of one: it lets whoever the user arrives with drive your application, whether that is the browser vendor, an extension they installed, or the agent platform their employer approved.
Building the second half as well is what buys the control back. Your own assistant is where you decide the wording, the model, when a person has to confirm, what gets logged, and which requests it will not attempt at all. That is the difference between an interface you operate and one you have handed over, and it is why the embedded route exists despite carrying a running cost.
The two are not exclusive, which is the part usually missed. The same declared tools serve your own assistant and any outside agent that turns up later, so building one does not close the door on the others. It also does not close the door to them: what you expose is reachable by any agent that finds it, so the exposure decision stays where it always was, in the tool list and the permission check.
The question for a board is therefore not whether to build an assistant. It is which of your operations you are willing to have driven by an agent you do not control, and whether the ones that fail that test should be exposed at all.
often confusedWebMCP is not the MCP server you may already have, and the difference is where the agent runs
This is not remote-controlled clicking
The distinction matters for anyone who has watched a browser automation demo and concluded that the technology is unreliable. It usually is, and for a reason WebMCP removes.
The effect on screen can look like navigation. A tool can move the user to another view, apply filters, populate a form, start a booking or display a result, and Chrome's documentation describes exactly that: tools execute visibly in the page, so the user sees the work happen inside your design and your branding. What has changed is who decides what the operation means. Your application does, once, rather than the agent inferring it again on every visit.
The user and the agent take turns
A customer looking for a garage to rent shows the pattern better than any diagram.
- The customer states a goal: a garage near their workplace, large enough for an SUV
- The agent asks for what is missing: the address, and a monthly budget
- The agent does the tedious part: searches, filters, sorts, and shows three options
- The customer takes over: photographs, access conditions, the neighbourhood
- The customer delegates again: compare the first and third, and show the cancellation terms
- The application presents the comparison in its normal interface
- The agent proposes an action: shall I prepare the rental request?
- The customer confirms, and the application shows the final terms before anything is submitted
No step in that sequence is a chatbot standing in front of a website. The prompt is good at expressing intent. The visual interface is good at comparison, inspection and building enough confidence to commit. The combination is stronger than either, which is the argument the WebMCP project makes with its own shopping example.
Keep the business logic where it is
For anything going to production, three layers, and the middle one stays thin.
The permission check is the same one every other caller passes. An agent is a third way in, alongside the interface and the API, onto one implementation of the rules. Where that is true, an agent cannot do anything the person it is acting for could not have done by hand, which is the property that makes the rest of the discussion manageable.
Done this way, the WebMCP work is additive and reversible. The standard is in origin trial and will move. An adapter layer that holds no business logic can be rewritten in a sprint when it does, and can be removed entirely if the whole approach fails to find an audience.
The dual-mode website
This is the part worth taking to a board. The likely future is not a choice between the site you have and a blank prompt. It is a site that supports both, where a customer can browse, compare and fill in a form by hand, or describe the outcome and let an agent do the repetitive parts, and switch between the two mid-task.
WebMCP is less about making websites invisible than about making what they can do reachable through intent.
What we recommend
Start with the forms, because that half of the API is declarative HTML attributes and costs an afternoon. Then pick two or three read-only operations, search and comparison rather than anything that writes, and expose those as tools over services you already have. That is enough to learn what the descriptions have to say and where your authorisation model is thinner than you assumed, without putting an irreversible action behind a generated parameter.
Hold the embedded assistant until something forces it. It is the only one of the three paths with a running cost, and the question that decides it is not whether agents are coming. It is whether your users need a consistent, audited assistant that you control, or whether they will arrive with one of their own.
We have taken the first of those steps on this site. The forms here are annotated, no form will submit itself, and what that cost and what it turned up is written down in the companion piece on forms an agent can fill. Deciding which operations belong on the list is the harder half. In our experience it is an afternoon with the people who own the services rather than a project, and it is the same question we ask at the start of any systems architecture engagement: which capability is this, who is allowed to invoke it, and what has to be true before it runs.
- Does supporting WebMCP mean we have to build an AI assistant?
- No. Supporting WebMCP means declaring your application's operations as named tools. The agent that calls them can be supplied by the browser, by an extension or agent platform your organisation approves, or by an assistant you embed yourself. Only the third is a product you have to build and run.
- Is this useful before browsers ship an agent?
- Not to end users. Tools with no agent to call them are an API with no client. The case for annotating early is that the work is small, it forces a useful review of your own operations and authorisation, and it is in place when an agent does arrive.
- Does the agent click around our interface?
- Not in the way browser automation does. The agent calls a capability your application declared, and your application decides what happens: apply filters, navigate, call a service, render a result. The user sees the work happen in the normal interface, which is what makes it reviewable.
- Does this replace our website with a prompt?
- It is designed not to. The application, the user and the agent share one interface, and the user can take over at any point. The visual page is still where people compare options, read terms and decide, which is most of what a considered purchase or an authority's case handling consists of.
- What is the main risk?
- Exposing more capability than you meant to. A tool schema is an invitation, and it inherits whatever your authorisation model already allows. Treat the tool list as a security surface, keep consequential actions behind an explicit confirmation by a person, and start with operations that only read.
- WebMCP specification, including agent types and security considerations — Web Machine Learning Community Group
- WebMCP explainer and use-case examples — webmachinelearning/webmcp, GitHub
- WebMCP overview — Chrome for Developers
- WebMCP use cases, including navigation and form input — Chrome for Developers
Newsletter
Occasional notes on building systems that hold up
A short email when we publish something worth your time. Architecture, integration, and operational AI in regulated organizations. No cadence promises, no forwarding your address.