Industry
Banking and insurance: read-only is the feature
No regulated business is letting an agent sign a contract in 2026. That is fine — the read half carries most of the customer value and almost none of the risk, and the session model is genuinely easier to defend than an API key.
Last reviewed 27 August 2026
The instinct in a regulated business is to refuse the category outright. It is the wrong call, and the reason is that the valuable half and the risky half separate cleanly.
Nobody is asking you to let an agent bind a policy. They are asking whether a customer can find out what their policy covers without navigating a portal at eleven at night.
A surface that passes review
find_my_policy() readOnlyHint: true explain_coverage(policyId, scenario) readOnlyHint: true get_claim_status(claimId) readOnlyHint: true list_required_documents(claimType) readOnlyHint: true locate_form(topic) readOnlyHint: true get_next_payment() readOnlyHint: true prefill_claim_draft(...) // prepares only; the human submits
Six read tools and one that prepares without submitting. Every one of them replaces a phone call or an abandoned portal session, and none of them changes state.
The argument for the compliance meeting
- No new credential exists. Tools run in the visitor's own authenticated browser session. Nothing is minted, nothing is stored in a model's context, and revocation is logging out. This is materially better than issuing an API key so an assistant can read customer data.
- Read-only is declared and enforced.
readOnlyHint: truetells the agent. Your server-side authorisation enforces it. The annotation is advisory — the authorisation is not, and that distinction belongs in the submission. - Nothing is enumerable. Tools scope to the session. There is no tool that accepts an arbitrary policy number.
- Anything consequential stops for a human, in your own UI, with your own confirmation copy.
- Scope is bounded by policy. The
toolspermissions-policy feature defaults to an allowlist of['self']; a cross-origin iframe needs an explicitallow="tools".
The specification acknowledges a lethal trifecta: reading private data, processing untrusted content and sending information outward can be chained into an exfiltration. Annotations are advisory, not enforced. Put both in your own submission before anyone asks. In our experience the objection is never this is unsafe — it is nobody has told us what this is. A read-only surface with an explicit threat model gets approved. A request to switch on an experimental browser API does not.
Do the boring pillars first
Banks and insurers usually fail agent readiness long before WebMCP is relevant, and for prosaic reasons: portals rendered entirely client-side, consent walls in front of public product pages, PDFs where a page should be, and forms with no labels.
Those are worth more than tools and they carry no regulatory weight. A public product page that renders server-side with valid Service markup is a week of work and improves every channel you have.
The knowledge layer, further out
For institutions, the machine-readable knowledge layer eventually matters as much as the action layer. An agent answering a coverage question needs facts that are current, sourced and approved — not a paragraph scraped from a marketing page.
The direction of travel is visible in emerging enterprise formats that wrap documents with provenance and freshness metadata — who generated this, from which sources, verified by whom, stale after when — and index them under existing access controls. That is a 2027 project for most institutions, and worth knowing exists while you are scoping the 2026 one.
Sources
Primary documents, checked on 27 August 2026
- webmachinelearning.github.io/webmcp — Annotations, permissions policy, secure context
- developer.chrome.com/docs/ai/webmcp
- OWASP — Top 10 for LLM Applications
- Google Cloud — OKF bundles and Knowledge Catalog — Where the governed knowledge layer is heading
Keep reading
Check your own site against this
The Agent Readiness Score measures exactly what this article describes, and shows the evidence behind every finding.
Run the check →