【开源】让 Codex 调试 国产360 极速浏览器:基于 Chrome DevTools MCP 的本地调试插件
客户使用的360浏览器,最近在处理一些只会在 360 极速浏览器中出现的兼容性问题,例如旧版 Chromium 的语法兼容、PDF.js 中文字体异常、资源加载失败等。
Chrome 中已有比较成熟的 DevTools MCP,但我实际使用的目标环境是 360 极速浏览器。因此,我做了一个面向 Codex 的 360 浏览器调试插件:
GitHub:YangHeng66/360-browser-debugger
它可以让 Codex 自动启动一个隔离的 360 浏览器实例,并通过 Chrome DevTools Protocol 进行页面调试。
主要支持:
- DOM 和页面结构检查
- JavaScript 运行时状态分析
- Console 错误排查
- Network 请求、状态码、响应头和资源类型检查
- 页面截图
- Performance 性能追踪
- PDF.js 字体、CMap、Worker 和资源加载问题排查
- Chromium 86 兼容性检查
MCP 是如何适配 360 浏览器的
这里需要说明一下:项目并没有直接修改或 fork Google 的 chrome-devtools-mcp 源码。
底层仍然使用官方的:
chrome-devtools-mcp@1.6.0
上游项目:
ChromeDevTools/chrome-devtools-mcp
360 极速浏览器本身基于 Chromium,也支持 Chrome DevTools Protocol。因此,适配的核心并不是重写 MCP 工具,而是让 360 浏览器开放一个本地 CDP 地址,然后将这个地址交给上游 MCP:
http://127.0.0.1:9222
启动方式相当于:
npx chrome-devtools-mcp@1.6.0 `
--browser-url=http://127.0.0.1:9222
在此基础上,我增加了一层专门面向 360 浏览器的代理和生命周期管理。
主要增加了哪些能力
第一,增加了 360 浏览器启动和路径检测。
插件会自动寻找 360chrome.exe,也可以通过环境变量指定安装位置:
$env:CODEX_360_BROWSER_PATH = 'D:\360\360Chrome\Chrome\Application\360chrome.exe'
第二,使用隔离的浏览器用户目录。
调试时不会连接日常使用的 360 浏览器配置,也不会读取原浏览器中的 Cookie、密码或登录状态。
第三,实现 MCP 懒启动。
Codex 加载插件和查询工具列表时不会弹出浏览器。只有真正调用 new_page、Console、Network 等调试工具时,才会启动 360 浏览器。
第四,增加 CDP 就绪检查。
浏览器启动后会访问:
http://127.0.0.1:9222/json/version
确认浏览器版本、协议版本以及 WebSocket 调试地址已经准备完成,然后才把 MCP 请求继续转发给上游。
第五,增加多会话生命周期管理。
插件通过进程租约和 Windows 互斥锁避免重复启动。最后一个使用该 MCP 的进程退出后,插件会自动关闭自己启动的隔离浏览器。
第六,固定兼容版本。
目前验证环境为:
360 极速浏览器:13.5.2042.0
Chromium:86.0.4240.198
CDP:1.3
chrome-devtools-mcp:1.6.0
因为 360 当前使用的是较旧 Chromium,所以没有直接跟随最新 MCP 版本,而是固定在已完成实际验证的版本。
为什么不直接修改 Chrome DevTools MCP
Chrome 和 360 的共同调试基础都是 CDP。只要 360 能提供兼容的 CDP 接口,上层的 DOM、Console、Network、截图和性能分析能力就可以继续复用。
因此这个项目采用的是:
Codex Skill
↓
360 懒启动代理
↓
Google Chrome DevTools MCP
↓
Chrome DevTools Protocol
↓
隔离的 360 极速浏览器
这样可以保留上游 MCP 的完整能力,同时把差异限制在浏览器启动、连接地址、安全隔离和生命周期管理上,后续维护成本也比较低。
安装与使用
完整安装步骤、MCP 路径配置和环境变量说明已经写在仓库 README 中:
安装后可以直接在 Codex 中使用:
使用 $debug-360-browser 调试 http://localhost:3100,
检查 Console 和 Network 中的首个错误。
项目目前已经开源,欢迎提交 Issue 或 PR。
更多推荐


所有评论(0)