WebMCP是一款Chrome扩展,它能将任何网页变成AI代理的MCP服务器,极大简化AI与网页内容的交互。由谷歌和微软支持,该方案旨在提升AI代理效率并允许人类用户通过代理查询页面,共同增强网络体验。
译自:WebMCP turns any Chrome web page into an MCP server for AI agents
作者:David Eastman
大约两周前,我发表了一篇关于返回Markdown的网站的文章,旨在让AI代理的生活更轻松。尽管代理已经非常擅长使用浏览器,但这个过程仍然可能很繁琐、耗时且费力。我提到在HTML中添加微数据作为导航线索,但如果允许它们直接在页面上使用MCP呢?
所以你看,WebMCP几乎是水到渠成。当代理访问DOM时,它们可以很好地通过使用HTML声明中可识别的组件来执行操作。像Selenium这样的旧式网页测试工具就是这样工作的。当页面相当规则时(当然,这正是网络演变为消费者商店前端后的样子),导航并不困难。但随着人类逐渐为AI代理让路,以及代理与人类协同工作,简化它们的通行就变得很有意义。
因此,通过一个Chrome扩展程序,网页现在可以像MCP服务器一样运行。这种方法去年由微软和谷歌共同推动。这与OpenAI正在通过其Apps SDK和ChatGPT Atlas所做的工作并非不无关系。但使用WebMCP,操作是在客户端进行的。
人类网络用户依然参与其中
当我第一次读到这个的时候,我以为它纯粹是为了让AI代理能够“绕过”网络,以结构化的方式直接与页面进行对话。但也许是因为谷歌仍然需要人类来获得广告收入,人类仍然深度参与其中。
因为你可能正在浏览一个网站,并想向代理提问关于该页面的问题,所以代理需要在你提问之前和期间了解一些上下文。你可以想象一个用户在页面旁边打开AI聊天,并询问屏幕上的内容。因此,不要只想象一个代理为了某个任务去访问一个无头浏览器,还要想象一个用户中断自己的浏览会话来查询网站。
此外,正如MCP和安全启发一样,代理必须能够返回给用户以提出澄清问题。
完整的提案提到了两个API:声明式API用于页面内标准的HTML风格操作,以及命令式API用于需要JavaScript的复杂操作。
在Chrome中使用WebMCP
虽然Chrome的示例是最近才出现的,但一些好奇的用户已经开始尝试了。
我将以谷歌当前文档中的一个示例为例。显然,你正在使用谷歌的尖端技术,所以请先注册他们的计划以获取更新。第一步是通过此邀请页面加入谷歌Chrome早期预览计划(EPP)。
你需要Chrome版本146.0.7672.0或更高。在查看“关于”框中的版本后,它开始自动更新,就像在看薛定谔的猫一样,我发现我的版本符合要求:

然后我们需要翻转“WebMCP for testing”的标志(即服务默认是关闭的),你可以通过内部导航到chrome://flags/#enable-webmcp-testing来完成。

然后用你的新选择重新启动,检查更改是否生效。如果你不知道,这一切都还在实验阶段:

然后你可以安装检查器,它能让你看到WebMCP工具(即已注册的功能)的内部工作。
安装完成后,你可以访问实时演示页面。
你会看到模拟航班搜索页面(我猜是模拟的)和右侧面板中的检查器,它有效地提取了可用的MCP工具,例如“searchFlights”:

因此,例如,我们可以在左侧“手动”浏览,并使用表单获取以下航班的信息(我目前绝对不推荐这个航班):

遗憾的是,这个查询不被支持:

很自然地,我礼貌地向模拟应用程序提供了所需的示例数据(所以,这不是一个真正的航班搜索),并如预期地得到了一个模拟结果屏幕:

所以我们现在可以在检查器工具中使用这些详细信息:

这会返回相同的模拟HTML页面。
现在,如果我们有一个真正的代理,我们就可以看到结构化的回复。我从Google AI Studio生成了一个Gemini API密钥,在检查器中设置了该密钥,并向代理查询了航班页面:

“与页面交互”这一点很有趣,因为对于用户来说,这是一个稍微新颖的操作上下文——向代理询问他们正在查看的页面。另外,介绍网站webmcp.dev上的页面提到(并显示)页面右下角有一个小蓝色方块,表示WebMCP可用。谷歌Chrome的示例中没有这个,但现在还处于早期阶段,因此实现方式可能会有所不同。
发送我的英文查询后,我得到了以下结构化结果:
User prompt: "What flights are available?"
AI calling tool "listFlights" with {}
Tool "listFlights" result:
[
{
"id":7,
"airline":"Spirit Airlines",
"airlineCode":"NK",
"origin":"LHR",
"destination":"JFK",
"departureTime":"08:49",
"arrivalTime":"07:05",
"duration":"22h 16m",
"stops":0,"price":932
},
{
"id":8,
"airline":"Southwest Airlines",
etc
这看起来是上面模拟HTML航班结果页面的JSON等效结果。因此,我们可以看到我们不仅可以获得专为AI代理工作流设计的结果,还可以让代理与人类一起,并返回一个网站。在这个例子中,查询前端会整齐地呈现数据,并可能要求添加过滤器来细化结果。
作为快速检查,该工具在普通页面(例如The New Stack)后面没有发现WebMCP:

所以,至少目前看来,人类网络的“死刑”被暂缓了。人类可以使用WebMCP来增强他们的网络体验,而不仅仅是依靠AI代理。