复用 chrome-devtools mcp server 中现有的浏览器 | GGAMI.NET安装并使用 chrome-devtools mcp 时,会启动一个新的浏览器。这样偶尔会被识别为机器人而遭到拦截;或者在开发阶段,如果服务需要登录,由于无法保留 Cookie,连登录处理都变得很复杂,导致很多时候无法正常测试和开发。
[mcp_servers.chrome-devtools]
command = "npx"
args = ["-y", "chrome-devtools-mcp@latest"]
startup_timeout_sec = 30.0
我看到别的网站上有人写过相关内容,说可以在现有浏览器中开放 debug port,从而连接到它,所以我也决定照着做。
不过这样做可能存在安全风险,但毕竟启动的是 Chrome Dev.app,所以感觉多少还算可以接受。
- 启动
Automator 应用。
- 选择“应用程序”。
- 选择“实用工具” - “运行 Shell 脚本”。
- 粘贴以下内容。
- 将应用保存为
Google Chrome Beta Debug.app,并放入 /Applications 路径下。
- 使用下面的 .icns 文件更换图标。(可以在“显示简介”中通过复制 + 粘贴来更换)
- 将应用拖放到 Dock 中进行添加。
- 点击 Dock 中的该应用并启动它。
至此,使用 debug port 启动浏览器的设置就完成了。
不过,MacOS 有个挺离谱的地方:如果不设置 --user-data-dir=/tmp/atlas-mcp,而是使用默认配置文件启动,那么无论怎么折腾,debug mode 都不会启用……(我不知道这一点,折腾了好几个小时;Windows 上好像不是这样的,真是无语。)
最后,只要修改 codex config.toml 中的参数值就可以了。
除了 browser-url 选项外,还需要一并设置几个其他选项。
之后,在 codex cli 中说“请在浏览器中打开该页面”时,它会在已经打开的 debug chrome dev profile 中访问页面。因此,只要事先在该页面中登录了正在处理的页面,打开时就会处于已登录状态,这样就可以通过 cli 顺利查找并解决问题。
这可能会带来安全问题,不过据我所知,debug port 无法从外部连接,只能通过内部网络(本地)访问。(Windows 上是这样的。)
所以我觉得应该不会有什么大问题,但还是最好意识到,这种做法可能存在安全风险和隐患。或者,也可以另外安装 Chrome Dev 或 Chrome Beta,并使用单独的配置文件启动,这样可能相对安全一些。