Playwright SSE MCP Server

by torohash
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides containerized environment for running the Playwright MCP server, allowing integration with other services through Docker networks and environment variables for deployment flexibility.

  • Offers specific configuration options for running the Playwright MCP server in Linux environments, including special network addressing considerations.

  • Provides persistence options for the server, allowing automatic startup on system reboot through a dedicated persistent mode.

剧作家-sse-mcp-服务器

这是提供 Playwright 作为 MCP(模型上下文协议)服务器的服务。通过使用此服务器,您可以从 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 网络的容器的连接

从参与同一 mcp 网络的其他容器,您可以使用以下 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 代码连接

MCP 服务器 -> 编辑 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,因此无法使用。

在容器环境中从 Roo Code 进行连接

从在同一 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 进行连接(通过主机)

如果您希望在开发容器中运行 Roo Code 并通过主机连接到此 MCP 服务器而不加入mcp-network ,请按如下方式配置 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)。

目标网址:

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 3002/sse(IP 地址可能因您的环境而异)
    • **Docker 桥接网络网关:**可以使用 Docker 默认桥接网络( bridge )的网关 IP 地址,通常为172.17.0.1 。您可以使用docker network inspect bridge命令检查这一点。
      • 例如: http://172.17.0.1:3002/sse 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(服务器发送事件)与 MCP 客户端进行通信
ID: g7db39ipsk