MCP服务器
一种模型上下文协议服务器,使大型语言模型(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(字符串,必填):要导航到的 URLtimeout(数字,可选,默认: 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):最大滚动次数
资源
服务器提供了两种类型的资源访问:
-
控制台日志 (
console://logs)- 以文本格式输出的浏览器控制台信息
- 包含来自浏览器的所有控制台消息
-
截图 (
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 服务器:
-
安装依赖项:
npm install -
构建项目:
npm run build -
启动服务器:
npm start -
打开 Claude Desktop 并开始浏览!
服务器将在指定端口(默认为 3000)上启动并监听。
故障排除
- 如果遇到 Puppeteer 相关问题,请确保您的系统上安装了必要的依赖项。更多信息请参阅 Puppeteer 故障排除指南。
- 如果使用 Steel 云服务,请确保您的 Steel API 密钥有效且具有必要的权限。
- 如果使用本地 Steel 实例,请确保它正在运行,并且可以在指定的 URL(如果是自定义的话)或默认本地地址访问。
有关更详细的配置选项和高级用法,请参考 Steel 文档和 Puppeteer API 参考文档。