前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
返回 AI 情报前线
All News · 全部资讯8483
  • 有记忆的智能体如何定义可复现性
  • 给AI功能建立依赖契约清单
  • 修复AnythingLLM俄文检索偏差
  • RAG 何时应采用语义分块
  • AI Agent 安全沙箱工程指南
  • 多Agent并行开发的Worktree陷阱
  • 40 行实现类型安全的工具调用
  • RAG 排序不能只靠余弦相似度
  • 生产级 Prompt 的七类隐蔽问题
  • 让 RAG 拒绝使用劣质上下文
  • TypeScript Agent 的四层注入防线
  • 用 LangGraph.js 实现持久化人工审批
  • Node应用如何精确核算LLM成本
  • Token防火墙削减35%上下文成本
  • Qwen3.8 Max性能追近Opus
  • 伪造审查备注绕过AI反诈检测
  • 用 MCP 为纯文本编程智能体补上视觉
  • Cloudflare推出网站智能体就绪度指标
  • Cloudflare构建开放智能体互联网协议
  • Cloudflare推出私有数据AI搜索
  • 一键为现有网站接入WebMCP
  • Kitesurf:运行在Workers上的智能体浏览器
  • 新版MCP转向无状态架构
  • 让过期的 Agent 上下文直接阻断 CI
  • 昇腾适配 Ling-3.0 并推出 PyPTO
  • 让编程 Agent 用你熟悉的语言写脚本
  • 数据库索引提速背后的写入代价
  • Meta低价模型与可恢复编程Agent登场
  • 如何构建 Agent 难以作弊的评测
  • Claude Code 迁移 OpenCode 踩坑实录
  • RAG向量数据库的真实成本陷阱
  • 编码代理缺失的其实是产品定义
  • 用熔断机制约束失控的 AI Agent
  • 别让 AI 任务止步于聊天记录
  • 人类审核仍漏掉三分之一智能体威胁
  • OpenAI智能体曾秘密协同攻击
  • AI 工作流为何会在无改动时失效
  • 开源本地化求职管理平台 FitPilot
  • 在一次性沙箱中测试编程 Agent 越界
  • 别把系统提示词写成规则仓库
  • Agent 审批卡的盲签名陷阱
  • 为真实项目编写AGENTS.md的经验
  • 用固定语料阻止AI审查能力回退
  • 为AI代码变更建立分阶段权限门禁
  • 别让LLM评测工具测到自身拥塞
  • AI自动扫描将放大密钥泄露风险
  • GPT-5.6 Sol能力升级并扩大免费开放
  • 人脸识别的94%匹配为何不可信
  • 如何测试具备工具权限的完整Agent链路
  • 多Agent共享状态为何会静默丢失
  • 一次失控编程Agent如何烧掉138美元
  • 已加载 51 / 8483
8.0
热点
AI SCORE
编程提效2026-08-06 21:00

一键为现有网站接入WebMCP

Cloudflare Blog#WebMCP#Agent#Cloudflare
Editor brief · 编辑速览

Cloudflare 发布 WebMCP 开发者预览,可在不新增 API、也不修改源站的情况下,让现有网站供浏览器智能体调用。方案强调保留用户控制权和站点流量。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

今天,我们在 Cloudflare 上推出 WebMCP 开发者预览版。只需开启它,浏览器 Agent 就能开始操作你的网站,无须编写代码,也无须改动源站。Cloudflare 会向页面添加一个轻量级桥接层,为访问者的 Agent 注册一组可用工具。

Web 最初建立在这样一个假设之上:另一端是一个真实的人——有人阅读页面、点击按钮、填写表单。但如今,越来越多的访问来自 AI Agent,而它们面对的却是一个为人类设计的互联网。以往的常见做法是使用爬虫,将内容复制回服务器;但这种方式往往既没有给原网站带来流量,也很少给予应有的归属认可。其实还有一种更好的方式,而且不需要抓取页面。

WebMCP 是一项新的浏览器标准,已在 Chrome 146 中以实验性功能发布,并通过页面中的 document.modelContext 提供能力。网站可以选择向浏览器中运行的 Agent 暴露一组工具,这意味着 Agent 不再需要面对为人类设计的页面,一边猜测一边完成操作。这样一来,Agent 可以拥有不同于用户的浏览体验,把 token 用在任务本身,而不是页面导航上。问题在于:网站必须自行实现这套能力。

Cloudflare 一直在构建这套体系的两端。我们的远程浏览器 BrowserRun 已经加入 WebMCP 支持,因此 Agent 可以发现并调用网站暴露的工具。Cloudflare Radar 很快也会提供自己的 WebMCP 工具。本次预览聚焦于另一端:只需打开一个开关,无须编写代码,就能为 Cloudflare 上的任何网站提供这些工具。

Cloudflare 上的 WebMCP 开发者预览版

手动实现 WebMCP 本身就是一个小型项目:你需要设计要暴露的工具,将它们接入网站界面,并随着标准演进持续维护。我们希望让这件事变得更简单:只需切换一个设置,就能启用工具。

BLOG-3460 2.png

这些工具以工具包的形式提供——每个工具包都是一组相关工具,可以统一启用。这样的设计具有良好的扩展性:随着我们不断增加工具包,网站只需打开相应开关即可接入更多能力,无须重新部署。本次开发者预览版包含两个工具包,它们都完全在浏览器中运行。

它能做什么,以及如何工作

我们的实现由两部分组成,二者都位于源站之前。它们既不会改动网站代码,也不会受到网站类型的影响——无论你的网站是静态网站还是单页应用,工作方式都完全相同。

第一部分是在边缘注入代码。当你在 Cloudflare Dashboard 中为网站开启 WebMCP 后,我们会使用 HTMLRewriter,在每个 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>

data-packs 属性列出了需要启用的工具包。如果你已有 Model Context Protocol(MCP)服务器,data-mcp-url 可以指向你自己的 MCP 服务器,默认地址是同源的 /mcp。

第二部分是桥接层。它在页面中运行,并寻找 WebMCP 接口。如果浏览器不具备这个接口,桥接层就会直接返回,不执行任何操作,因此页面仍会像以前一样正常工作。

随后,桥接层会把 data-packs 中指定的工具包组合成一份工具列表,并通过 .registerTool 逐一注册。工具包本质上就是一组 MCP 工具描述符及其处理程序。Content Credentials 之类的静态工具包会预先声明工具;Site MCP Server 之类的动态工具包则会在启动时发现工具,然后再进行注册。

在本次预览中,每个工具都完全运行在访问者的浏览器里,不需要与我们的服务器进行往返通信。Content Credentials 工具包会获取图片,并在本地解析图片开头几 KB 的内容来源元数据。Site MCP Server 工具包则会从页面直接连接你自己的 MCP 服务器端点,使用访问者所在的源以及他们现有的会话。

桥接代码由运行在边缘的 Worker 提供。这也为未来扩展留下了空间——后续工具包可以调用该 Worker,完成页面无法独立处理的任务,例如使用 Workers AI 总结 sitemap,或者查询 AI Search 索引。

在 Agent 看来,这些全都是普通的 MCP 工具。我们直接使用 Model Context Protocol 自身的 Tool 和 CallToolResult 类型,因此,已经能够与 MCP 服务器通信的 Agent 无须添加任何特殊能力,就能操作页面。浏览器只是 MCP 的另一个运行场所。下面的示例展示了桥接层如何把你自己的一个 MCP 工具转换成访问者 Agent 可以调用的工具。

// 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
  },
});

查看内容元数据

我们还在开发用于读取不同类型元数据的工具包。例如,可以使用 Content Credentials 工具包获取 C2PA 计划参与者的凭证。scan_images_c2pa 会扫描所有图片,并返回每张图片的简短摘要:

{
  "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" }
  ]
}

如果想进一步查看详情,inspect_image_c2pa 可以解码单张图片的完整 manifest,包括编辑历史、声明的作者以及签名证书。它是一个纯 TypeScript 读取器,只会读取图片开头几 KB 的元数据,而不会处理图片本身。目前,它只负责读取和报告凭证,尚不会对凭证进行加密验证:每个结果都会带有 signatureVerified: false,因此 Agent 不会把已经解码的声明误认为经过验证的声明。

要开始使用 WebMCP,请前往 Cloudflare Dashboard 中的 Agent Readiness > Labs。在这里,你可以为某个域名开启 WebMCP,并选择要添加的工具包:Content Credentials 和 Site MCP Server 默认都会启用;随着更多工具包发布,它们也会出现在这里。全部设置到此就完成了。你无须部署任何内容,也无须改动源站;网站接下来发送的 HTML 就会包含桥接层。

要确认它是否已经生效,可以请求网站上的任意 HTML 页面,并查找 Cloudflare 注入的那一行代码:

curl -s https://your-site.example | grep webmcp

即使没有自己的 Agent,你也能看到这些工具如何工作。只需让 Cloudflare 的远程浏览器 BrowserRun 访问你的 URL,它就会像真实访问者的 Agent 一样,发现并调用工具包注册的工具。这就形成了完整闭环:BrowserRun 为 Agent 提供可供操作的浏览器,本次预览版为网站提供可供调用的工具,二者通过开放标准连接起来。无论浏览器运行在某个人的笔记本电脑上,还是以 headless 模式运行在云端,这些工具的行为都完全相同。

我们的职责是帮助互联网变得更好。随着互联网不断变化,我们需要为域名所有者提供相应工具,使 AI Agent 这样的新型访问者无须网站进行全面重构,就能与其交互。这是迈向下一代 Web 的一步:即使访问者不再总是人类,Web 依然能够蓬勃发展。

这是一个开发者预览版,我们希望听到你的反馈。请开启它,在你自己的网站上试用,并在 Cloudflare Developers Discord 或 Community forum 告诉我们使用体验。

Original source

本文由 AI 翻译整理自 Cloudflare Blog,原文版权归原作者所有。

阅读英文原文
上一篇
Cloudflare推出私有数据AI搜索
下一篇
Kitesurf:运行在Workers上的智能体浏览器