mcpField
P
Puppeteer MCP Server (Python Implementation)

Puppeteer MCP Server (Python Implementation)

本地服务
github.com/twolven浏览器自动化1911 周前更新

关于 Puppeteer MCP Server (Python Implementation)

Puppeteer MCP Server(Python 实现)基于 Playwright 提供浏览器自动化能力,使 LLM 能够访问网页、截图、填写表单并在真实浏览器中执行 JavaScript。该实现以 Python 编写,强调错误处理与日志记录。

主要功能

  1. 01页面导航与超时配置
  2. 02整页或元素截图
  3. 03点击与填写表单
  4. 04在浏览器中执行 JavaScript
  5. 05捕获控制台日志

适用场景

  1. 01让 LLM 打开网页并读取页面内容
  2. 02自动截取整页或指定元素的截图
  3. 03自动填写并提交网页表单

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露导航、截图、点击、填写和脚本执行等浏览器操作工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Puppeteer MCP 服务(Python 实现)

一个使用 Playwright(相当于 Python 版 Puppeteer)提供浏览器自动化功能的模型上下文协议服务。此服务可让大模型与网页交互、截取屏幕截图,并在真实浏览器环境中执行 JavaScript。

概述

此 Python 实现提供了 TypeScript 版本的稳定替代方案,在提供相同功能的同时,改进了错误处理和日志记录。它使用 Playwright(相当于 Python 版 Puppeteer),提供强大的浏览器自动化功能。

主要功能

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

前提条件

  • Python 3.8+
  • pip(Python 软件包安装程序)

安装

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

用法

启动服务

直接运行服务:

python puppeteer_server.py
Claude Desktop 配置

将以下内容添加到 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 编码保存在内存中

贡献

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

作者

Todd Wolven - 首席 AI 软件开发人员和开源 GenAI 工程师

许可证

本项目采用 Apache 2.0 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。