Puppeteer MCP Server (Python Implementation)

Puppeteer MCP Server (Python Implementation)

镜子 (jìng zi)

MCP-Mirror

浏览器自动化
访问服务器

README

Puppeteer MCP 服务器 (Python 实现)

一个模型上下文协议服务器,它使用 Playwright (Python 中与 Puppeteer 等效的库) 提供浏览器自动化功能。该服务器使 LLM 能够与网页交互、截取屏幕截图以及在真实的浏览器环境中执行 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": "text to fill",
    "timeout": 30000  // 可选,默认为 30000 毫秒
  }
}

puppeteer_evaluate

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

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

错误处理

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

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

日志记录

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

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

注意事项

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

贡献

欢迎贡献!在提交 pull request 之前,请阅读存储库的贡献指南。

许可证

此项目根据 Apache 2.0 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Playwright MCP Server

Playwright MCP Server

提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。

精选
本地
TypeScript
@kazuph/mcp-fetch

@kazuph/mcp-fetch

用于获取网页内容和处理图像的模型上下文协议服务器。这使得 Claude Desktop(或任何 MCP 客户端)能够适当地获取网页内容和处理图像。

精选
本地
JavaScript
DuckDuckGo MCP Server

DuckDuckGo MCP Server

一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。

精选
Python
YouTube Transcript MCP Server

YouTube Transcript MCP Server

这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。

精选
Python
serper-search-scrape-mcp-server

serper-search-scrape-mcp-server

这个 Serper MCP 服务器支持搜索和网页抓取,并且支持 Serper API 引入的所有最新参数,例如位置。

精选
TypeScript
The Verge News MCP Server

The Verge News MCP Server

提供从The Verge的RSS feed获取和搜索新闻的工具,允许用户获取今日新闻、检索过去一周的随机文章,以及在最近的Verge内容中搜索特定关键词。

精选
TypeScript
Tavily MCP Server

Tavily MCP Server

使用 Tavily 的搜索 API 提供 AI 驱动的网络搜索功能,使 LLM 能够执行复杂的网络搜索、获得问题的直接答案以及搜索最近的新闻文章。

精选
Python
mcp-pinterest

mcp-pinterest

用于图像搜索和信息检索的 Pinterest 模型上下文协议 (MCP) 服务器

精选
TypeScript
Crawlab MCP Server

Crawlab MCP Server

官方
Python