浏览器自动化服务器

Playwright MCP服务器提供浏览器自动化功能,支持无头模式和VNC可视化模式,适用于生产环境和调试开发。

  • by AndrewJDawes
  • Dockerfile
  • 本地部署
  • 更新于
在 GitHub 查看 AndrewJDawes/playwright-mcp-server

使用说明

剧作家MCP服务器

此存储库包含用于在不同浏览器模式下运行Playwright MCP服务器的Docker配置。

概述

Playwright MCP服务器为Claude Desktop等AI助手提供浏览器自动化功能。此设置为不同的用例提供了无头和VNC启用(可视化)模式。

可用模式

1.无头模式(生产)

  • 无可视界面
  • 资源使用率最低
  • 非常适合生产部署
  • 后缀 -headless 到图像标签
  • 例子: ghcr.io/andrewjedawes/playwright-mcp-server:latest-headless

2.VNC/可视化模式(调试)

  • 通过VNC的可视化浏览器界面
  • 非常适合调试和开发
  • 实时查看浏览器
  • 后缀 -vnc 到图像标签
  • 例子: ghcr.io/andrewjedawes/playwright-mcp-server:latest-vnc

运行MCP服务器

无头模式

docker run -i --rm ghcr.io/andrewjedawes/playwright-mcp-server:latest-headless

视觉(VNC)模式

要在视觉模式下运行,请使用 -vnc 对MCP服务器和VNC端口进行成像和曝光:

docker run -i --rm -p 8931:8931 -p 5900:5900 ghcr.io/andrewjedawes/playwright-mcp-server:latest-vnc

传递论点(例如,--vision)

您可以在映像名称后传递任何Playwright MCP服务器参数。例如,要启用视觉模式,请使用 --vision 标志:

docker run -i --rm -p 8931:8931 -p 5900:5900 ghcr.io/andrewjedawes/playwright-mcp-server:latest-vnc --vision

或者指定其他MCP端口:

docker run -i --rm -p 9000:8931 -p 5900:5900 ghcr.io/andrewjedawes/playwright-mcp-server:latest-vnc --port 8931 --vision

环境配置

适用于Cursor/Claude桌面

创建MCP服务器配置:

VNC:

{
	"playwright-mcp-server-vnc": {
		"command": "docker",
		"args": [
			"run",
			"-i",
			"--rm",
			"-p",
			"8931:8931",
			"-p",
			"5900:5900",
			"ghcr.io/andrewjedawes/playwright-mcp-server:latest-vnc"
		]
	}
}

无头:

{
	"playwright-mcp-server-headless": {
		"command": "docker",
		"args": [
			"run",
			"-i",
			"--rm",
			"ghcr.io/andrewjedawes/playwright-mcp-server:latest-headless"
		]
	}
}

传递自定义参数

传递自定义参数(例如 --browser firefox 或 --vision),将其直接纳入 docker run 图像名称后的命令。

例子:

docker run -i --rm -p 8931:8931 -p 5900:5900 ghcr.io/andrewjedawes/playwright-mcp-server:latest-vnc --vision --browser firefox

VNC访问

使用VNC模式时:

  • 统一资源定位符: vnc://localhost:5900
  • 密码: playwright
  • 决心:1024x768

VNC客户端:

  • macOS:内置屏幕共享或TigerVNC
  • 视窗:TigerVNC、RealVNC或UltraVNC
  • Linux:Remmina、TigerVNC或基于浏览器的客户端

连接到服务器

服务器应连接到可流式传输的HTTP。例如 mcp.json 文件包括以下配置:

{
	"servers": {
		"playwright-mcp-server-vnc": {
			"url": "http://localhost:8931/mcp"
		}
	}
}

确保您的服务器配置遵循类似的结构,以实现正确的连接。

运作原理

  1. MCP通信:容器运行时 -i stdin/stdout通信标志
  2. 浏览器会话:Playwright在容器中启动Chromium(或您选择的浏览器)
  3. VNC访问:X11转发允许您查看浏览器的运行情况
  4. 双模式:相同的MCP服务器,不同的可见性选项

故障排除

如果您遇到问题:

  1. 重建图像 要获取最新修复程序:

    docker build -t ghcr.io/andrewjedawes/playwright-mcp-server:latest-vnc .
    docker build -t ghcr.io/andrewjedawes/playwright-mcp-server:latest-headless .
    
  2. 验证容器是否正常工作:

    docker run --rm ghcr.io/andrewjedawes/playwright-mcp-server:latest-headless npx playwright --version
    

浏览器未启动

# Check if the container is running
docker ps
# Check logs
docker logs <container_id>

替换 <container_id> 具有来自的实际容器ID docker ps.

VNC连接问题

# Test VNC port
nc -zv localhost 5900
# Check if VNC server is running in container
docker exec <container_id> ps aux | grep vnc

替换 <container_id> 具有来自的实际容器ID docker ps.

建筑

MCP Client (Claude Desktop)
    ↓ (stdin/stdout)
Docker Container
    ├── MCP Server (Playwright CLI)
    ├── Playwright
    ├── Chromium/Other Browser
    └── VNC Server (optional)
        ↓ (port 5900)
VNC Client (for debugging)

用例

无头模式:

  • 生产MCP服务器
  • 自动化工作流程
  • 资源受限的环境

VNC模式:

  • 调试浏览器自动化
  • 开发和测试
  • 浏览器操作的视觉验证
  • 演示浏览器功能

替代方案

选项3:X11转发(Linux/macOS)

# Linux
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix playwright-mcp-server:latest

# macOS (with XQuartz)
xhost +localhost
docker run -it --rm -e DISPLAY=host.docker.internal:0 playwright-mcp-server:latest

许可证