浏览器自动化Docker镜像

一个运行Playwright MCP服务器并通过Chrome DevTools协议连接Windows浏览器的Docker镜像,用于AI代理控制浏览器。

  • by mirsimko
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 mirsimko/playwright-mcp-docker

使用说明

剧作家MCP Docker(CDP桥)

运行以下命令的Docker镜像 剧作家MCP 服务器,并通过Chrome DevTools协议(CDP)连接到Windows浏览器。设计用于 Docker MCP网关 以便任何连接的AI代理(Claude Code、Cursor、Codex等)都可以控制浏览器。

为什么

当浏览器在Windows上运行时,在WSL2中运行Claude Code(或其他AI代理)会给浏览器自动化带来网络挑战。此图像通过以下方式解决了这个问题:

  • 解决 host.docker.internal 运行时连接到Windows主机IP
  • 直接将IP用作CDP端点(Edge/Chrome要求Host标头是IP或 localhost)
  • 以stdio模式运行,与Docker MCP网关无缝集成

先决条件

  • Docker 桌面版 在Windows上使用WSL2后端
  • 微软边缘 以所有三面旗帜启动:
    "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0 --remote-allow-origins=*
    
    • --remote-debugging-port=9222 --启用CDP
    • --remote-debugging-address=0.0.0.0 --绑定所有接口,以便Docker可以访问它
    • --remote-allow-origins=* --允许来自任何来源的CDP连接(从Edge v136+开始需要)
  • 防火墙规则 允许9222上的入站TCP(管理员PowerShell,一次性):
    New-NetFirewallRule -DisplayName "CDP 9222" -Direction Inbound -LocalPort 9222 -Protocol TCP -Action Allow
    

不要使用 netsh portproxy --它与上的Edge绑定冲突 0.0.0.0:9222 并导致连接挂起。如果您有一个设置,请将其删除:

netsh interface portproxy delete v4tov4 listenport=9222 listenaddress=0.0.0.0

构建

docker build -t playwright-mcp .

用法

使用Docker MCP网关(推荐)

  1. 在以下位置创建自定义目录文件 ~/.docker/mcp/catalogs/custom-tools.yaml (参见 playwright-catalog.yaml 模板)

  2. 将服务器添加到注册表(~/.docker/mcp/registry.yaml):

    browser-cdp:
      ref: ""
    
  3. 启用服务器:

    docker mcp server enable browser-cdp
    
  4. 添加 --additional-catalog custom-tools.yaml 到客户端MCP配置中的网关参数(例如。, .mcp.json):

    {
      "mcpServers": {
        "MCP_DOCKER": {
          "command": "docker",
          "args": ["mcp", "gateway", "run", "--additional-catalog", "custom-tools.yaml"],
          "type": "stdio"
        }
      }
    }
    

独立(HTTP/SSE)

docker run -d --name playwright-mcp -p 8931:8931 playwright-mcp --port 8931 --host 0.0.0.0

然后将任何MCP客户端连接到 http://localhost:8931/mcp.

边缘快捷方式

要始终在启用CDP的情况下启动Edge,请将任务栏快捷方式Target修改为:

"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0 --remote-allow-origins=*

在首次使用这些标志启动之前,必须关闭所有Edge进程。如果Edge已在运行,则这些标志将被自动忽略。

文件

文件 描述
Dockerfile 使用以下内容构建图像 @playwright/mcp
entrypoint.sh 决议 host.docker.internal IP并推出Playwright MCP
playwright-catalog.yaml Docker MCP网关自定义目录条目的模板