Tabbit博客

Codex 配置 Playwright MCP 并验证浏览器连接

在 Codex 注册 Playwright MCP,核对工具并打开测试页。

本文目录
  1. 先记住这几点
  2. 三步验证速查
  3. 在 Codex 注册本机服务
  4. 需要审核配置时用 TOML
  5. 打开测试页,核对工具结果
  6. 根据缺失的那一步排查
  7. 默认打开哪个浏览器和配置?
  8. 什么时候要接入已有登录态?

在 Codex CLI 注册 Playwright MCP 后,分别检查三件事。先用 codex mcp get playwright 核对服务的启动配置。再在新会话里用 /mcp 查看实际加载的工具。最后让浏览器访问一个测试页,从工具返回里核对页面。这样出错时,可以先定位是哪一层出了问题。

Reddit 有人装了 VS Code 的 Playwright 扩展,Codex 却还是没识别到浏览器服务。编辑器的 Playwright 测试扩展和 Codex 的 MCP 服务是两项不同设置。本文先用独立浏览器复现连接,最后再说明什么情况下需要接入 Tabbit Browser 中已经登录的页面。原始讨论

先记住这几点

  • 在 Codex 的 mcp_servers TOML 配置里注册服务器,也可以用 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 Playwright MCP 验证结果,含服务、工具和 todos 页面标题
本地连通测试的三项观察。图中整理了工具返回的结果。

根据缺失的那一步排查

没有配置条目时,先确认命令对应哪个 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 扩展和授权流程。

下一步

让 Tabbit 与你并肩工作。

跨标签页调研、自动化重复的浏览器工作,让每一处上下文都触手可及。