{
 "acronym": "",
 "adoption": {
  "by": null,
  "level": "unmeasured",
  "probe_run": null
 },
 "aliases": [],
 "analog": "In-page JavaScript API (window.* APIs)",
 "collisions": [
  "Model Context Protocol (MCP)"
 ],
 "discovery": {
  "mechanism": "In-page JavaScript object (window.modelContext / the ModelContext tool map); a page registers tools imperatively (registerTool()) or declaratively via annotated HTML form elements",
  "path": "none — a client or agent must load the page itself to see whether it registers WebMCP tools; this is a stated limitation of the API (\"Clients and browsers must visit a site directly to know if it has callable tools\")"
 },
 "dispute": null,
 "evidence": [
  {
   "claim": "WebMCP API enables web applications to provide JavaScript-based tools to AI agents; published as a Draft Community Group Report by the W3C Web Machine Learning Community Group, dated 4 September 2026, explicitly not on the W3C Standards Track. Editors are from Microsoft and Google.",
   "date": "2026-09-04",
   "label": "VERIFIED",
   "url": "https://webmachinelearning.github.io/webmcp/"
  },
  {
   "claim": "Chrome runs a WebMCP origin trial starting Chrome 149, with a chrome://flags/#enable-webmcp-testing local-development flag; two APIs exist (imperative and declarative); published demos and a Model Context Tool Inspector Chrome extension exist. Last updated 2026-08-07.",
   "date": "2026-08-07",
   "label": "VERIFIED",
   "url": "https://developer.chrome.com/docs/ai/webmcp"
  }
 ],
 "form": "browser-api",
 "governance": "W3C Web Machine Learning Community Group; editors are Brandon Walderman (Microsoft), Khushal Sagar (Google), Dominic Farolino (Google)",
 "group": null,
 "history": [
  {
   "date": "2026-09-05",
   "note": "seeded from Exa Agent research run"
  },
  {
   "date": "2026-09-06",
   "note": "verified against webmachinelearning.github.io/webmcp (4 Sept 2026 draft) and developer.chrome.com/docs/ai/webmcp (updated 2026-08-07); Cloudflare BrowserRun claim dropped, unverified in this pass"
  }
 ],
 "id": "webmcp",
 "implementation": "developer-trial",
 "last_verified": "2026-09-06",
 "name": "WebMCP",
 "native_status": "Draft Community Group Report, dated 4 September 2026; explicitly \"not a W3C Standard nor on the W3C Standards Track\"",
 "origin": {
  "date": "2026",
  "org": "Google and Microsoft engineers, via the W3C Web Machine Learning Community Group"
 },
 "part_of": null,
 "parties": [
  "agent-site"
 ],
 "phase": "draft",
 "probe": {
  "method": "in-page script execution (not a network probe)",
  "on_absent": "window.modelContext is undefined, or getTools() returns an empty map: the page exposes no WebMCP tools (this cannot be checked without executing JavaScript in a real browser context — it is not curl-probable)",
  "parse": "presence of a non-empty tool map returned by getTools() (or the declarative equivalent synthesized from annotated form elements)",
  "path": "typeof window.modelContext !== 'undefined' && window.modelContext.getTools()"
 },
 "question": "What JavaScript tools can a web page register so an in-browser AI agent can call them directly instead of scraping the DOM?",
 "scope": "general",
 "spec_url": "https://webmachinelearning.github.io/webmcp/",
 "step": "act",
 "summary_md": "WebMCP is a proposed JavaScript API that lets a web page register \"tools\" — functions with natural-language descriptions and JSON Schema input definitions — that an AI agent (in-browser or otherwise) can call directly, instead of inferring intent by scraping the rendered DOM [1]. A page using WebMCP can be thought of as running an MCP server client-side: the tool concepts (name, description, input schema, annotations) deliberately mirror MCP's tool definition so that the same mental model and, in principle, the same downstream tooling apply on both sides of the fetch boundary [1].\n\nIt solves the reliability gap in DOM-scraping-based browser agents: rather than an agent guessing which button does \"checkout\" from visual and structural cues, the site declares the tool's purpose explicitly, with a JSON Schema for inputs, reducing hallucination and misclicks [2]. It supports two authoring styles: an imperative JavaScript API (registerTool()) and a declarative API that annotates standard HTML form elements.\n\nWebMCP does not solve discovery at scale: a client or crawler cannot learn whether a given origin exposes WebMCP tools without loading the page and executing its JavaScript — the Chrome team's own documentation lists \"tool discoverability\" as a stated limitation, alongside unsuitability for headless/automated scenarios (it is designed for a human-in-the-loop local browser session) and added engineering overhead for complex interfaces [2]. It also does not standardize server-side or non-browser agent tool-calling; that is MCP's job.\n\nAs of this verification (September 2026), WebMCP is a W3C Community Group Draft Report — not a W3C Standard and not on the Standards Track — dated 4 September 2026, edited by engineers from Microsoft and Google [1]. Chrome is running a public origin trial from Chrome 149 (Intent to Experiment filed with blink-dev), with a local-development flag (chrome://flags/#enable-webmcp-testing) and a Chrome Web Store \"Model Context Tool Inspector\" extension for manually exercising tools; documentation was last updated 2026-08-07 [2]. The seed record's premise that Cloudflare's BrowserRun product had confirmed WebMCP support (per a 2026-08-06 Cloudflare blog post) could not be verified in this pass — that specific page was not fetched, so this claim is dropped rather than carried forward unsourced; it should be checked directly in a future pass. What remains open: whether any browser besides Chrome will implement WebMCP, and whether the spec advances beyond Community Group status toward a W3C Working Group.",
 "track": "w3c",
 "version": {
  "date": "2026-09-04",
  "label": "Draft Community Group Report, 4 September 2026"
 }
}