浏览器自动化服务

一个基于Puppeteer的浏览器自动化服务,提供网页交互、截图和JavaScript执行功能,适用于网页测试和数据抓取等场景。

  • by modelcontextprotocol
  • JavaScript
  • 本地部署
  • 305 星标
  • 更新于
在 GitHub 查看 modelcontextprotocol/servers-archived

使用说明

操纵者

使用Puppeteer提供浏览器自动化功能的模型上下文协议服务器。此服务器使LLM能够在真实的浏览器环境中与网页交互、截图和执行JavaScript。

[!小心] 此服务器可以访问本地文件和本地/内部IP地址,因为它在您的计算机上运行浏览器。使用此MCP服务器时请小心,以确保不会暴露任何敏感数据。

组件

工具

  • puppeteer_navigation

    • 导航到浏览器中的任何URL
    • 输入:
      • url (字符串,必填):要导航到的URL
      • launchOptions (对象,可选):PuppeterJS启动选项。默认值为空。如果更改且不为空,浏览器将重新启动。例子: { headless: true, args: ['--user-data-dir="C:/Data"'] }
      • allowDangerous (boolean,可选):允许降低安全性的危险LaunchOptions。当为false时,危险参数如下 --no-sandbox, --disable-web-security 将抛出错误。默认值为false。
  • 木偶戏

    • 捕获整个页面或特定元素的屏幕截图
    • 输入:
      • name (string,必填):屏幕截图的名称
      • selector (string,可选):用于截图元素的CSS选择器
      • width (数字,可选,默认值:800):截图宽度
      • height (数字,可选,默认值:600):截图高度
      • encoded (boolean,可选):如果为true,则将屏幕截图捕获为base64编码的数据URI(文本),而不是二进制图像内容。默认值为false。
  • 木偶戏

    • 点击页面上的元素
    • 输入: selector (string):用于单击元素的CSS选择器
  • 木偶戏

    • 将元素悬停在页面上
    • 输入: selector (string):用于悬停元素的CSS选择器
  • 木偶戏

    • 填写输入字段
    • 输入:
      • selector (string):输入字段的CSS选择器
      • value (string):要填充的值
  • 木偶师_选择

    • 选择带有Select标签的元素
    • 输入:
      • selector (string):用于选择元素的CSS选择器
      • value (string):要选择的值
  • 木偶师_评价

    • 在浏览器控制台中执行JavaScript
    • 输入: script (string):要执行的JavaScript代码

资源

服务器提供对两种资源的访问:

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

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

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

主要特点

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

使用Puppeteer服务器的配置

使用Claude Desktop

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

码头工人

备注 docker实现将使用无头铬,而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代码

为了快速安装,请使用下面的一键安装按钮之一。..

对于手动安装,请将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open User Settings (JSON).

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

请注意 mcp 中不需要密钥 .vscode/mcp.json 文件。

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

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

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

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

启动选项

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

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

    {
      "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. 工具调用参数:通行证 launchOptions 和 allowDangerous 参数到 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文件。