返回市场
MCP服务器- Puppeteer-Py

MCP服务器- Puppeteer-Py

作者:twolven17 星标更新:2024-12-21

项目介绍

Puppeteer MCP Server(Python实现)

这是一个使用Playwright(Python中与Puppeteer等效的工具)提供浏览器自动化功能的Model Context Protocol服务器。该服务器使LLMs能够与网页进行交互、抓取屏幕截图并执行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桌面配置

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

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

可用工具

puppeteer_navigate

导航到浏览器中的任何URL。

{
  "name": "puppeteer_navigate",
  "arguments": {
    "url": "https://example.com",
    "timeout": 60000  // 可选,默认为60000毫秒
  }
}

puppeteer_screenshot

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

{
  "name": "puppeteer_screenshot",
  "arguments": {
    "name": "my_screenshot",
    "selector": "#specific-element",  // 可选
    "width": 1280,  // 可选,默认为1280
    "height": 720,  // 可选,默认为720
    "timeout": 30000  // 可选,默认为30000毫秒
  }
}

puppeteer_click

点击页面上的元素。

{
  "name": "puppeteer_click",
  "arguments": {
    "selector": ".button-class",
    "timeout": 30000  // 可选,默认为30000毫秒
  }
}

puppeteer_fill

填写输入字段。

{
  "name": "puppeteer_fill",
  "arguments": {
    "selector": "#input-id",
    "value": "要填写的文本",
    "timeout": 30000  // 可选,默认为30000毫秒
  }
}

puppeteer_evaluate

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

{
  "name": "puppeteer_evaluate",
  "arguments": {
    "script": "document.title",
    "timeout": 30000  // 可选,默认为30000毫秒
  }
}

错误处理

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

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

日志记录

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

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

注意事项

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

贡献

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

许可证

本项目根据Apache 2.0许可证发布 - 查看LICENSE文件获取详情。