P

Playwright 浏览器自动化服务

@twolven/mcp-server-puppeteer-py
1 Stars 486 次浏览 twolven 更新于 2026-08-23

一个使用 Playwright 提供浏览器自动化功能的 Model Context Protocol 服务器,使大型语言模型(LLMs)能够与网页交互、截屏和在真实的浏览器环境中执行 JavaScript。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "puppeteer": {
      "args": [
        "path/to/puppeteer.py"
      ],
      "command": "python"
    }
  }
}

服务介绍

Puppeteer MCP 服务器(Python 实现)

这是一个使用 Playwright(Puppeteer 的 Python 版本)提供浏览器自动化功能的模型上下文协议服务器。该服务器使 LLMs 能够与网页交互、截取屏幕截图并在真实的浏览器环境中执行 JavaScript。

概览

此 Python 实现为 TypeScript 版本提供了稳定的替代方案,具有相同的特性,并且改进了错误处理和日志记录。它使用 Playwright,这是 Puppeteer 的 Python 版本,提供了强大的浏览器自动化能力。

主要特性

  • 完全浏览器自动化
  • 页面导航
  • 截图捕获(全页或元素)
  • 表单交互(点击和填写)
  • JavaScript 执行
  • 控制台日志监控
  • 可配置的超时
  • 详细的错误处理
  • 全面的日志记录

前提条件

  • Python 3.8+
  • pip(Python 包安装器)

安装

  1. 安装所需的包:
pip install -r requirements.txt
  1. 安装 Playwright 浏览器:
playwright install

使用方法

启动服务器

直接运行服务器:

python puppeteer_server.py

Claude 桌面配置

将以下内容添加到您的 Claude 配置文件中:

{
  "mcpServers": {
    "puppeteer": {
      "command": "python",
      "args": ["path/to/puppeteer.py"]
    }
  }
}

可用工具

puppeteer_navigate

在浏览器中导航至任何 URL。

{
  "name": "puppeteer_navigate",
  "arguments": {
    "url": "https://example.com",
    "timeout": 60000  // optional, defaults to 60000ms
  }
}

puppeteer_screenshot

捕获整个页面或特定元素的截图。

{
  "name": "puppeteer_screenshot",
  "arguments": {
    "name": "my_screenshot",
    "selector": "#specific-element",  // optional
    "width": 1280,  // optional, default: 1280
    "height": 720,  // optional, default: 720
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

puppeteer_click

点击页面上的元素。

{
  "name": "puppeteer_click",
  "arguments": {
    "selector": ".button-class",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

puppeteer_fill

填写输入字段。

{
  "name": "puppeteer_fill",
  "arguments": {
    "selector": "#input-id",
    "value": "text to fill",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

puppeteer_evaluate

在浏览器控制台中执行 JavaScript。

{
  "name": "puppeteer_evaluate",
  "arguments": {
    "script": "document.title",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

错误处理

服务器为常见场景提供了详细的错误消息:

  • 导航失败
  • 未找到元素
  • 超时错误
  • JavaScript 执行错误
  • 截图失败

日志

实现了不同级别的全面日志记录:

  • INFO:标准操作
  • ERROR:操作失败
  • DEBUG:详细的执行信息

注意事项

  • 浏览器以非无头模式启动以便更好地调试
  • 默认视口大小为 1280x720
  • 所有超时均可配置
  • 控制台日志被捕获并存储
  • 截图以 base64 编码存储在内存中

贡献

欢迎贡献!请在提交拉取请求之前阅读仓库的贡献指南。

许可证

该项目根据 Apache 2.0 许可证授权 - 详情请参阅 LICENSE 文件。

相关 MCP 服务