返回市场
Puppeteer

Puppeteer

作者:modelcontextprotocol182 星标更新:2025-05-29

项目介绍

Puppeteer

一个使用Puppeteer提供浏览器自动化功能的Model Context Protocol服务器。此服务器使LLMs能够与网页交互、截取屏幕快照并在真实的浏览器环境中执行JavaScript。

[!警告] 由于该服务器在您的机器上运行浏览器,它可以访问本地文件和本地/内部IP地址。使用此MCP服务器时,请谨慎操作以确保不会暴露任何敏感数据。

组件

工具

  • puppeteer_navigate

    • 导航到浏览器中的任意URL
    • 输入参数:
      • url(字符串,必需):要导航到的URL
      • launchOptions(对象,可选):PuppeteerJS启动选项。默认值为null。如果更改且不为null,则会重新启动浏览器。示例:{ headless: true, args: ['--user-data-dir="C:/Data"'] }
      • allowDangerous(布尔值,可选):允许降低安全性的危险启动选项。当设置为false时,危险参数如--no-sandbox--disable-web-security将抛出错误。默认值为false。
  • puppeteer_screenshot

    • 捕获整个页面或特定元素的屏幕截图
    • 输入参数:
      • name(字符串,必需):屏幕截图的名称
      • selector(字符串,可选):用于屏幕截图的CSS选择器
      • width(数字,可选,默认值:800):屏幕截图宽度
      • height(数字,可选,默认值:600):屏幕截图高度
      • encoded(布尔值,可选):如果设置为true,则以base64编码的数据URI形式(作为文本)捕获屏幕截图,而不是二进制图像内容。默认值为false。
  • puppeteer_click

    • 点击页面上的元素
    • 输入参数:selector(字符串):要点击的元素的CSS选择器
  • puppeteer_hover

    • 将鼠标悬停在页面上的元素上
    • 输入参数:selector(字符串):要悬停的元素的CSS选择器
  • puppeteer_fill

    • 填写输入字段
    • 输入参数:
      • selector(字符串):输入字段的CSS选择器
      • value(字符串):要填写的值
  • puppeteer_select

    • 选择带有SELECT标签的元素
    • 输入参数:
      • selector(字符串):要选择的元素的CSS选择器
      • value(字符串):要选择的值
  • puppeteer_evaluate

    • 在浏览器控制台中执行JavaScript
    • 输入参数:script(字符串):要执行的JavaScript代码

资源

该服务器提供了两种类型的资源访问:

  1. 控制台日志 (console://logs)

    • 浏览器控制台输出的文本格式
    • 包括来自浏览器的所有控制台消息
  2. 屏幕截图 (screenshot://<name>)

    • 捕获的屏幕截图的PNG图像
    • 可通过捕获时指定的屏幕截图名称访问

主要特性

  • 浏览器自动化
  • 控制台日志监控
  • 屏幕截图能力
  • JavaScript执行
  • 基本的网页交互(导航、点击、表单填写)
  • 自定义Puppeteer启动选项

配置以使用Puppeteer服务器

使用Claude Desktop

这是使用Puppeter服务器的Claude Desktop配置:

Docker

注意 Docker实现将使用无头Chromium,而NPX版本将打开浏览器窗口。

{
  "mcpServers": {
    "puppeteer": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--init",
        "-e",
        "DOCKER_CONTAINER=true",
        "mcp/puppeteer"
      ]
    }
  }
}

NPX

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
    }
  }
}

使用VS Code

快速安装,请使用以下一键安装按钮之一...

在VS Code中使用NPX安装 在VS Code Insiders中使用NPX安装

在VS Code中使用Docker安装 在VS Code Insiders中使用Docker安装

手动安装,请将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以通过按Ctrl + Shift + P并键入Preferences: Open User Settings (JSON)来完成此操作。

可选地,您可以将其添加到工作区中的名为.vscode/mcp.json的文件中。这将允许您与其他人员共享配置。

注意,在.vscode/mcp.json文件中不需要mcp键。

对于NPX安装(打开浏览器窗口):

{
  "mcp": {
    "servers": {
      "puppeteer": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
      }
    }
  }
}

对于Docker安装(使用无头Chromium):

{
  "mcp": {
    "servers": {
      "puppeteer": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "--init",
          "-e",
          "DOCKER_CONTAINER=true",
          "mcp/puppeteer"
        ]
      }
    }
  }
}

启动选项

您可以通过两种方式自定义Puppeteer的浏览器行为:

  1. 环境变量:在MCP配置的env参数中设置PUPPETEER_LAUNCH_OPTIONS为JSON编码的字符串:

    {
      "mcpServers": {
        "mcp-puppeteer": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-puppeteer"],
          "env": {
            "PUPPETEER_LAUNCH_OPTIONS": "{ \"headless\": false, \"executablePath\": \"C:/Program Files/Google/Chrome/Application/chrome.exe\", \"args\": [] }",
            "ALLOW_DANGEROUS": "true"
          }
        }
      }
    }
    
  2. 工具调用参数:将launchOptionsallowDangerous参数传递给puppeteer_navigate工具:

    {
      "url": "https://example.com",
      "launchOptions": {
        "headless": false,
        "defaultViewport": { "width": 1280, "height": 720 }
      }
    }
    

构建

Docker构建:

docker build -t mcp/puppeteer -f src/puppeteer/Dockerfile .

许可证

此MCP服务器根据MIT许可证发布。这意味着您可以自由地使用、修改和分发软件,但需遵守MIT许可证的条款和条件。更多详情,请参阅项目存储库中的LICENSE文件。