用途:WebMCP 让网页把结构化工具暴露给浏览器内的 AI 智能体,从而无需自建后端 MCP 服务器,直接复用现有客户端代码,工具与 UI 同处一地。
主要能力:提供两种方式。命令式使用 document.modelContext.registerTool() 注册自定义工具,适合复杂逻辑、导航与状态管理;声明式在 <form> 上加 toolname、tooldescription、toolautosubmit 等属性,浏览器据表单结构自动生成 JSON Schema 工具定义,供智能体填写并提交。两者可在同一页面共存。
使用方式:命令式需提供 name、description、inputSchema 与 execute 回调,execute 返回 content 数组;可用 AbortController 的 signal 动态注册与注销工具;可通过 annotations 标注 readOnlyHint、untrustedContentHint;可通过 exposedTo 仅向受信任来源暴露工具。声明式直接在 HTML 表单上添加属性,参数说明用 toolparamdescription。
架构特点:完全客户端运行,无服务器、传输协议或守护进程;工具随页面标签打开而存在,具备 DOM 感知能力,可访问会话数据、Cookie 和元素,由浏览器居中调度,默认仅同源文档可见。生命周期为注册、智能体发现、结构化调用、浏览器中介执行、返回响应。
与后端 MCP 的取舍:工具需要实时 DOM、复用客户端逻辑、用户需看到 UI 操作、认证已由浏览器会话处理、与页面状态绑定时用 WebMCP;需要数据库查询、服务端密钥或 API、无头运行、独立认证、无状态独立工具时用后端 MCP。建议两者互补。
环境与限制:Chrome 149+、Edge 150+ 已实现命令式 API,需通过 Chrome 源试用(功能 ID 4163014905550602241)或 Edge 源试用(ID 0b76fe60-b266-458e-a285-04e375c0c31a)注册,本地开发可打开 chrome://flags/#enable-webmcp-testing;ChatGPT Desktop 已完整支持,Brave 在 Leo AI 聊天中实验性支持,Firefox 与 Safari 仍在评审提案,尚未实现。声明式 API 在主规范中仍为 TODO,另见 declarative-api-explainer.md,Chrome 实现的是宽松的试用版。规范为 W3C Web Machine Learning 社区组草案(2026 年 8 月 26 日)。工具名为 30 字符、工具描述 500 字符、参数名 30 字符、参数描述 150 字符、单个工具输出 1500 字符的建议预算。安全上应标注不可信内容与只读工具、限制暴露来源、在代码中严格校验。多模态输入输出、流式支持、输出模式契约、执行期间用户同意管理(requestUserInteraction())等仍为开放问题。