2026年8月6日(美国时间),Cloudflare 发布了一篇题为“Give any website a WebMCP interface”的博客文章(作者:Will Rowe)。这是该公司称为“Agents Week”的发布周中的一项:一个开发者预览功能,只需在控制台中拨动开关,无需修改代码,即可为网站添加一组 WebMCP 工具。由于敝公司的网站也运行在 Cloudflare 上,本文基于官方资料,梳理这次发布的内容,以及它所依托的 WebMCP 标准提案的现状。
背景——为人类设计的网络,与并非人类的访问者
Cloudflare 的文章这样阐述这项功能的动机。
The web was built on the assumption that there is a person on the other end: someone to read the page, click buttons, and fill in the forms. But now more and more visits come from AI agents instead, to an Internet made for humans.
(网络建立在"另一端有一个人"的前提之上:有人来阅读页面、点击按钮、填写表单。但如今,对这个为人类打造的互联网的访问,正越来越多地来自 AI 代理)
迄今为止的主流方式是爬虫:将内容复制到服务器端再加以利用。Cloudflare 指出,这种方式“往往不给原网站带来任何流量,也几乎不给予署名”,并接着说“存在一种更好的方式,而它不涉及抓取”。关于被 AI 引用的网站与爬虫之间的关系,我们曾在之前的文章中查证过各公司的官方文档。这次发布可以视为一种尝试:把这种关系从“等着被复制”转变为“向来访的代理递上工具”。
什么是 WebMCP——让网页向代理递上“工具”的浏览器标准提案
WebMCP 是一项浏览器 API 提案,让网页能够面向 AI 代理公开结构化的工具(函数与输入 schema 的组合)。W3C 的 Web Machine Learning Community Group 公开了规范草案;在2026年7月28日版本的草案中,每个 Document 对象都关联一个 ModelContext,页面通过 document.modelContext.registerTool() 注册工具。注册时必须提供 name(标识符)、description(自然语言说明)和 execute(被执行的函数),并可选附加 JSON Schema 形式的 inputSchema,以及表示只读的 readOnlyHint 等注解。
需要注意的是标准化所处的阶段。正如草案自身所声明的,它是 Community Group 的工作文档,并非 W3C 标准,也不在标准化轨道上。浏览器端的实现同样处于实验阶段:根据 Chrome 官方文档(2026年6月9日更新版),可以通过本地开发用的开关 chrome://flags/#enable-webmcp-testing 启用,Chrome 149 及之后的版本提供 origin trial。Cloudflare 的文章则表述为“从 Chrome 146 开始实验性发布”。无论如何,截至本文撰写时,它尚未达到在普通访问者的浏览器中默认运行的状态。
正如其名称所示,WebMCP 的基础是 Model Context Protocol(MCP)。MCP 是一个在应用程序与 AI 模型之间交换工具和上下文的开放协议,通常以服务器的形式实现。WebMCP 把这种工具的概念带入浏览器中的页面,Cloudflare 的实现也直接使用了 MCP 规范中的 Tool 和 CallToolResult 类型。文章这样总结。
To an agent, all of these are ordinary MCP tools. We use Model Context Protocol’s own Tool and CallToolResult types, so an agent that already talks to MCP servers can drive a page with nothing special added. The browser is just another place MCP runs.
(在代理看来,这些都是普通的 MCP 工具。我们使用 Model Context Protocol 自身的 Tool 和 CallToolResult 类型,因此已经能与 MCP 服务器通信的代理无需添加任何特殊内容即可操作页面。浏览器只是 MCP 运行的又一个场所)
对代理而言,好处在于不必再“连猜带试”地操作为人类设计的界面。无需寻找按钮的位置、从屏幕上推断表单的含义,而是直接调用带 schema 的函数即可。Cloudflare 解释说,这让 token 花在任务本身而不是页面导航上。不过在此之前,网站需要自行实现 WebMCP。这次发布正是把这部分实现工作转移到了边缘节点。
Cloudflare 的实现——边缘注入一行代码,页面内运行桥接脚本
Cloudflare 的实现由两个部分组成,都在源站(网站本体)之前完成。完全不触碰网站的代码,并且据称无论是静态网站还是单页应用都以同样的方式工作。
第一个部分是边缘注入。在控制台启用 WebMCP 后,HTMLRewriter(Cloudflare 在边缘运行的 HTML 改写机制)会在所有 HTML 响应中添加如下一行。脚本标签和脚本本体都从同源的边缘节点提供,页面的其余内容不变。
<!-- Cloudflare injects this at the edge. Same origin, and your HTML is otherwise untouched. -->
<script type="module"
src="/.webmcp/bridge.js"
data-packs="c2pa,mcp-server-client"
data-mcp-url="/mcp"></script>第二个部分就是这个 bridge.js(桥接脚本)。它在页面内执行,首先检查浏览器是否具有 WebMCP 接口。如果没有,就什么也不做直接返回,因此在不支持的浏览器中页面的行为与从前完全一致。如果接口存在,它会把 data-packs 属性中列出的“工具包”合成为一份工具列表,并逐一通过 registerTool 注册。
工具包是把 MCP 工具描述符及其处理逻辑打包在一起的单位。工具包的设计是可以不断增加的:随着新包的推出,网站只需拨动开关即可启用,无需重新部署。本次预览包含两个工具包,二者都完全在访问者的浏览器内完成(不会往返 Cloudflare 的服务器)。

图1: 控制台 Agent Readiness > Labs 中的 WebMCP 设置界面。可以按工具包为单位启用(出处: The Cloudflare Blog)
Site MCP Server 工具包——让既有的 MCP 服务器可以通过页面调用
如果网站已经拥有自己的 MCP 服务器,这个工具包会在启动时通过 tools/list 获取工具列表,并在页面上为每个工具注册一个“代理(proxy)”。当 AI 代理调用代理工具时,页面会以访问者本人的会话,向同源的 MCP 端点发送 tools/call 请求。
// For each tool the site's own MCP server advertises (via tools/list),
// registering a proxy whose execute() calls the site back on the
// visitor's origin, with their session.
document.modelContext.registerTool({
name: tool.name, // e.g. "search_products"
description: tool.description,
inputSchema: tool.inputSchema, // taken straight from tools/list
execute: async (args) => {
const res = await fetch(mcpUrl, { // same-origin /mcp
method: "POST",
credentials: "same-origin",
headers: { "content-type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0", id: 1, method: "tools/call",
params: { name: tool.name, arguments: args },
}),
});
const { result } = await res.json();
return result; // an MCP CallToolResult, passed straight through
},
});正如 credentials: "same-origin" 这一指定所示,调用是以访问者浏览器中已有的会话(登录状态)执行的。它不是为远程 MCP 服务器另行接入认证,而是让代理在“这个人在浏览器里本来就能做的事”的范围内代为执行。
Content Credentials 工具包——读取图像的来源元数据
另一个工具包读取内容来源领域的行业标准 C2PA(Coalition for Content Provenance and Authenticity)的元数据。scan_images_c2pa 扫描页面内的全部图像并返回摘要,inspect_image_c2pa 则展开单张图像的 manifest(编辑历史、署名作者、签名证书)。它是一个 TypeScript 实现,只读取图像开头几 KB 的元数据而非图像本体,同样完全在访问者的浏览器内完成。
{
"imageCount": 12,
"scanned": 12,
"withC2pa": 8,
"results": [
{
"src": "https://example.com/hero.jpg",
"hasC2pa": true,
"format": "image/jpeg",
"manifestCount": 1,
"claimGenerator": "Adobe Firefly",
"title": "sunrise over the bay",
"signedBy": "Adobe Inc."
},
{ "src": "https://example.com/logo.png", "hasC2pa": false, "format": "image/png" }
]
}这里有一个重要的限定。现阶段这个工具包只是“读取并报告”凭证,并不进行密码学验证。所有结果都会附带 signatureVerified: false,以避免代理把解码出的声明误当作经过核验的事实。确认来源声明是否被伪造,在这个阶段尚未提供。
定位与注意事项
基于对这次发布的查证,以下几点值得留意。
- 标准仍处于提案阶段。 WebMCP 规范是 W3C Community Group 的草案,不在标准化轨道上。API 的形态(包括
document.modelContext的位置)今后仍可能变化 - 只能在实验性环境中运行。 Chrome 需要开关或 origin trial(Chrome 149 及之后),在普通访问者的浏览器中,桥接脚本什么也不做就会退出。现阶段对普通访问者既无实害也无实益,但要验证效果就需要支持的环境。Cloudflare 表示其远程浏览器 BrowserRun 可以发现并调用 WebMCP 工具,并将其作为验证手段加以介绍
- 代理以访问者的会话运行。 Site MCP Server 工具包的调用会继承访问者的登录状态。允许代理执行哪些操作,就变成了网站方的设计问题:公开哪些工具。规范草案一侧也准备了表示只读的
readOnlyHint、表示内容来自不可信来源的untrustedContentHint等注解,安全性的设计在规范与实现两端都仍在发展之中 - 读取 C2PA 不等于验证。 如前所述,结果总是附带
signatureVerified: false - 启用本身只需一个开关。 在控制台的 Agent Readiness > Labs 中启用后,可以用
curl -s https://your-site.example | grep webmcp确认被注入的那一行
另外,敝公司的网站截至本文撰写时尚未启用。对于以静态内容为主的博客网站来说,首先要从设计层面思考究竟该向代理公开什么样的“工具”,我们打算在观察标准与实现逐步成熟的过程中再做判断。
小结
- 2026年8月6日,Cloudflare 发布了 WebMCP 的开发者预览版。仅凭控制台的一个开关,无需修改代码,即可为网站添加面向代理的工具
- WebMCP 是让网页通过
document.modelContext.registerTool()向 AI 代理提供结构化工具的浏览器标准提案。目前处于 W3C Web Machine Learning Community Group 的草案阶段,在 Chrome 中只能通过开关或 origin trial 运行 - 实现由两部分组成:边缘注入一行
<script>,以及在页面内运行的桥接脚本。在不支持的浏览器中什么也不会发生,页面照常显示 - 预览版包含两个工具包。Site MCP Server 让既有 MCP 服务器的工具能以访问者的会话从页面调用,Content Credentials 读取图像中的 C2PA 来源元数据(尚未进行密码学验证)
- 这是一种方向性的实现:不是被爬虫复制,而是由网站亲手向来访的代理递上工具。标准与实现都仍处于发展之中
参考资料
- Give any website a WebMCP interface — The Cloudflare Blog(2026年8月6日,Will Rowe) — 本文的主要出处。缩略图与图1均引自该文章
- WebMCP — Draft Community Group Report(W3C Web Machine Learning Community Group,2026年7月28日版)
- webmachinelearning/webmcp — GitHub — 提案的仓库与 explainer
- WebMCP | AI on Chrome — Chrome for Developers(2026年6月9日更新) — 关于开关与 origin trial 的说明
- Model Context Protocol — MCP 规范
- C2PA — Coalition for Content Provenance and Authenticity
