安装Chrome扩展
从Chrome网络商店安装Playwriter MCP扩展(或在开发期间加载未打包版本)。将扩展固定到Chrome工具栏以方便访问。
连接到标签页
点击想要控制的任何标签页上的Playwriter MCP扩展图标。成功连接后,图标会变成绿色。
图标状态:
添加MCP到您的代理
将以下配置添加到您的MCP客户端设置中(例如,Claude Desktop的claude_desktop_config.json):
{
"mcpServers": {
"playwriter": {
"command": "npx",
"args": [
"playwriter@latest"
]
}
}
}
重启您的MCP客户端,现在就可以开始了!您的AI助手可以通过扩展来控制浏览器。
重要提示: 在使用MCP之前,您必须在至少一个标签页上启用扩展:
一旦在一个或多个标签页上启用,您的AI助手可以:
execute工具控制所有已启用的标签页MCP将自动启动一个中继服务器并连接到您已启用的浏览器标签页。
您可以编程地使用playwriter与playwright-core一起使用:
import { chromium } from 'playwright-core'
import { startPlayWriterCDPRelayServer, getCdpUrl } from 'playwriter'
const server = await startPlayWriterCDPRelayServer()
const browser = await chromium.connectOverCDP(getCdpUrl())
const context = browser.contexts()[0]
const page = context.pages()[0]
await page.goto('https://example.com')
await page.screenshot({ path: 'screenshot.png' })
await browser.close()
server.close()
Playwriter使用Chrome扩展而不是启动一个新的Chrome窗口。这种方法有以下几个优点:
Playwriter可以访问完整的Playwright API,它可以发送任何CDP命令通过Playwright方法。它仅使用一个工具execute来发送Playwright代码片段。这意味着LLM可以重复利用其关于Playwright的知识,并且较少的上下文窗口用于暴露浏览器自动化工具。
Playwriter也更强大,因为它暴露了完整的Playwright API,而不仅仅是几个工具。
为了对比,这里列出了BrowserMCP支持的工具:
导航:
browsermcp_browser_navigate - 导航到URLbrowsermcp_browser_go_back - 返回到前一页browsermcp_browser_go_forward - 前进到下一页
页面检查:browsermcp_browser_snapshot - 捕获当前页面的可访问性快照(使用此功能获取元素引用)browsermcp_browser_screenshot - 拍摄当前页面的截图browserm_浏览器获取控制台日志 - 获取浏览器的控制台日志
互动:browsermcp_browser_click - 单击元素(需要来自快照的元素引用)browsermcp_browser_hover - 鼠标悬停在元素上browsermcp_browser_type - 向可编辑元素中键入文本(可选提交)browsermcp_browser_select_option - 在下拉列表中选择一个选项browsermcp_browser_press_key - 按键盘上的键
实用工具:browsermcp_browser_wait - 等待指定的时间(秒)Antigravity的浏览器集成存在与BrowserMCP相同的基本问题:它为每个浏览器动作创建了一个单独的工具,而不是使用LLM已经理解的Playwright API。
上下文窗口问题:
Jetski暴露了17个以上的浏览器工具(capture_browser_screenshot,browser_click_element,browser_input,browser_scroll,wait_5_seconds等)。每个工具定义都会消耗上下文窗口空间,包括参数模式、描述和示例。这种臃肿的模式迫使Antigravity每次使用浏览器时都生成一个子代理,这为每次浏览器交互增加了显著的延迟和间接性。
Playwriter的方法:
execute工具讽刺的是,通过尝试使用专用工具使浏览器控制“更简单”,这些集成使其变得更慢、能力更弱,并浪费了本可用于实际工作的上下文窗口。
Playwriter设计时考虑到了安全性,确保只有您才能控制您的浏览器。
localhost:19988启动一个单例WebSocket服务器这种架构确保浏览器自动化仅在您明确许可的情况下,在您选择的标签页上进行。