Playwright Universal MCP

Playwright Universal MCP

用于在容器化环境中进行浏览器自动化的通用 Playwright MCP 服务器

xkiranj

浏览器自动化
访问服务器

README

Playwright 通用 MCP

一个通用的 模型上下文协议 (MCP) 服务器,用于浏览器自动化,可在具有有限权限的容器化环境中可靠地工作。它为 Claude、GPT-4 等 AI 助手提供浏览器控制功能。

特性

  • 🌐 多浏览器支持:在 Chromium、Chrome、Microsoft Edge、Firefox 或 WebKit 之间选择
  • 🐳 容器友好:可在具有有限权限的环境中工作(如 Docker 容器)
  • 👁️ 无头/有头模式:在服务器环境中以无头模式运行,或以有头模式进行调试
  • 🛠️ 广泛的浏览器控制:导航、点击、输入、截屏等
  • 📄 多页面支持:创建和管理多个浏览器页面/标签

安装

选项 1:使用 pipx 安装(推荐)

# 安装 MCP Python SDK
pip install git+https://github.com/microsoft/mcp-python-sdk.git

# 全局安装 MCP 服务器
pipx install playwright-universal-mcp

# 安装所需的浏览器
playwright install chromium
# 可选:安装其他浏览器
playwright install firefox webkit msedge chrome

选项 2:在 Python 虚拟环境中安装

# 创建并激活虚拟环境
python -m venv playwright-mcp-venv
source playwright-mcp-venv/bin/activate

# 安装 MCP Python SDK
pip install git+https://github.com/microsoft/mcp-python-sdk.git

# 安装包
pip install playwright-universal-mcp

# 安装浏览器
playwright install chromium

选项 3:从源代码安装

# 克隆仓库
git clone https://github.com/xkiranj/playwright-universal-mcp.git
cd playwright-universal-mcp

# 安装 MCP Python SDK
pip install git+https://github.com/microsoft/mcp-python-sdk.git

# 安装包
pip install -e .

# 安装浏览器
playwright install chromium

用法

命令行选项

playwright-universal-mcp --help
usage: playwright-universal-mcp [-h] [--browser {chromium,firefox,webkit,msedge,chrome}] [--headless] [--headful] [--debug] [--browser-arg BROWSER_ARG]

Universal Playwright MCP server with multi-browser support

options:
  -h, --help            show this help message and exit
  --browser {chromium,firefox,webkit,msedge,chrome}, -b {chromium,firefox,webkit,msedge,chrome}
                        Browser to use (default: chromium)
  --headless            Run browser in headless mode (default: true)
  --headful             Run browser in headful mode (with GUI)
  --debug               Enable debug logging
  --browser-arg BROWSER_ARG
                        Additional browser arguments (can be specified multiple times)

基本示例

# 使用默认选项启动(无头模式下的 Chromium)
playwright-universal-mcp

# 使用 Microsoft Edge
playwright-universal-mcp --browser msedge

# 在有头模式下使用 Firefox(可见的浏览器窗口)
playwright-universal-mcp --browser firefox --headful

# 启用调试日志
playwright-universal-mcp --debug

# 将其他参数传递给浏览器
playwright-universal-mcp --browser-arg="--disable-gpu" --browser-arg="--window-size=1920,1080"

MCP 配置

要将此 MCP 服务器与 Claude Desktop 或其他启用 MCP 的应用程序一起使用,请添加以下配置:

Claude Desktop 配置

将以下内容添加到您的 ~/.config/Claude/claude_desktop_config.json 文件中:

{
  "mcpServers": {
    "browser": {
      "command": "playwright-universal-mcp",
      "args": ["--browser", "msedge", "--headless"]
    }
  }
}

作为 PM2 服务运行

要使用 PM2 将 MCP 服务器作为持久服务运行:

  1. 创建一个 PM2 配置文件:
cat > ~/playwright-universal-mcp.config.js << 'EOF'
module.exports = {
  apps: [{
    name: "playwright-universal-mcp",
    script: "playwright-universal-mcp",
    args: "--browser msedge --headless",
    watch: false,
    autorestart: true,
    restart_delay: 3000
  }]
}
EOF
  1. 启动服务:
pm2 start ~/playwright-universal-mcp.config.js
  1. 保存 PM2 进程列表:
pm2 save

容器化用法

此 MCP 服务器在容器化环境中运行良好。这是一个简单的 Dockerfile 示例:

FROM python:3.10-slim

# 安装依赖
RUN apt-get update && apt-get install -y \
    wget \
    gnupg \
    && rm -rf /var/lib/apt/lists/*

# 安装包
RUN pip install playwright-universal-mcp

# 安装浏览器(安装您需要的浏览器)
RUN playwright install chromium

# 运行 MCP 服务器
ENTRYPOINT ["playwright-universal-mcp", "--headless"]

可用浏览器工具

MCP 服务器提供以下工具:

  • navigate: 导航到 URL
  • click: 通过选择器或文本点击元素
  • type: 将文本输入到输入元素中
  • get_text: 从元素获取文本内容
  • get_page_content: 获取当前页面 HTML 内容
  • take_screenshot: 截取当前页面的屏幕截图
  • new_page: 创建一个新的浏览器页面
  • switch_page: 切换到不同的浏览器页面
  • get_pages: 列出所有可用的浏览器页面
  • wait_for_selector: 等待元素在页面上可见
  • get_browser_info: 获取有关当前浏览器会话的信息

许可证

MIT 许可证

致谢

本项目基于:

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Playwright MCP Server

Playwright MCP Server

提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。

精选
本地
TypeScript
@kazuph/mcp-fetch

@kazuph/mcp-fetch

用于获取网页内容和处理图像的模型上下文协议服务器。这使得 Claude Desktop(或任何 MCP 客户端)能够适当地获取网页内容和处理图像。

精选
本地
JavaScript
DuckDuckGo MCP Server

DuckDuckGo MCP Server

一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。

精选
Python
YouTube Transcript MCP Server

YouTube Transcript MCP Server

这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。

精选
Python
serper-search-scrape-mcp-server

serper-search-scrape-mcp-server

这个 Serper MCP 服务器支持搜索和网页抓取,并且支持 Serper API 引入的所有最新参数,例如位置。

精选
TypeScript
The Verge News MCP Server

The Verge News MCP Server

提供从The Verge的RSS feed获取和搜索新闻的工具,允许用户获取今日新闻、检索过去一周的随机文章,以及在最近的Verge内容中搜索特定关键词。

精选
TypeScript
Tavily MCP Server

Tavily MCP Server

使用 Tavily 的搜索 API 提供 AI 驱动的网络搜索功能,使 LLM 能够执行复杂的网络搜索、获得问题的直接答案以及搜索最近的新闻文章。

精选
Python
mcp-pinterest

mcp-pinterest

用于图像搜索和信息检索的 Pinterest 模型上下文协议 (MCP) 服务器

精选
TypeScript
Crawlab MCP Server

Crawlab MCP Server

官方
Python