在 Codex CLI 注册 Playwright MCP 后,分别检查三件事。先用 codex mcp get playwright 核对服务的启动配置。再在新会话里用 /mcp 查看实际加载的工具。最后让浏览器访问一个测试页,从工具返回里核对页面。这样出错时,可以先定位是哪一层出了问题。
Reddit 有人装了 VS Code 的 Playwright 扩展,Codex 却还是没识别到浏览器服务。编辑器的 Playwright 测试扩展和 Codex 的 MCP 服务是两项不同设置。本文先用独立浏览器复现连接,最后再说明什么情况下需要接入 Tabbit Browser 中已经登录的页面。原始讨论
先记住这几点
在 Codex 的
mcp_serversTOML 配置里注册服务器,也可以用codex mcp add写入。团队需要复现同一环境时,固定包版本。本文验证使用 Codex CLI 0.166.0 和 Playwright MCP 0.0.84。
读到服务配置、加载工具、打开网页是三个独立检查。
第一次运行可用
--headless --isolated。前者隐藏窗口,后者让浏览器使用临时状态。需要现有标签页或登录态时,要主动选择连接方式。写入前先检查具体账号和页面。
三步验证速查
| 检查 | 怎么做 | 通过标志 | 失败后看什么 |
|---|---|---|---|
| 配置 | codex mcp get playwright | 命令和参数与预期一致 | 配置位置、信任状态和重名条目 |
| 工具 | 新会话执行 /mcp | 列出 browser_navigate、browser_snapshot 等工具 | Node、npx、服务启动和工作区策略 |
| 浏览器 | 要求用 Playwright MCP 打开 TodoMVC | 工具返回最终 URL、页面标题和可见标题 | 浏览器安装、启动方式和网络 |
Playwright 浏览器自动化 可以通过 MCP 把网页操作提供给 Codex。工具返回的结构化快照包含可访问角色、文本和元素引用,Agent 可以用它们定位按钮和输入框。如果任务只是找公开出处,联网搜索 可能已经够用。Playwright MCP 文档
在 Codex 注册本机服务
安装 Codex CLI 和 Node.js。Playwright 的入门文档列出 Node.js 20 或更新版本。执行命令前,确认启动 Codex 的同一个终端能运行 npx。用版本管理器安装 Node 时,编辑器和终端的 PATH 可能不同。
codex --version
node --version
npx --version
codex mcp add playwright -- npx -y @playwright/mcp@0.0.84 --headless --isolated
codex mcp get playwright-- 之后是服务启动命令和参数。Codex 调用 npx,-y 避免首次安装时弹出交互确认。剩下的参数传给 Playwright MCP。示例固定本次验证使用的版本,团队升级前可以先检查新版本的改动。OpenAI Codex 命令文档
需要审核配置时用 TOML
也可以编辑 ~/.codex/config.toml。已有同名服务器时,先检查它服务于哪个浏览器,再决定是保留、更新还是用新名字。不要在文件里重复定义同一个表。
[mcp_servers.playwright]
command = "npx"
args = ["-y", "@playwright/mcp@0.0.84", "--headless", "--isolated"]其他客户端的示例可能用 JSON。这里需要的是 Codex 的 TOML 格式,命令和参数值可以照用。企业策略、工作区设置或编辑器启动环境也可能影响最终生效的配置。请在实际运行 Codex 的环境核对条目。OpenAI Codex MCP 指南
打开测试页,核对工具结果
注册后,在信任的工作区开启新 Codex 会话。输入 /mcp,找到 Playwright 服务。用一个可以独立验收的任务来测试。
使用已配置的 Playwright MCP 打开 https://demo.playwright.dev/todomvc/。
从浏览器工具的返回值报告最终 URL、页面标题和第一个可见标题。
读完就停止。结合工具轨迹看回答。模型可能知道 TodoMVC 的标题,所以一句正确答案不能证明浏览器真的启动。应当看到 browser_navigate,并在结果中看到最终 URL 和标题。还可以让它再调用 browser_snapshot 读取同一页。浏览器智能体原理 说明了为什么页面观察是执行的一部分。
本文验证使用临时工作目录、仅对测试进程生效的配置覆盖和隔离浏览器。Codex app-server 列出了 browser_navigate、browser_snapshot,打开 https://demo.playwright.dev/todomvc/,读到了 todos,最后关闭浏览器。最终 URL 以 /#/ 结尾,网页标题是 React • TodoMVC,快照给出了一级标题。测试使用临时唯一服务名,通过 Codex 客户端协议调用工具。演示站的 favicon 返回 404,所需正文正常加载。

根据缺失的那一步排查
没有配置条目时,先确认命令对应哪个 Codex 版本、加载哪份配置。把整条启动命令塞进一个字符串,也会使参数解析失败。用 codex mcp get playwright --json 在本机查看生效值。若配置含令牌或私有路径,对外分享前先去除这些字段。
有条目但工具没出现时,看服务器启动报错。可以在同一个终端为启动命令加 --help,验证 npx 能否运行该包。帮助输出证明包可以启动,浏览器是否能打开仍需另测。另一条讨论里,Windows 用户按教程设置后仍没能连上 Codex。这条反馈说明先查实际启动环境和有效配置的价值。原始讨论
工具已经加载但页面打不开时,先看错误里提到的浏览器名称和可执行文件。按对应版本的 Playwright 文档安装或指定浏览器。如果浏览器出现却是一张空白页,先读实际 URL 和错误页,再判断是否需要重试。定位故障层后,再考虑 其他浏览器自动化工具。
默认打开哪个浏览器和配置?
0.0.84 未指定浏览器或通道时,使用 Chromium 的 Chrome 通道。Playwright MCP 分别设置浏览器类型、窗口可见性和会话状态。浏览器类型决定运行哪个程序。无头模式控制是否显示窗口。隔离模式控制是否使用临时状态。这三个设置可以分别调整。Microsoft Playwright MCP 配置说明
| 目标 | 启动或连接方式 | 核对内容 |
|---|---|---|
| 复现公开网页测试 | 无头并隔离 | 全新会话的 URL 与可见标题 |
| 看着浏览器跑,又不用个人登录态 | 显示窗口并隔离 | 新窗口和预期页面 |
| 多次运行需要同一个工作账号 | 获准的持久自动化配置 | 浏览器配置、账号和环境 |
| 操作已打开的标签页 | 明确使用扩展或受支持的连接方式 | 浏览器、标签页和账号 |
默认由 Playwright MCP 管理浏览器配置,和你日常窗口里的个人配置分开。隔离启动进一步使用临时状态。同一个网址如果在新的会话里打开,可能会重新要求登录。浏览器配置、工作区和标签组 解释了浏览器里哪些状态可能共享。
如果确实需要现有标签页,按当前版本的 Playwright 扩展文档 完成连接。页面标题和截图用来确认标签页,账号或工作区名称用来确认权限上下文。可以先照 连接现有浏览器的指南 做一次只读检查。
什么时候要接入已有登录态?
独立的 Playwright MCP 会话适合本地 QA、公开页面检查和需要复现的测试。如果实际任务从已经打开的后台开始,先确认 Agent 需要访问哪些页面。用一个标签页和一次只读操作测试,比直接批量改记录更容易核对。
Tabbit 快速上手说明提供了另一种连接方式,支持的编码助手可以接入 Tabbit Browser。Codex 与 Tabbit 的商品录入案例 录下了真实卖家表单以及返回列表的检查。这里用的是 Tabbit 连接,和 Microsoft Playwright MCP 的连接方式不同。Tabbit 快速上手
第一次测试优先用隔离配置跑公开页。确认工具、URL 和标题一致后,再换到自己的测试环境。如果任务确实需要当前登录的网页,使用经过授权的 浏览器操作方式,并在写入前核对账号和目标记录。先用一个可验收的小动作,就能开始 浏览器自动化。
常见问题
Codex CLI 怎么添加 Playwright MCP?
可运行 codex mcp add playwright -- npx -y @playwright/mcp@0.0.84 --headless --isolated,复现本文使用的启动配置。新开 Codex 会话后,用 /mcp 检查实际加载的工具。
codex mcp list 能证明浏览器已经启动吗?
它可以显示 Codex 读到的服务器配置。还要分别检查工具是否加载,以及浏览器能否访问测试页。
Playwright MCP 会使用我已经打开的 Chrome 标签页吗?
默认由 MCP 服务管理独立的浏览器会话。要操作现有浏览器,需要主动选择并授权连接方式,再核对当前的标签页和账号。
headless 和 isolated 有什么区别?
headless 控制是否显示浏览器窗口。isolated 控制会话是否使用临时浏览器配置与状态,两者可以分别设置。
这个配置要安装 Playwright 扩展吗?
本文的无头隔离启动只使用本机 MCP 服务,无需浏览器扩展。需要连接已打开的浏览器时,再使用匹配的 Playwright 扩展和授权流程。