https://github.com/user-attachments/assets/25848033-40ea-4fa4-96f9-83b6153a0212
这是一个模型上下文协议(MCP)服务器,它使像 Claude 这样的大型语言模型能够通过基于 Puppeteer 的工具和 Steel 在网络上导航。基于 Web Voyager 框架,它提供了用于所有标准网页操作(如点击、滚动、输入等)以及截图的工具。
请 Claude 帮助你完成以下任务:
以下是运行 Steel Voyager 内部 Claude Desktop 的简化指南。您只需调整环境选项即可在 Steel Cloud 和本地/自托管实例之间切换。
克隆并构建项目:
git clone https://github.com/steel-dev/steel-mcp-server.git
cd steel-mcp-server
npm install
npm run build

配置 Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json
),添加服务器条目:
{
"mcpServers": {
"steel-puppeteer": {
"command": "node",
"args": ["path/to/steel-voyager/dist/index.js"],
"env": {
"STEEL_LOCAL": "false",
"STEEL_API_KEY": "YOUR_STEEL_API_KEY_HERE",
"GLOBAL_WAIT_SECONDS": "1"
}
}
}
}

启动 Claude Desktop。它将自动以云模式启动此 MCP 服务器。
(可选)您可以在 仪表板 中查看或管理活跃的 Steel 浏览器会话。
确保你的本地或自托管的Steel服务正在运行(例如,使用开源的Steel Docker镜像)。
克隆并构建项目(如果尚未完成,请按照上述步骤操作):
git clone https://github.com/steel-dev/steel-mcp-server.git
cd steel-mcp-server
npm install
npm run build

配置Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json
) 以支持本地模式:
{
"mcpServers": {
"steel-puppeteer": {
"command": "node",
"args": ["path/to/steel-voyager/dist/index.js"],
"env": {
"STEEL_LOCAL": "true",
"STEEL_BASE_URL": "http://localhost:3000",
"GLOBAL_WAIT_SECONDS": "1"
}
}
}
}

启动Claude Desktop,它将连接到你本地运行的Steel,并在本地模式下启动Steel Voyager。
(可选)要本地查看会话,你可以访问自托管的仪表盘(localhost:5173) 或者查看特定于你的Steel运行时环境的日志。
就是这样!一旦Claude Desktop启动,它将在后台协调MCP服务器,并让你通过Steel Voyager与网页自动化功能进行交互。
有关更多设置信息或遇到问题,请参阅MCP设置文档:https://modelcontextprotocol.io/quickstart/user
navigate
url
(字符串,必填):要导航到的 URL(例如 "https://example.com")。search
query
(字符串,必填):要在 Google 上搜索的文本。click
label
(数字,必填):要点击的元素的标签号。type
label
(数字,必填):输入字段的标签号。text
(字符串,必填):要在字段中键入的文本。replaceText
(布尔值,可选):如果为 true,则替换字段中的任何现有文本。scroll_down
pixels
(整数,可选):向下滚动的像素数。如果未指定,则滚动一整页。scroll_up
pixels
(整数,可选):向上滚动的像素数。如果未指定,则滚动一整页。go_back
wait
seconds
(数字,必填):等待的秒数(0 到 10)。save_unmarked_screenshot
resourceName
(字符串,可选):用于存储截图的名称(例如 "before_login")。如果省略,则自动生成通用名称。截图:
每个保存的截图都可以通过 MCP 资源 URI 访问,格式如下:
• screenshot://RESOURCE_NAME
当您指定 "save_unmarked_screenshot" 工具或某个操作(对于大多数工具)以带有注释的截图结束时,服务器会存储这些截图。这些图像可以通过标准的 MCP 资源检索请求获取。
(注意:虽然控制台日志仍会被收集用于分析和调试,但在此实现中它们不作为可检索资源公开。它们出现在服务器的日志中,但不会通过 MCP 资源 URI 提供。)
在与页面交互时,Steel Puppeteer 会添加视觉叠加层以帮助识别可交互元素:
Steel Voyager 可以在两种模式下运行:"本地" 或 "云端"。这种行为由环境变量控制。以下是一个简要概述:
环境变量 | 默认值 | 描述 |
---|---|---|
STEEL_LOCAL | "false" | 确定 Steel Voyager 是否在本地(true)或云端(false)模式下运行。 |
STEEL_API_KEY | (无) | 仅当 STEEL_LOCAL = "false" 时需要。用于与 Steel 终端的身份验证请求。 |
STEEL_BASE_URL | "https://api.steel.dev" | Steel API 的基础 URL。如果您在自己的服务器上托管了 Steel 服务(无论是本地还是您自己的云环境中),请覆盖此设置。如果 STEEL_LOCAL = "true" 且 STEEL_BASE_URL 未设置,则默认为 "http://localhost:3000"。 |
GLOBAL_WAIT_SECONDS | (无) | 可选。每个工具动作后等待的秒数(例如,允许加载缓慢的页面)。 |
示例:
export STEEL_LOCAL="true"
export STEEL_BASE_URL="http://localhost:3000" # 仅当需要覆盖时
示例:
export STEEL_LOCAL="false"
export STEEL_API_KEY="YOUR_STEEL_API_KEY_HERE"
要使用 Steel Voyager 与 Claude Desktop,请在您的配置文件中添加类似以下内容(通常位于
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"steel-puppeteer": {
"command": "node",
"args": ["path/to/steel-puppeteer/dist/index.js"],
"env": {
"STEEL_LOCAL": "false",
"STEEL_API_KEY": "your_api_key_here"
}
}
}
}

根据您所需的模式调整环境变量:
• 如果是本地/自托管运行,保持 "STEEL_LOCAL": "true"
并可选地设置 "STEEL_BASE_URL": "http://localhost:3000"
.
• 如果是在云模式下运行,移除 "STEEL_LOCAL": "true"
,添加 "STEEL_LOCAL": "false"
,并提供 "STEEL_API_KEY": "<YourKey>"
这将允许 Claude Desktop 以正确的模式启动 Steel Voyager。
要通过 Smithery 自动安装适用于 Claude Desktop 的 Steel MCP Server:
npx -y @smithery/cli install @steel-dev/steel-mcp-server --client claude
npm install
npm run build
npm start
我们要求 Claude 展示其新能力,它决定研究 sora 的最新进展,然后创建一个交互式可视化来展示模型背后的数据及其工作原理 🤯
https://github.com/user-attachments/assets/8d4293ea-03fc-459f-ba6b-291f5b017ad7
*抱歉视频质量不佳,GitHub 要求我们将视频大小控制在 10MB 以内 :/
常见问题及解决方案:
使用云服务时验证您的 Steel API 密钥,并确保您的本地 Steel 实例正在运行。检查您是否有适当的网络连接到该服务。
如果您遇到页面渲染或标记发送给 Claude 的问题,请尝试通过 GLOBAL_WAIT_SECONDS
环境变量在配置中添加延迟。
确保页面已完全加载,并检查您的视口大小设置。确保您的系统有足够的可用内存来捕获屏幕截图。
当前会话清理不是最佳状态,因此您可能需要手动释放会话,以便它们可以执行任务。
正确提示 Claude 可以大大改善性能并避免它可能产生的愚蠢错误。
利用会话查看器分析您的模型可能在哪一步停止。
在大约 15-20 个浏览器操作后,Claude 开始变慢,因为它的上下文窗口被图像填满。虽然不会太糟糕,但我们注意到这里有一些延迟,特别是 Claude Desktop 客户端滞后。
此项目处于实验阶段且正在积极开发中。欢迎贡献!
请包含:
⚠️ 该项目基于 Web Voyager 代码库进行实验。在生产环境中使用风险自负。