浏览器自动化服务

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

  • by rdvo
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 rdvo/mcp-server

使用说明

钢制木偶

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

组件

工具

  • puppeteer_navigation

    • 导航到浏览器中的任何URL
    • 输入:
      • url (字符串,必填):要导航到的URL
      • timeout (数字,可选,默认值:60000):导航超时(毫秒)
      • waitUntil (字符串,可选,默认:“domcontentloaded”):何时考虑导航成功。选项:“加载”、“加载域内容”、“networkidle0”、“networkidle2”
  • 木偶戏

    • 捕获整个页面或特定元素的屏幕截图
    • 输入:
      • name (string,必填):屏幕截图的名称
      • selector (string,可选):用于截图元素的CSS选择器
  • 木偶戏

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

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

    • 选择带有Select标签的元素
    • 输入:
      • selector (string,必填):用于选择元素的CSS选择器
      • value (字符串,必填):要选择的值
  • 木偶戏

    • 将元素悬停在页面上
    • 输入: selector (string,必填):用于悬停元素的CSS选择器
  • 木偶师_评价

    • 在浏览器控制台中执行JavaScript
    • 输入: script (string,必填):要执行的JavaScript代码
  • 木偶师_get_content

    • 从当前页面提取内容
    • 输入: selector (string,可选):CSS选择器,用于从特定元素中获取内容。如果未提供,则返回整页内容
  • 木偶戏

    • 滚动页面以触发延迟加载
    • 输入:
      • scrollDelay (数字,可选,默认值:100):滚动之间的延迟(毫秒)
      • maxScrolls (数字,可选,默认值:50):最大滚动次数

资源

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

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

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

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

主要特点

  • 使用Puppeteer实现浏览器自动化
  • 用于浏览器会话管理的钢铁集成
  • 控制台日志监控和捕获
  • 屏幕截图功能
  • JavaScript执行
  • 基本的网络交互(导航、点击、表单填写)
  • 使用令牌限制处理进行内容提取
  • 通过滚动实现延迟加载支持
  • 本地和远程Steel实例支持

配置

Claude桌面配置

要将Steel Puppeter服务器与Claude Desktop一起使用,请将以下配置添加到您的Claude Desktop配置文件中(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上:

{
  "mcpServers": {
    "steel-puppeteer": {
      "command": "node",
      "args": ["path/to/steel-puppeteer/dist/index.js"],
      "env": {
        "STEEL_LOCAL": "true"
      }
    }
  }
}

替换 "path/to/steel-puppeteer/dist/index.js" 以及系统上编译的JavaScript文件的实际路径。

环境变量

Steel Puppeter服务器可以使用以下环境变量进行配置:

  • STEEL_LOCAL (可选,默认:“false”):设置为“true”以使用本地Steel实例而不是云服务。
  • STEEL_API_KEY (仅在以下情况下需要 STEEL_LOCAL 是“false”):您的Steel API密钥,用于在使用云服务时进行身份验证。
  • STEEL_URL (可选):如果使用自定义部署,请提供Steel实例的URL。

服务器配置

如果你直接运行Steel Puppeter服务器(而不是通过Claude Desktop),你可以在shell中设置这些环境变量或创建一个 .env 项目根目录中的文件。这里有一个例子 .env 本地使用的文件:

STEEL_LOCAL=true

如果您正在使用Steel云服务 .env 文件看起来像这样:

STEEL_API_KEY=your-steel-api-key
STEEL_LOCAL=false

运行服务器

要启动Steel Puppeter服务器,请执行以下操作:

  1. 安装依赖项:

    npm install
    
  2. 构建项目:

    npm run build
    
  3. 启动服务器:

    npm start
    
  4. 打开克劳德桌面并浏览! 服务器将启动并侦听指定端口(默认值:3000)。

故障排除

  • 如果您遇到Puppeteer问题,请确保您的系统上安装了必要的依赖项。请参阅 Puppeter故障排除指南 了解更多信息。
  • 如果使用Steel云服务,请确保Steel API密钥有效并具有必要的权限。
  • 如果使用本地Steel实例,请确保它正在运行,并且可以在指定的URL(如果是自定义的)或默认的本地地址访问。

有关更详细的配置选项和高级用法,请参阅Steel文档和Puppeteer API参考资料。