M

MCP服务器

@rdvo/mcp-server
0 Stars 376 次浏览 rdvo 更新于 2026-08-23

一种模型上下文协议服务器,使大型语言模型(LLM)能够通过Puppeteer自动化网络浏览器,实现在真实的浏览器环境中进行导航、截图、表单填写和JavaScript执行等功能。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

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

服务介绍

Steel Puppeteer

一个使用 Puppeteer 和 Steel 提供浏览器自动化功能的 Model Context Protocol 服务器。此服务器使 LLM 能够与网页交互、截屏以及在真实的浏览器环境中执行 JavaScript。

组件

工具

  • puppeteer_navigate

    • 在浏览器中导航到任何 URL
    • 输入参数:
      • url (字符串,必填):要导航到的 URL
      • timeout (数字,可选,默认: 60000):导航超时时间(毫秒)
      • waitUntil (字符串,可选,默认: "domcontentloaded"):何时认为导航成功。选项:"load", "domcontentloaded", "networkidle0", "networkidle2"
  • puppeteer_screenshot

    • 捕获整个页面或特定元素的截图
    • 输入参数:
      • name (字符串,必填):截图名称
      • selector (字符串,可选):要截图的元素的 CSS 选择器
  • puppeteer_click

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

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

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

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

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

    • 从当前页面提取内容
    • 输入参数:selector (字符串,可选):从特定元素获取内容的 CSS 选择器。如果未提供,则返回整个页面的内容
  • puppeteer_scroll

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

资源

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

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

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

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

主要特性

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

配置

Claude Desktop 配置

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

{
  "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 Puppeteer 服务器可以通过以下环境变量进行配置:

  • STEEL_LOCAL(可选,默认值:"false"):设置为 "true" 以使用本地 Steel 实例而非云服务。
  • STEEL_API_KEY(仅当 STEEL_LOCAL 为 "false" 时需要):当使用云服务时,用于身份验证的 Steel API 密钥。
  • STEEL_URL(可选):如果您使用自定义部署,则为您的 Steel 实例的 URL。

服务器配置

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

STEEL_LOCAL=true

如果您使用的是 Steel 云服务,您的 .env 文件看起来应该像这样:

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

运行服务器

要启动 Steel Puppeteer 服务器:

  1. 安装依赖项:

    npm install
    
  2. 构建项目:

    npm run build
    
  3. 启动服务器:

    npm start
    
  4. 打开 Claude Desktop 并开始浏览!
    服务器将在指定端口(默认为 3000)上启动并监听。

故障排除

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

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

相关 MCP 服务