跳转到主要内容

Playwright MCP

这是一个 Model Context Protocol (MCP) 服务器,利用 Playwright 提供浏览器自动化功能。它使 LLM(大语言模型)能够通过结构化的辅助功能快照与网页交互——无需视觉模型。

示例

You: Navigate to https://demo.playwright.dev/todomvc and add "Buy groceries".

→ browser_navigate { url: "https://demo.playwright.dev/todomvc" }
→ browser_snapshot

- heading "todos" [level=1]
- textbox "What needs to be done?" [ref=e5]

→ browser_type { ref: "e5", text: "Buy groceries", submit: true }
→ browser_snapshot

- heading "todos" [level=1]
- textbox "What needs to be done?" [ref=e5]
- listitem:
- checkbox "Toggle Todo" [ref=e10]
- text: "Buy groceries"
- contentinfo:
- text: "1 item left"

LLM 读取辅助功能快照,找到如 e5 之类的元素引用,并使用它们进行交互——例如点击按钮、填写表单、勾选复选框。无需屏幕截图或猜测坐标。

主要特性

  • 基于快照 — 基于辅助功能树(accessibility tree)操作,而非像素。每个交互元素都有唯一的引用,确保交互的确定性
  • LLM 友好 — 结构化的文本输出,便于 LLM 自然解析,每个快照约 200-400 tokens,远少于 DOM 或截图所需的数千 tokens
  • 跨浏览器 — 支持 Chrome、Firefox、WebKit 和 Edge
  • 全面自动化 — 40+ 种工具,涵盖导航、表单、网络模拟、存储、追踪、视频录制等
  • 持久化会话 — 默认在会话间保留登录状态和 Cookie
  • 兼容广泛 — 支持 VS Code、Cursor、Windsurf、Claude Code、Claude Desktop 以及任何 MCP 客户端

快速开始

将此服务器添加到您的 MCP 客户端

{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}

浏览器默认以有头模式(headed mode)启动,以便您观察操作过程。请参阅安装部分了解特定客户端的配置。

Playwright MCP 与 Playwright CLI 的区别

MCPPlaywright CLI
最适合专门的智能代理循环、探索性自动化处理大型代码库的编码代理(如 Claude Code, Copilot)
工作原理LLM 使用结构化参数调用 MCP 工具代理运行 Shell 命令
Token 成本更高 — 上下文包含工具模式 + 快照更低 — 简洁的 CLI 输出,按需加载技能
默认模式有头模式无头模式
安装设置MCP 客户端中的 JSON 配置npm install -g @playwright/cli

可用工具

核心

工具描述
browser_navigate导航至指定 URL
browser_navigate_back在历史记录中后退
browser_navigate_forward在历史记录中前进
browser_reload刷新页面
browser_snapshot捕获辅助功能快照
browser_click通过引用点击元素
browser_hover悬停在元素上
browser_drag元素间拖放
browser_type向元素输入文本
browser_fill_form一次性填充多个表单字段
browser_select_option选择下拉菜单选项
browser_check勾选复选框或单选按钮
browser_uncheck取消勾选复选框
browser_press_key按键(回车、Tab 等)
browser_take_screenshot截取 PNG/JPEG 图片
browser_tabs列出、创建、关闭、切换标签页
browser_handle_dialog接受或关闭对话框
browser_file_upload上传文件
browser_close关闭浏览器
browser_resize调整浏览器窗口大小
browser_wait_for等待文本、元素出现或等待一段时间

网络与存储

工具描述
browser_network_requests列出网络请求
browser_route模拟网络请求
browser_route_list列出已激活的模拟路由
browser_unroute移除模拟路由
browser_cookie_list/get/set/delete/clear管理 Cookies
browser_localstorage_list/get/set/delete/clear管理 localStorage
browser_storage_state保存 Cookie + localStorage 到文件
browser_set_storage_state恢复保存的状态

测试与调试

工具描述
browser_run_code执行 Playwright 代码片段
browser_evaluate在页面上执行 JavaScript
browser_console_messages获取控制台输出
browser_generate_locator为测试生成 Playwright 定位器
browser_verify_element_visible断言元素是否可见
browser_verify_text_visible断言文本可见
browser_start_tracing / browser_stop_tracing记录执行链路
browser_start_video / browser_stop_video录制会话视频
browser_pdf_save将页面导出为 PDF

视觉(可选)

工具描述
browser_mouse_move_xy将鼠标移动到指定坐标
browser_mouse_down / browser_mouse_up鼠标按键按下/释放
browser_mouse_wheel使用鼠标滚轮滚动