Puppeteer

Puppeteer

site icon
2025.04.20 38474
JavaScript网页自动化网页截图JavaScript执行浏览器自动化
Puppeteer是一个基于Model Context Protocol(MCP)的服务,提供浏览器自动化能力。它使LLMs能够与网页交互、截图以及在真实浏览器环境中执行JavaScript。
View on GitHub

Overview

基本能力

产品定位

Puppeteer是一个浏览器自动化工具,旨在通过MCP协议提供网页交互、截图和JavaScript执行能力。

核心功能

  • 浏览器自动化:包括导航、点击、悬停、表单填充等基本网页交互功能。
  • 截图能力:可以捕获整个页面或特定元素的截图。
  • JavaScript执行:在浏览器控制台中执行自定义JavaScript代码。
  • 控制台日志监控:实时获取浏览器控制台输出。
  • 可定制的Puppeteer启动选项:支持自定义浏览器启动参数。

适用场景

  • 网页自动化测试
  • 网页内容抓取
  • 网页截图生成
  • 网页交互模拟
  • 网页性能监控

工具列表

  1. puppeteer_navigate:导航到指定URL
  2. 能力:控制浏览器访问指定网页,支持自定义启动参数
  3. puppeteer_screenshot:页面截图
  4. 能力:捕获整个页面或特定元素的截图
  5. puppeteer_click:点击元素
  6. 能力:模拟用户点击页面元素
  7. puppeteer_hover:悬停元素
  8. 能力:模拟鼠标悬停在页面元素上
  9. puppeteer_fill:填充表单
  10. 能力:向输入框填充指定内容
  11. puppeteer_select:选择下拉选项
  12. 能力:选择SELECT标签中的选项
  13. puppeteer_evaluate:执行JavaScript
  14. 能力:在浏览器控制台中执行自定义JavaScript代码

资源类型

  1. Console Logs (console://logs)
  2. 浏览器控制台输出文本
  3. Screenshots (screenshot://<name>)
  4. 捕获的PNG格式截图

常见问题解答

  1. 如何自定义浏览器启动参数?
  2. 可以通过环境变量PUPPETEER_LAUNCH_OPTIONS或工具调用参数launchOptions来设置
  3. Docker和NPX版本有什么区别?
  4. Docker版本使用无头Chromium,而NPX版本会打开浏览器窗口
  5. 如何允许危险启动参数?
  6. 设置allowDangerous参数为true或设置环境变量ALLOW_DANGEROUS为"true"

使用教程

使用依赖

  1. 确保已安装Node.js和npm
  2. 确保已安装Docker(如需使用Docker版本)

安装教程

Docker安装

docker build -t mcp/puppeteer -f src/puppeteer/Dockerfile .

NPX安装

无需安装,直接通过npx运行

配置示例

Docker配置

{
  "mcpServers": {
    "puppeteer": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer"]
    }
  }
}

NPX配置

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
    }
  }
}

调试方式

  1. 检查浏览器是否正常启动
  2. 查看控制台日志输出
  3. 验证截图功能是否正常工作
  4. 测试JavaScript执行功能

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。