Chrome DevTools MCP 可以让 MCP 客户端直接连接到 Chrome 的远程调试接口。WSL2 和 Windows 的网络是隔离的,所以需要做端口转发与防火墙放行。下面把关键命令拆开说明,按步骤执行即可。

前置条件
- Windows 已安装 Chrome。
- 已安装 WSL2,并能在 WSL 内使用
npx。 - 具备管理员权限运行 PowerShell 脚本。
1. 在 Windows 侧开启端口转发与防火墙
以管理员身份打开 PowerShell,执行以下命令:
netsh interface portproxy add v4tov4 `
listenaddress=0.0.0.0 listenport=9222 `
connectaddress=127.0.0.1 connectport=9222
New-NetFirewallRule `
-DisplayName "Chrome DevTools MCP 9222" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 9222 `
-Action Allow
第一条命令将 0.0.0.0:9222 转发到 127.0.0.1:9222,第二条命令放行 9222 入站。
2. 在 Windows 侧启动 Chrome 远程调试
继续在 PowerShell 中执行:
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
--user-data-dir="$env:USERPROFILE\ChromeProfiles\mcp" `
--remote-debugging-port=9222 `
--remote-debugging-address=127.0.0.1 `
--no-first-run `
--no-default-browser-check
这里使用独立的用户数据目录,避免影响日常浏览。
3. 在 WSL 中配置 MCP 客户端
以 Codex 为例,在 ~/.codex/config.toml 添加:
[mcp_servers.chrome-devtools]
command = "npx"
args = ["chrome-devtools-mcp@latest", "--browserUrl=http://172.31.240.1:9222/json"]
其中 172.31.240.1 需要通过 Windows 侧获取。以管理员或普通 PowerShell 执行 ipconfig,找到 vEthernet (WSL (Hyper-V firewall)) 的 IPv4 地址:
以太网适配器 vEthernet (WSL (Hyper-V firewall)):
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::2ec3:951c:91a0:afbd%61
IPv4 地址 . . . . . . . . . . . . : 172.31.240.1
子网掩码 . . . . . . . . . . . . : 255.255.240.0
默认网关. . . . . . . . . . . . . :
将该 IPv4 地址用作 browserUrl 的主机地址。
4. 验证连接
直接在 WSL 中访问:
curl http://172.31.240.1:9222/json
若返回包含 webSocketDebuggerUrl 的 JSON 列表,说明连接正常。
常见问题
- 端口被占用:确认本机 9222 未被其他实例占用。
- 无法访问 9222:检查是否成功设置端口转发与防火墙规则。
- Chrome 没有启动:命令默认路径为
C:\Program Files\Google\Chrome\Application\chrome.exe,如安装位置不同请调整命令路径。
总结
流程核心是:Windows 侧做端口转发与放行,并启动 Chrome 远程调试,WSL 侧用正确的网关 IP 访问 /json。完成后,WSL 内的 MCP 客户端即可稳定连接到 Chrome。