Claude Code教程(九)| MCP 之 Playwright

Claude Code教程(九)| MCP 之 Playwright

一、是什么

Playwright MCP 是 Microsoft 官方提供的 MCP Server,基于 Playwright 实现浏览器自动化。它通过浏览器的 accessibility tree(无障碍树) 获取页面结构化数据,而非依赖像素截图,因此速度快、结果确定性强、不消耗 vision 模型。

接入后 Agent 可直接控制浏览器:打开页面、点击、填表、截图、执行 JS、网络拦截等。


二、前置条件

  • Node.js >= 18
  • 首次运行时 Playwright 会自动下载浏览器二进制(Chromium / Firefox / WebKit)

三、接入方式

方式一:claude mcp add(推荐)

场景一:全局,所有项目生效(推荐)

配置文件 ~/.claude.json → 根节点

bash 复制代码
claude mcp add -s user playwright npx '@playwright/mcp@latest'

卸载:

bash 复制代码
claude mcp remove -s user playwright

场景二:当前项目,可团队共享

配置文件 项目根 .mcp.json

bash 复制代码
claude mcp add -s project playwright npx '@playwright/mcp@latest'

卸载:

bash 复制代码
claude mcp remove -s project playwright

场景三:仅当前目录

配置文件 ~/.claude.json → 该目录节点

bash 复制代码
claude mcp add playwright npx '@playwright/mcp@latest'

卸载:

bash 复制代码
claude mcp remove playwright

方式二:手动 JSON 配置

全局 → 编辑 ~/.claude.json

json 复制代码
{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

项目级 → 编辑项目根目录 .mcp.json,内容同上,可提交 Git 供团队共享。

卸载:删除配置文件中对应的 playwright 条目,或直接删除 .mcp.json 文件。


方式三:Docker 模式

bash 复制代码
docker run -p 8931:8931 mcr.microsoft.com/playwright/mcp

仅支持 headless Chromium,功能受限,一般不推荐。

卸载:

bash 复制代码
docker stop <容器ID>
docker rm <容器ID>

四、Windows 注意事项

Playwright MCP 只有本地 npx 模式,没有远程 HTTP 服务端。如果出现 MCP error -32000: Connection closed,改为 cmd /c 包裹:

json 复制代码
{
  "mcpServers": {
    "playwright": {
      "command": "cmd",
      "args": ["/c", "npx", "@playwright/mcp@latest"]
    }
  }
}

五、验证

bash 复制代码
claude mcp list

看到 playwright 且状态为 ✓ Connected 即成功。


六、使用方式

重启 Claude Code 会话后(新 MCP server 不会在当前会话加载),直接描述浏览器操作:

"用 playwright mcp 打开 example.com,截个图"

"playwright 打开百度首页,搜索 Claude Code"

Agent 会依次调用 browser_navigatebrowser_snapshotbrowser_click 等工具自动完成。


七、常用配置参数

bash 复制代码
claude mcp add -s user playwright npx '@playwright/mcp@latest' --headless --isolated
参数 作用 默认值
--headless 无头模式,不显示窗口 关闭(headed)
--browser 浏览器类型:chrome firefox webkit msedge chrome
--isolated 每次启动干净浏览器,不保存登录态 关闭
--caps vision 启用像素级鼠标操作(坐标点击、拖拽) 关闭
--caps pdf 启用 PDF 生成 关闭
--caps devtools 启用 trace、录像、元素高亮 关闭
--timeout-action 操作超时,单位毫秒 5000
--timeout-navigation 导航超时,单位毫秒 60000

添加后如需修改,先 claude mcp remove -s user playwright 卸载,再 claude mcp add 重新添加新参数。


八、核心工具一览

工具 用途
browser_navigate 打开指定 URL
browser_snapshot 获取页面无障碍树结构
browser_click 点击元素
browser_type 输入文本
browser_take_screenshot 截屏
browser_evaluate 执行 JavaScript
browser_fill_form 批量填表
browser_network_requests 查看网络请求
browser_console_messages 查看控制台日志
browser_close 关闭浏览器

更多工具(鼠标像素操作、PDF 生成、录屏等)通过 --caps 参数启用。


九、浏览器持久化

默认浏览器登录态保存到 ~/.cache/ms-playwright/mcp-{channel}-{hash},关浏览器再开会话丢失。

  • 需要每次干净环境 → 加 --isolated
  • 需要指定保存位置 → 加 --user-data-dir <路径>
相关推荐
花千树-0101 天前
Harness Marketplace 剖析系列 - 之 Claude Code:权限、安全与供应链治理
ai安全·mcp·claude code·agent安全·plugin安全·ai 供应链安全·企业ai治理
夏天的峰没有风2 天前
Typora加github加PicGo搭建图床使用教程
github·claude code
LayZhangStrive2 天前
claude code使用命令技巧(四)(开发沉淀的提示词模板)
ai·单元测试·prompt·ai编程·提示词·claude code
码哥字节3 天前
被Skill/MCP/Hook搞晕三周,我画了张决策图
claude code·agent skills
LayZhangStrive5 天前
claude code使用命令技巧(一)(项目初始化、规范约束模板)
ai·ai编程·vs code·命令·初始化·claude code·cc-switch
lincats6 天前
Caveman vs Ponytail:AI 编程圈"懒人哲学"两大门派正面交锋
ai·ai agent·vibe coding·claude code
golang学习记6 天前
Claude Code写哪种变成语言最快?
golang·claude code
呆呆敲代码的小Y7 天前
5 分钟上手 OpenMontage:把 AI 编程助手变成视频工作室
人工智能·aigc·音视频·ai视频生成·claude code·openmontage
Simorel8 天前
[claude code] 04 进阶篇:权限、Hooks 与自动化
claude code
lincats8 天前
/handoff,只有几行,却是Matt Pocock调用频率最高的 skill
ai·ai agent·vibe coding·claude code·skills