Playwright 流式服务
通过模型上下文协议(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
设置和启动方法
- 克隆或下载仓库
- 在项目根目录下执行以下命令:
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地址(例如通过
ifconfig或ip 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
- 示例:
- 宿主机的IP地址: 使用分配给宿主机网络接口的IP地址(例如通过
注意事项:
- 根据宿主机防火墙设置,可能不允许从开发容器访问宿主机上的某些端口。
- 使用的端口号可以在
docker compose ps命令输出或compose.yml文件中找到。
便捷用法
每次都需要进入项目目录再运行docker compose命令可能会很麻烦。下面介绍一种方法,可以让您从任何地方轻松地启动或停止服务器。
使用Shell脚本
该项目包含了一些shell脚本,可以帮助您更方便地启动、停止服务器以及查看日志。
- 克隆或下载项目:
# 任意のディレクトリにクローン
git clone https://github.com/torohash/playwright-sse-mcp-server.git /path/to/installation
- 在
.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"
- 重启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客户端通信