{
  "dataset": "protocols",
  "record": {
    "id": "webmcp",
    "name": "WebMCP",
    "full_name": "Web Model Context Protocol",
    "layer": "capability",
    "creator": "W3C Web Machine Learning Community Group (engineers from Google & Microsoft)",
    "status": "draft (Chrome 146 DevTrial)",
    "year": 2026,
    "one_liner": "MCP for the browser: a web page registers callable tools on document.modelContext so a visiting agent invokes functions instead of clicking pixels.",
    "spec_url": "https://webmachinelearning.github.io/webmcp/",
    "snippet": "await document.modelContext.registerTool({ name, description, inputSchema, execute })",
    "abbreviation": "WebMCP",
    "also_known_as": [
      "Web Model Context Protocol"
    ],
    "canonical_spec_url": "https://webmachinelearning.github.io/webmcp/",
    "entity_uri": "https://webmachinelearning.github.io/webmcp/",
    "taxonomy_layer": "capability",
    "sub_layer": "browser-tooling",
    "protocol_type": "tooling",
    "central_problem": "Lets a website expose typed, callable tools to an AI agent running in the browser, so the agent invokes functions directly instead of simulating clicks on the rendered page.",
    "maintainer": "W3C Web Machine Learning Community Group (editors: Brandon Walderman / Microsoft, Khushal Sagar / Google, Dominic Farolino / Google)",
    "governance_body": "W3C",
    "license": "W3C Community Contributor License Agreement (CLA)",
    "maturity_tag": "experimental",
    "current_spec_version": "Draft Community Group Report",
    "spec_date": "2026-06-15",
    "launch_date": {
      "value": null,
      "verify_status": "verify-against-primary-at-build",
      "source_hint": "https://webmachinelearning.github.io/webmcp/",
      "note": "First public draft / DevTrial date not asserted from internal docs; confirm against the W3C draft history at build."
    },
    "last_verified": "2026-06-15",
    "transport": "In-page JavaScript API (navigator.modelContext / document.modelContext)",
    "core_mechanism": "A page calls navigator.modelContext.registerTool(tool, options) (also exposed as document.modelContext) to register typed tools with name, description, inputSchema, and an execute handler; a browser-resident agent enumerates and invokes those tools. It is a Draft Community Group Report, NOT a W3C Standard and not on the W3C Standards Track.",
    "discovery_endpoint": "navigator.modelContext / document.modelContext (in-page JS object)",
    "settlement_type": null,
    "adoption_metric": {
      "value": null,
      "verify_status": "verify-against-primary-at-build",
      "source_hint": "https://webmachinelearning.github.io/webmcp/",
      "note": "Chrome DevTrial / origin-trial adoption figures not asserted from internal docs."
    },
    "notable_adopters": [
      {
        "value": "Microsoft (editor org)",
        "source": "https://webmachinelearning.github.io/webmcp/"
      },
      {
        "value": "Google (editor org)",
        "source": "https://webmachinelearning.github.io/webmcp/"
      }
    ],
    "relationships": [
      {
        "predicate": "standardized_by",
        "target": "w3c",
        "note": "WebMCP -standardized_by-> W3C (the standards body; modeled as a planned governance entity, not yet a record id)."
      },
      {
        "predicate": "extends",
        "target": "mcp",
        "note": "WebMCP brings the MCP tool-calling model to the browser page context."
      }
    ],
    "ideal_use_case": "Making an interactive web app callable by browser-resident agents (Operator/Comet/Atlas-class) without DOM scraping.",
    "when_to_use": "When your value is in a rich client-side web UI and you want agents to drive it via typed tools rather than fragile pixel-clicking.",
    "when_not_to_use": "When you need a server-side, cross-host agent integration (use MCP), or stable production guarantees — WebMCP is an unstable draft and expects breaking changes.",
    "code_example": "navigator.modelContext.registerTool({\n  name: 'add_to_cart',\n  description: 'Add a product to the cart',\n  inputSchema: { type: 'object', properties: { sku: { type: 'string' } }, required: ['sku'] },\n  async execute({ sku }) { return await cart.add(sku); }\n});",
    "source": "Status, editors, API surface, draft dated 15 June 2026: https://webmachinelearning.github.io/webmcp/ (Draft Community Group Report; not a W3C Standard). Governance (W3C): brief §L2 + research §2.",
    "agent_readiness_link": "agent-readiness/webmcp",
    "layer_legacy": "tool"
  }
}