P

Playwright 流式服务

@torohash/playwright-sse-mcp-server
0 Stars 531 次浏览 torohash 更新于 2026-08-23

通过模型上下文协议(MCP)提供 Playwright 浏览器自动化功能的服务,允许客户端通过 SSE 连接使用 Playwright 功能。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "playwright-sse-mcp-server-local": {
      "url": "http://172.17.0.1:\u003cPORT\u003e/sse"
    }
  }
}

服务介绍

playwright-sse-mcp-server

这是一个将Playwright作为MCP(Model Context Protocol)服务器提供的服务。通过使用这个服务器,可以从MCP客户端利用Playwright的功能。

前提条件

  • 已安装Docker
  • 已安装docker-compose
  • 存在一个名为mcp-network的Docker网络

如果不存在mcp-network,可以通过以下命令创建:

docker network create mcp-network

设置和启动方法

  1. 克隆或下载仓库
  2. 在项目根目录下执行以下命令:
docker compose up --build

这将会在默认的3002端口上启动服务器。启动完成后,您会看到类似如下的消息:

playwright-sse-mcp-server  | Server is running on port 3002

自定义端口设置

如果您希望在非默认端口(3002)上启动服务器,请设置环境变量PORT

PORT=4000 docker compose up --build

这样服务器就会在指定的端口(此例中为4000)上启动:

playwright-sse-mcp-server  | Server is running on port 4000

使用方法

从同一mcp-network中的容器连接

对于已经加入同一mcp-network的其他容器,可以通过以下URL连接到服务器(PORT是服务器的启动端口):

playwright-sse-mcp-server:${PORT}/sse

当使用默认端口时:

playwright-sse-mcp-server:3002/sse

这样就可以利用Playwright的MCP功能了。

从主机连接

从宿主机上,可以使用以下URL连接到服务器(PORT是服务器的启动端口):

localhost:${PORT}/sse

当使用默认端口时:

localhost:3002/sse

从Roo Code连接

MCP Servers -> 编辑MCP设置 -> 填写如下内容(PORT是服务器的启动端口):

{
  "mcpServers": {
    "playwright-sse-mcp-server-local": {
      "url": "http://localhost:${PORT}/sse"
    }
  }
}

当使用默认端口时:

{
  "mcpServers": {
    "playwright-sse-mcp-server-local": {
      "url": "http://localhost:3002/sse"
    }
  }
}

注意:截至2025/03/27,Cline还不支持SSE,因此无法使用。

从容器环境中连接Roo Code

对于在同一Docker Network内运行的Roo Code容器,可以按如下方式配置MCP:

{
  "mcpServers": {
    "playwright-sse-mcp-server-local": {
      "url": "http://playwright-sse-mcp-server:3002/sse"
    }
  }
}

docker-compose.yml示例配置

services:
  # Roo Code コンテナ
  roo-code:
    # 略

networks:
  mcp-network:
    external: true

通过这种配置,Roo Code容器能够连接到playwright-sse-mcp-server容器并利用浏览器操作功能。通过使用容器名称(playwright-sse-mcp-server)作为主机名,在Docker Network内部实现名称解析。

从开发容器环境连接Roo Code(通过宿主机)

当在开发容器中运行Roo Code,并且不想加入mcp-network而是希望通过宿主机来连接此MCP服务器时,可以按如下方式配置MCP。

对于Docker Desktop (Mac/Windows)的情况:

{
  "mcpServers": {
    "playwright-sse-mcp-server-local": {
      "url": "http://host.docker.internal:<PORT>/sse"
    }
  }
}

对于Linux的情况 (例如使用桥接网关IP):

{
  "mcpServers": {
    "playwright-sse-mcp-server-local": {
      "url": "http://172.17.0.1:<PORT>/sse"
    }
  }
}

注意事项:

  • <PORT>替换为您想要使用的MCP服务器公开于宿主机上的端口号(默认值: 3002)。
  • 对于Linux系统,需要将172.17.0.1部分替换为实际的宿主机IP地址或者Docker桥接网络的网关IP地址。详情请参考“通过宿主机连接(开发容器)”章节。

从开发容器连接(通过宿主机)

如果您的开发容器没有加入mcp-network但仍需访问该MCP服务器(例如由于现有项目的限制难以更改网络设置),则可以通过宿主机进行连接。

在这种情况下,需要指定从开发容器视角看的“宿主机”IP地址或特殊DNS名称以及MCP服务器在宿主机上公开的端口(通过compose.yml中的ports设置,默认为3002)。

连接URL:

http://<host_ip_or_dns_name>:<PORT>/sse

<PORT>替换为MCP服务器正在监听的实际端口号。

确定<host_ip_or_dns_name>的方法:

  • Docker Desktop (Mac/Windows): 可以使用特殊的DNS名称 host.docker.internal
    • 示例: http://host.docker.internal:3002/sse
  • Linux:
    • 宿主机的IP地址: 使用分配给宿主机网络接口的IP地址(例如通过ifconfigip addr命令查看)。
      • 示例: http://192.168.1.10:3002/sse (具体IP地址根据环境而异)
    • Docker桥接网络的网关: 可以使用Docker默认桥接网络(bridge)的网关IP地址(通常是172.17.0.1)。可通过docker network inspect bridge命令确认。
      • 示例: http://172.17.0.1:3002/sse

注意事项:

  • 根据宿主机防火墙设置,可能不允许从开发容器访问宿主机上的某些端口。
  • 使用的端口号可以在docker compose ps命令输出或compose.yml文件中找到。

便捷用法

每次都需要进入项目目录再运行docker compose命令可能会很麻烦。下面介绍一种方法,可以让您从任何地方轻松地启动或停止服务器。

使用Shell脚本

该项目包含了一些shell脚本,可以帮助您更方便地启动、停止服务器以及查看日志。

  1. 克隆或下载项目:
# 任意のディレクトリにクローン
git clone https://github.com/torohash/playwright-sse-mcp-server.git /path/to/installation
  1. .bashrc(或者.zshrc等你正在使用的shell配置文件)中添加以下行,以加载shell脚本:
# Playwright MCP Server
export PLAYWRIGHT_MCP_HOME="/path/to/installation"
source "$PLAYWRIGHT_MCP_HOME/scripts/playwright-mcp.sh"

# 具体例(絶対パス利用)
export PLAYWRIGHT_MCP_HOME="$HOME/mcps/playwright-sse-mcp-server"  # 実際のパスに置き換えてください
source "$PLAYWRIGHT_MCP_HOME/scripts/playwright-mcp.sh"
  1. 重启shell或重新加载配置文件:
source ~/.bashrc

这样,你就可以从任何地方使用以下命令了:

基本用法

  • playwright-mcp-start - 使用默认设置(端口3002、不自动重启)启动服务器
  • playwright-mcp-stop - 停止服务器
  • playwright-mcp-logs - 显示服务器日志

持久模式的使用

通过使用持久模式,可以在系统重启时自动启动服务器:

playwright-mcp-start -p
# または
playwright-mcp-start --persistent

使用自定义端口

playwright-mcp-start -P 4000
# または
playwright-mcp-start --port 4000

结合持久模式与自定义端口

playwright-mcp-start -P 4000 -p
# または
playwright-mcp-start --port 4000 --persistent

指定特定的重启策略

playwright-mcp-start -r always
# または
playwright-mcp-start --restart always

显示帮助信息

playwright-mcp-start -h
# または
playwright-mcp-start --help

这种方法允许通过标志选项灵活地更改设置,因此更加用户友好。此外,通过将shell脚本分离到单独的文件中,可以保持.bashrc文件简洁,便于管理。

Shell脚本的自定义

Shell脚本位于scripts/playwright-mcp.sh。根据需要,你可以编辑此文件来进行自定义。

环境变量

该shell脚本使用以下环境变量:

  • PLAYWRIGHT_MCP_HOME: 项目的安装目录。如果未设置,则会自动从脚本位置检测。

例如,可以通过如下方式设置环境变量来指定自定义路径:

export PLAYWRIGHT_MCP_HOME="/path/to/custom/installation"

注意事项

  • 此服务器将以无头模式运行Playwright
  • 服务器使用SSE(Server-Sent Events)与MCP客户端通信

相关 MCP 服务