Puppeteer MCP

Puppeteer MCP

Puppeteer MCP 是一个模型上下文协议伺服器,允许 AI 代理和语言模型使用熟悉的 Puppeteer 库执行高级浏览器自动化和网页抓取任务。它提供对无头浏览器会话的安全、受控访问,使 LLM 能够浏览网站、提取结构化和非结构化数据、与动态内容互动,并执行类似真实浏览器的操作。

Author: modelcontextprotocol


查看協議

什么是 Puppeteer MCP?

Puppeteer MCP 是一个插件/伺服器,通过模型上下文协议提供浏览器自动化功能,使 LLM 和代理框架可以访问网页浏览、抓取和自动化功能。它利用 Puppeteer 的无头 Chrome 库,使模型和代理能够以编程方式访问网页、填写表单、点击按钮、捕捉屏幕截图和抓取数据——所有操作皆使用标准化的 MCP 端点。

如何配置 Puppeteer MCP

  1. 安装 Node.js(如果还未安装)。
  2. 使用 npx 安装 Puppeteer MCP 服务器或克隆该存储库:
    npx -y @modelcontextprotocol/server-puppeteer
    
    或作为依赖安装:
    npm install -g @modelcontextprotocol/server-puppeteer
    
  3. 启动服务器:
    npx -y @modelcontextprotocol/server-puppeteer
    
    可选择传递环境变量或命令行参数进行自定义配置(例如,访问控制、沙盒设置或无头选项)。
  4. 配置你的 MCP 客户端/代理应用程序(如 Claude Desktop 或其他 LLM 主机)以连接到 Puppeteer MCP 服务器,指定其命令和所需的参数。 示例(Claude Desktop JSON 配置):
    {
      "mcpServers": {
        "puppeteer": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
        }
      }
    }
    
  5. 可选择调整安全设置、网络访问或设置身份验证,如果远程公开 MCP 服务器。

如何使用 Puppeteer MCP

  1. 发现可用工具: 使用你的 MCP 客户端查询 tools/list 端点,查看可用的基于 Puppeteer 的操作(如 puppeteer.navigatepuppeteer.evaluatepuppeteer.screenshot 等)。
  2. 调用工具: 通过 MCP 协议调用所需的功能,提供适当的参数(例如,指定要导航的网址或要点击的元素选择器)。
  3. 自动化序列: 链接多个 Puppeteer 工具调用,以编写复杂的工作流程,如登录网站、浏览多个页面、抓取表格或图形以及下载文件。
  4. 获取和处理结果: 每次调用的输出将包括相关数据,如页面内容、DOM 快照、提取的值或二进制数据(例如,屏幕截图、PDF 等)。
  5. 与其他 MCP 工具集成: 将 Puppeteer MCP 与其他 MCP 服务器(如 文件系统、内存、数据库)结合使用,实现多步骤、多模式的自动化和数据处理。

主要特性

  • 无头浏览器自动化: 轻松控制 Chrome/Chromium 进行完整网页交互。
  • 动态内容访问: 支持 JavaScript 重、单页应用和交互式站点。
  • 数据提取: 使用精准的选择器抓取结构化/非结构化内容。
  • 操作模拟: 点击、输入、选择、滚动并像真实用户一样互动。
  • 资源捕获: 捕获屏幕截图、生成 PDF,并提取渲染的 HTML 或 DOM 片段。
  • 安全与沙盒化: 细粒度的权限防止不安全的操作,确保安全运行。
  • 轻松集成: 标准化的 MCP 接口可即刻与领先的 LLM 代理/应用程序配合使用。
  • 可编排的序列: 通过链式工具调用组织复杂的工作流程。

使用案例

  • 自动化网页抓取: 提取产品列表、新闻文章、公共数据集或社交媒体帖子。
  • 动态数据收集: 从 JavaScript 渲染的页面捕获对基础 HTTP 请求不可用的数据。
  • 表单填写和提交: 自动化登录、注册或多步骤数据输入过程。
  • 视觉回归与监控: 定期屏幕截图或生成高价值网页的 PDF,用于监控或记录保存。
  • 测试与质量保证: 在 LLM 工作流中运行自动化 UI 测试或回归检查。
  • 增强代理浏览: 允许 LLM 在 NLP 任务期间“驱动”浏览器以研究、总结或验证实时网页内容。

常见问题

1. 我需要先了解 Puppeteer 才能使用 Puppeteer MCP 服务器吗?
不需要。工具以易于使用的 MCP 端点形式提供,带有明确的描述,因此用户和 LLM 都不需要了解 Puppeteer API 的详细信息即可触发常见的浏览器操作。

2. 我怎麽限制服务器能访问哪些网站或执行哪些操作?
您可以通过环境变量或命令行参数配置允许的域、黑名单或白名单的操作。特别是在共享或生产环境中,总是要遵循最佳的访问控制实践。

3. 我可以使用 Puppeteer MCP 来绕过验证码和登录屏幕吗?
虽然 Puppeteer MCP 支持完整的浏览器操作(包括表单填写和导航),但它不包含原生的验证码解决方法。然而,您可以使用它来呈现验证码以供人类解决,或者如果需要,可以利用第三方插件/服务。

4. Puppeteer MCP 可以输出哪些文件类型?
您可以提取 HTML、纯文本、屏幕截图(PNG/JPEG)、PDF 和从 DOM 中抓取的任意数据。

5. 是否可以自动化依赖于以前结果的多步骤工作流程?
可以。您可以在代理或客户端逻辑中链接多个工具调用,按需从一个步骤传递输出到另一个步骤。