Puppeteer MCP Server (Python 实现)

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,它使用 Playwright 库为大型语言模型 (LLM) 提供强大的浏览器自动化能力。借助此服务器,LLM 可以像人类用户一样与网页进行交互,例如:

  • 访问网页: 让 LLM 浏览指定网址,获取网页内容。
  • 截取屏幕: 捕获整个网页或特定元素的截图,为 LLM 提供视觉信息。
  • 填写表单和点击: 模拟用户在网页上的操作,例如点击按钮、填写输入框等。
  • 执行 JavaScript: 允许 LLM 在浏览器环境中执行 JavaScript 代码,实现更高级的网页交互功能。

主要功能点

  • 网页导航: 控制浏览器访问任意 URL。
  • 屏幕截图: 截取网页全屏或指定元素的截图。
  • 元素点击: 模拟鼠标点击网页元素。
  • 表单填写: 自动填写网页输入框。
  • JavaScript 执行: 在浏览器中执行 JavaScript 代码并获取结果。
  • 详细的错误处理: 提供清晰的错误信息,方便调试和问题排查。
  • 全面的日志记录: 记录服务器运行状态和操作细节,便于监控和审计。

安装步骤

  1. 安装 Python 3.8+ 和 pip: 确保你的系统已安装 Python 3.8 或更高版本,并配置好 pip 包管理器。
  2. 安装依赖包: 在仓库根目录下打开终端,运行以下命令安装项目依赖:
    pip install -r requirements.txt
  3. 安装 Playwright 浏览器: 运行以下命令安装 Playwright 需要的浏览器驱动:
    playwright install

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),你需要提供服务器的启动命令和参数。以下是一个 JSON 格式的配置示例,适用于 Claude Desktop 的 'mcpServers' 配置:

{
  "mcpServers": {
    "puppeteer": {  // 服务器名称,可以自定义
      "command": "python",  // 启动服务器的命令,这里使用 python 解释器
      "args": ["path/to/puppeteer_server.py"] // 启动脚本的路径,请替换为实际的 puppeteer_server.py 文件路径
    }
  }
}

注意:

  • 请将 '"path/to/puppeteer_server.py"' 替换为 'puppeteer_server.py' 文件在您本地文件系统中的 绝对路径相对路径(相对于 Claude Desktop 进程的工作目录)。
  • 'puppeteer' 是服务器的名称,您可以自定义,在 Claude 中引用时保持一致即可。

基本使用方法

  1. 启动服务器: 在仓库根目录下打开终端,运行以下命令启动 Puppeteer MCP 服务器:

    python puppeteer_server.py

    服务器成功启动后,将监听来自 MCP 客户端的请求。

  2. 配置 MCP 客户端: 根据 MCP 客户端 (例如 Claude Desktop) 的文档,配置连接到此 Puppeteer MCP 服务器。通常需要提供服务器名称以及启动命令和参数。

  3. 在 MCP 客户端中使用工具: 一旦客户端成功连接到服务器,你就可以在客户端中使用 'puppeteer_navigate', 'puppeteer_screenshot', 'puppeteer_click', 'puppeteer_fill', 'puppeteer_evaluate' 等工具,让 LLM 通过浏览器与网页进行交互。工具的具体使用方法和参数可以参考仓库 README.md 文件中 "Available Tools" 部分的说明。

总结: 此 Puppeteer MCP Server 允许 LLM 通过标准化的 MCP 协议,利用浏览器自动化能力与网页进行交互,扩展了 LLM 的应用场景,使其能够处理需要网页操作的任务。

信息

分类

网页与API