这是一个服务,用于将Playwright作为MCP(模型上下文协议)服务器提供。通过这个服务器,MCP客户端可以使用Playwright的功能。
如果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内的其他容器中,可以通过以下URL连接到服务器(PORT是服务器启动的端口):
playwright-sse-mcp-server:${PORT}/sse
使用默认端口时:
playwright-sse-mcp-server:3002/sse
这样就可以使用Playwright的MCP功能了。
从主机机器上,可以通过以下URL连接到服务器(PORT是服务器启动的端口):
localhost:${PORT}/sse
使用默认端口时:
localhost:3002/sse
编辑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年3月27日,Cline不支持SSE,因此无法使用。
在同一Docker网络内运行的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网络内实现名称解析。
在开发容器内运行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)。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>的方法:
host.docker.internal。
http://host.docker.internal:3002/sseifconfig或ip addr命令查看)。
http://192.168.1.10:3002/sse(IP地址根据环境不同而异)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脚本,用于简单地启动、停止和显示服务器日志。
# 克隆到任意目录
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"
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脚本位于scripts/playwright-mcp.sh。可以根据需要编辑此文件进行定制。
Shell脚本使用以下环境变量:
PLAYWRIGHT_MCP_HOME: 项目的安装目录。如果没有设置,脚本会自动检测其位置。例如,可以通过设置环境变量来指定自定义路径:
export PLAYWRIGHT_MCP_HOME="/path/to/custom/installation"