Playwright MCP 入口别乱找:4 个官方地址各管一段,中文文档已落后英文版
Playwright MCP 是微软维护的 MCP 服务器(Model Context Protocol,一套让 AI 客户端调用外部工具的协议),作用是把浏览器交给 AI 直接操作,靠结构化无障碍快照而不是截图。
它没有独立官网,也没有下载页。搜“官网入口”的人最后都落到同一处:playwright.dev 的首页和第二层文档,代码在 GitHub,发行版在 npm。截至 2026-11-01 抓取,playwright.dev 首页已经把 Playwright Test、Playwright CLI、Playwright MCP 三个产品并排列出,MCP 卡片上直接印着 npx @playwright/mcp@latest。同一天打开中文文档站的对应页,工具数写的是“40 多个”,英文站写的是“70+”。你搜到的入口很可能指向后者——这就是现在值得对着核一遍的理由:两版文档已经不同步了。
下文凡标「推算」的,是我按官方页面上的公开数字算的,不是官方结论;其余出自官方页面原文。
四个地址,各管一段
| 要解决的问题 | 地址 | 这一页给什么 |
|---|---|---|
| 先确认它是什么、启动命令长什么样 | https://playwright.dev | 三个产品并列,MCP 卡片直接给启动命令 |
| 查工具清单、快照机制、MCP 与 CLI 怎么选 | https://playwright.dev/mcp/introduction | 工具列表、示例调用、MCP vs CLI 对照表 |
| 抄某个客户端的配置、翻 issue | https://github.com/microsoft/playwright-mcp | README 安装段、Requirements、Apache-2.0 许可 |
| 确认当前版本号 | https://www.npmjs.com/package/@playwright/mcp | npm 包页 |
顺带说清一个常被问到的点:Playwright 本身是端到端测试框架,MCP 只是它下面的一个服务器包。从首页结构看,官方没有为它单开一个站点,三张产品卡片就是总入口,所以“找 MCP 官网”实际上是在同一个站里找第二层路径。这四个地址里只有仓库有“下载”的语义(clone 源码),真正让它跑起来用不到下载,下一节说。至于它是不是玩具:截至 2026-11-01 抓取,GitHub 仓库写着 38.9k star、3.4k fork、607 次提交,主站 Playwright 仓库是 98k+ star。
装之前有三条前置条件,每条都能当场验证:
- Node.js 18 或更新版本。README 的 Requirements 只有这一条硬门槛,运行
node -v看主版本号是否 ≥ 18。 - 客户端在支持范围内:VS Code、Cursor、Windsurf、Claude Desktop、Goose、Grok、Junie,或任何 MCP 客户端。打开客户端设置,能找到 MCP 这一项即可。
- 网络能到 npm。浏览器打开 https://www.npmjs.com/package/@playwright/mcp ,能看到版本信息就过关;打不开先解决网络,后面每一步都依赖它。
没有下载页:一条 npx 命令就是全部“下载”
Playwright MCP 没有 installer、没有 zip、没有 dmg。它作为 npm 包分发,npx 第一次执行时把包拉进本地缓存。
npx @playwright/mcp@latest
这条命令逐字来自 playwright.dev 首页的 MCP 卡片。在终端里敲下去,最先看到的信号是浏览器窗口弹出来——中文文档的原话是“浏览器默认以有头模式打开,以便您查看运行情况”。窗口出来了,包就拉下来了,剩下的事只是把它接进客户端。
这里要解释两个词。快照(accessibility snapshot)是页面元素的结构化文本表示,每个可交互元素带一个唯一引用,例如 e5;模型拿到的是这份文本,不是像素,所以不需要视觉模型,也不会因为按钮换了个颜色就点错。@latest 的意思是每次执行都去解析当时的最新版本——“下载哪个版本”这个问题在这套分发里根本不存在,你拿到的一直是当时最新版,这也是后面建议改配置的原因。
贴进客户端:标准 JSON 与两条 CLI 命令
README 里那句 standard config works in most of the tools 是这一节的全部依据:同一段 JSON,贴进多数客户端的配置文件即可。
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
客户端自带命令行入口的,README 给的是下面两条,可以直接复制:
claude mcp add playwright npx @playwright/mcp@latest
amp mcp add playwright -- npx @playwright/mcp@latest
第一条对应 Claude Code,第二条对应 Amp。两条写法不完全一样,Amp 那条中间多一个 --,照抄时别丢。Claude Desktop 走的是另一条路:README 让它按 MCP install guide 操作,配置内容仍是上面那段标准 JSON。
三个真会卡住的点
Node 版本不够。 README 的 Requirements 第一条就是 Node.js 18 or newer,没写例外。先 node -v 看主版本号,低于 18 就升级,不要拿后面一串报错去倒推原因。
装完才发现接口选错了。 README 有一段很多人跳过:如果你在用 coding agent,可能 CLI+SKILLS 更合适。官方给的理由是 CLI 调用更省 token——不必把工具 schema 和冗长的无障碍树塞进模型上下文;MCP 则适合需要持续状态、反复探查页面结构的循环,官方点名的场景是探索性自动化、自愈测试、长期自主工作流。中文文档的对照表还补了一条更直观的差别:MCP 默认有头,CLI 默认无头。换成可操作的判断:一次任务要走几十步、要一直保持登录态和同一个浏览器上下文,装 MCP;只是让 agent 改代码时顺手跑条命令,用 CLI,首页给的是 npm i -g @playwright/cli@latest。
中英文文档对不上。 英文文档页写 70+ tools,中文文档页写“40 多个工具”,而且中文页多了一句“每个快照约 200-400 个 token”。两处不一致只能说明中文页滞后,查工具清单以英文页和仓库 README 为准。这不是纯文字问题:工具数量决定客户端要塞多大的 schema 进上下文。按中文页给的那组数字推算,一次探索性任务跑二三十次快照,光快照就要几千到一万多 token(推算值,非官方口径)。
怎么算配好了,以及别把 @latest 写死
三个可观察的标志,从弱到强。第一,客户端设置里出现名为 playwright 的服务器,展开能看到工具名列表,例如 browser_navigate。第二,让它做一次最小任务:导航到 https://demo.playwright.dev/todomvc 并添加一条待办。官方文档给的调用序列是先 browser_navigate 带上 url,模型读无障碍快照,找到形如 e5 的元素引用,再 browser_type 带上 ref、text 和 submit。客户端里能滚动出这串调用,就是通了。第三,浏览器窗口是有头的,能看到它自己在点击和输入。
文档里还有一条容易被忽略的能力,正好解释上面“该不该用 MCP”的判断:持久会话,登录状态和 Cookie 默认在会话之间保留。需要维持登录态的流程走 MCP 省事,一次性脚本则没必要为此付出上下文成本。
最后一件容易忽略的事:README 通篇配置都写 @latest,意味着客户端每重启一次都可能换版本,行为变了很难归因。要可复现,就去 npm 包页看当前版本号,把 args 里的 @playwright/mcp@latest 换成 @playwright/mcp@<版本号>。这是操作建议,不是官方规定——官方给的示例一直是 @latest。
参考来源
-
Fast and reliable end-to-end testing for modern web apps | Playwright .NET
-
Playwright 官网首页 https://playwright.dev ——三个产品入口与 MCP 启动命令
-
Playwright MCP 文档(英文)https://playwright.dev/mcp/introduction ——工具数量 70+、示例调用、MCP 与 CLI 对照
-
Playwright MCP 文档(中文)https://playwright.cn/mcp/introduction ——工具数量 40+ 与快照 token 口径,注意滞后
-
GitHub 仓库 microsoft/playwright-mcp https://github.com/microsoft/playwright-mcp ——README、Requirements、许可与仓库状态
-
npm 包页 https://www.npmjs.com/package/@playwright/mcp ——版本号查询
评论区
登录后可评论。