返回市场
<中文翻译>
playwright服务器发送事件流MCP服务器

<中文翻译> playwright服务器发送事件流MCP服务器

作者:torohash6 星标更新:2025-04-13

项目介绍

playwright-sse-mcp-server

这是一个服务,用于将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-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服务器设置,填写如下内容(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-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.ymlports中设置,默认为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(服务器发送事件)与MCP客户端通信