用 claude mcp add 注册 Playwright MCP 前,先确定它应该在哪些项目生效。只想在当前项目自己用,选 local。希望队友审核后共用,选 project。只为自己配置但要跨项目使用,选 user。注册后分别核对连接状态和浏览器返回的结果。
有位 Claude Code 用户把 --isolated 放在 Claude 的参数区,收到未知选项错误。这个参数要放在分隔符后面,交给 Playwright。后文用 Tabbit Browser 说明任务需要已登录标签页时怎么选择连接方式。原始讨论
先记住这几件事
从项目根目录开始。local 和 project 都和项目绑定,但保存位置和分享对象不同。
--scope、--transport写在--之前。--headless、--isolated写在服务启动命令后。有配置条目不代表启动成功。看
claude mcp list的连接状态,再核对新会话的工具。用公开测试页做一次可核对的读取。看到工具的 URL 和标题比只看聊天答案更可靠。
按任务选范围和会话。首次验证用临时隔离浏览器就够了。
先选配置范围
| 范围 | 对谁生效 | 配置在哪里 | 何时选 |
|---|---|---|---|
local | 当前用户、当前项目 | ~/.claude.json 的项目记录 | 个人配置或第一次试用 |
project | 当前项目和批准服务的队友 | 项目根目录 .mcp.json | 团队审核后复用 |
user | 当前用户的多个项目 | ~/.claude.json 的用户级配置 | 多个工作区都用到的私有工具 |
默认范围是 local。它不会在你切换到另一个项目后继续生效。Anthropic 说明,同名服务器按 local、project、user 的顺序匹配。改了配置却发现当前条目仍用另一条命令时,先检查是否存在更高优先级的同名条目。Claude Code MCP 范围说明
同一个 Playwright 浏览器自动化服务 可以接到不同编码助手。客户端的外层配置要分别写。Codex 使用 TOML,可以参照 Codex 的 Playwright MCP 配置。Claude Code 的项目配置是 JSON。
先注册一套个人测试配置
确认 Claude Code 和 npx 可以在同一终端运行。Playwright 入门文档要求 Node.js 20 或更新版本。以下命令固定本文验证过的包版本,打开一个无窗口、临时状态的浏览器会话。Playwright MCP 安装说明
claude --version
node --version
claude mcp add --scope local --transport stdio playwright -- npx -y @playwright/mcp@0.0.84 --headless --isolated
claude mcp list分隔符左边由 Claude 处理。右边是实际服务命令及参数。如果报 unknown option '--headless',先核对参数放在了哪一边。--headless 管窗口是否显示,--isolated 管本次会话用什么状态。Anthropic stdio 语法
团队共用时写进项目配置
团队要共用同一个启动命令,可以在项目根目录放 .mcp.json,或注册时选择 --scope project。队友能看到会启动哪个程序、传哪些参数,并按 Claude Code 的项目批准流程决定是否启用。令牌和私有路径不要写进共用文件。Claude Code MCP 快速上手
{
"mcpServers": {
"playwright": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@playwright/mcp@0.0.84", "--headless", "--isolated"]
}
}
}这份配置只规定怎么启动工具,账号和访问权限仍由浏览器会话和组织策略决定。如果测试环境需要登录,另外准备获准的测试账号和浏览器配置。浏览器配置和工作区指南 说明了浏览器配置与标签页各自保存哪些状态。
用公开网页验证连接
在当前项目新开 Claude Code 会话,用 /mcp 找到 Playwright。接着发一个能核对结果的任务,点名 Playwright MCP,避免助手用 shell 或 联网搜索 代替本次要验证的连接。
使用 Playwright MCP 打开
https://www.selenium.dev/selenium/web/web-form.html。
从浏览器工具结果报告最终 URL 和第一个可见标题。
不填写或提交内容,读完就停止。练习页面应显示 Web form。如果导航工具只给出快照文件路径,可以再调用 browser_snapshot,查看结构化结果中的标题。确认工具轨迹、最终 URL 和标题一致,再让 Agent 点控件。浏览器智能体原理 解释了为什么执行前后都需要观察页面状态。
本次使用 Claude Code 2.1.318、Node.js 22 和 Playwright MCP 0.0.84。在临时项目中,用 Claude Code 注册并检查配置范围和连接。然后用协议测试程序启动项目条目里的同一条命令,发现 browser_navigate 和 browser_snapshot,在 Selenium 练习页读取 Web form 一级标题。没有提交表单,也没有调用 Claude 模型回合。
在项目目录,local 条目显示已连接,project 条目等待批准。切换到另一个目录后,只看到 user 条目。

根据失败现象排查
| 看到什么 | 说明什么 | 下一步查哪里 |
|---|---|---|
| 列表中没有服务 | 当前环境没加载这条配置 | 目录、范围、同名条目、JSON 语法 |
| 项目等待批准 | 找到了配置,还需要授权 | 看过 .mcp.json 的启动命令后,走项目批准流程 |
| 显示连接失败 | 有条目,MCP 服务没有完成连接 | 可执行文件、参数、终端 PATH、服务 stderr |
| 服务连接了但没有看到目标工具 | 还要查工具发现、搜索或权限 | /mcp、当前会话、工具名称和权限策略 |
| 调用工具后网页打不开 | 需要查浏览器启动或导航 | 浏览器通道、可执行文件、网址和网络 |
本地复现还注册了一个指向不存在可执行文件的服务。配置里可以看到它,连接检查却失败。把 --headless 移到 -- 左边,CLI 则会在任何浏览器启动前报未知选项。一个是启动失败,一个是命令解析失败,处理办法不同。
另一位用户遇到过 claude mcp list 有时显示已连接,当前会话的 /mcp 却没有服务。重新编辑配置前,先核对这两处的状态。原始讨论
服务器公布的工具不一定都立即出现在模型上下文。Anthropic 说明,工具搜索可以在需要时再加载工具定义。新开会话后,点名要求一次只读操作,并从轨迹中确认工具名称。权限策略拒绝时,先核对原因。确定任务确实需要不同能力后,再比较 其他浏览器自动化工具。Anthropic 工具搜索文档
哪些任务需要现有标签页?
这套隔离启动适合复现公开页的操作。如果任务从已登录的后台开始,先决定需要共享哪个标签页、账号和工作区。打开预期页面,让工具先只读标题和账号标识。连接现有浏览器的指南 列出了写入前的核对项。
Tabbit Browser 有另一种接入方式,支持包括 Claude Code 在内的编码助手。想让助手操作现有 Tabbit 标签页时,可以按产品文档配置。有赞卖家表单录屏 展示了在真实账号环境填写后,回列表读回结果的过程。原录屏用的是另一个编码助手,用来说明浏览器端的核对步骤。Tabbit 快速上手
新项目先用 local 范围跑一张公开测试页。团队确实要共用时再审核 project 配置,多项目都需要时再考虑 user。遇到已登录任务,选择明确授权的 浏览器连接方式。无论哪种方式,都让 浏览器自动化 交付一个可以独立核验的结果。
常见问题
Claude Code 怎么添加 Playwright MCP?
在项目根目录运行 claude mcp add --scope local --transport stdio playwright -- npx -y @playwright/mcp@0.0.84 --headless --isolated。用 claude mcp list 检查连接,再开一个新会话验证浏览器工具。
project 和 user 范围有什么区别?
project 把配置写进项目根目录的 .mcp.json,队友可以审核和批准。user 把条目保存在当前用户的私有配置里,可以跨项目使用。
默认的 local 配置保存在哪里?
Claude Code 把 local 条目放在用户配置的当前项目记录下。这个范围只在当前项目生效,不随仓库共享。
Playwright 已连接,为什么看不到工具?
先在新会话确认目录、项目授权、同名条目和权限。工具搜索也可能延迟加载定义,可以点名要求一次只读操作,再检查实际调用。
这个配置需要 Claude in Chrome 扩展吗?
本文的 stdio 配置会启动 Microsoft Playwright MCP 的隔离浏览器会话。需要使用现有标签页时,再单独选择 Chrome 扩展或其他明确的连接方式。