返回市场
MCP服务器

MCP服务器

作者:rdvo2 星标更新:2024-12-05

项目介绍

钢铁木偶师

这是一个使用Puppeteer和Steel提供浏览器自动化能力的Model Context Protocol服务器。该服务器使LLMs能够与网页进行交互,抓取屏幕截图,并在真实的浏览器环境中执行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配置

要在Claude Desktop中使用Steel Puppeteer服务器,请在您的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参考。 </中文翻译>