Стальной MCP-сервер
https://github.com/user-attachments/assets/25848033-40ea-4fa4-96f9-83b6153a0212
Сервер Model Context Protocol (MCP), который позволяет LLM, таким как Клод, перемещаться по вебу с помощью инструментов на основе Puppeteer и Steel. Основанный на фреймворке Web Voyager, он предоставляет инструменты для всех стандартных веб-действий: щелчков, прокрутки, набора текста и т. д., а также создания снимков экрана.
Попросите Клода помочь вам с такими задачами, как:
- «Найдите рецепт и сохраните список ингредиентов»
- «Отслеживать статус доставки посылки»
- «Найти и сравнить цены на определенный товар»
- «Заполните онлайн-заявку на работу»
🚀 Быстрый старт
Ниже приведено упрощенное руководство по запуску Steel Voyager внутри Claude Desktop. Вам нужно только настроить параметры среды для переключения между Steel Cloud и локальным/самостоятельным экземпляром.
Предпосылки
- Установлены последние версии Git и Node.js
- Установлен Claude Desktop
- (Необязательно) Образ Steel Docker, запущенный локально, если вы планируете размещать его самостоятельно
- (Необязательно) Если вы используете Steel Cloud, возьмите с собой ключ API. Получите его здесь .
A) Быстрый старт (Steel Cloud)
- Клонируйте и соберите проект:
- Настройте Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.json
), добавив запись сервера:- Замените «YOUR_STEEL_API_KEY_HERE» на ваш действительный ключ API Steel.
- Убедитесь, что для облачного режима параметр «STEEL_LOCAL» установлен на «false».
- Запустите Claude Desktop. Он автоматически запустит этот MCP-сервер в облачном режиме.
- (Необязательно) Вы можете просматривать и управлять активными сеансами Steel Browser на своей панели управления .
B) Быстрый старт (местная/самостоятельная сталь)
- Убедитесь, что ваша локальная или размещенная на собственном сервере служба Steel запущена (например, с использованием образа Steel Docker с открытым исходным кодом).
- Клонируйте и соберите проект (то же самое, что и выше, если это еще не сделано):
- Настройте Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.json
) для локального режима:- «STEEL_LOCAL» должно быть «true».
- При самостоятельном размещении на облачном сервере настройте «STEEL_BASE_URL» так, чтобы он указывал на локальный/самостоятельно размещенный URL-адрес Steel.
- Запустите Claude Desktop, который подключится к локально запущенному Steel и запустит Steel Voyager в локальном режиме.
- (Необязательно) Для локального просмотра сеансов вы можете посетить собственную панель управления ( localhost:5173 ) или журналы, относящиеся к вашей среде выполнения Steel.
Вот и все! После запуска Claude Desktop будет управлять сервером MCP за кулисами и позволит вам взаимодействовать с возможностями веб-автоматизации через Steel Voyager.
Для получения дополнительной информации о настройке или в случае возникновения проблем ознакомьтесь с документацией по настройке MCP: https://modelcontextprotocol.io/quickstart/user
Компоненты
Инструменты
- навигация
- Перейдите по любому URL-адресу в браузере.
- Входные данные:
url
(строка, обязательно): URL-адрес для перехода (например, « https://example.com »).
- поиск
- Выполните поиск в Google, перейдя по адресу « https://www.google.com/search?q=encodedQuery ».
- Входные данные:
query
(строка, обязательно): Текст для поиска в Google.
- нажмите
- Щелкните элементы на странице, используя пронумерованные метки.
- Входные данные:
label
(номер, обязательно): номер метки элемента, на который нужно нажать.
- тип
- Введите текст в поля ввода, используя пронумерованные метки.
- Входные данные:
label
(номер, обязательно): номер метки поля ввода.text
(строка, обязательно): Текст для ввода в поле.replaceText
(логическое значение, необязательно): если true, заменяет любой существующий текст в поле.
- прокрутить вниз
- Прокрутите страницу вниз
- Входные данные:
pixels
(целое число, необязательно): Количество пикселей для прокрутки вниз. Если не указано, прокручивает на одну полную страницу.
- прокрутить вверх
- Прокрутить страницу вверх
- Входные данные:
pixels
(целое число, необязательно): Количество пикселей для прокрутки вверх. Если не указано, прокручивает на одну полную страницу.
- возвращаться
- Перейти на предыдущую страницу в истории браузера
- Никаких входных данных не требуется.
- ждать
- Подождите до 10 секунд. Это полезно для страниц, которые загружаются медленно или которым требуется больше времени для отображения динамического контента.
- Входные данные:
seconds
(число, обязательно): Количество секунд ожидания (от 0 до 10).
- сохранить_неотмеченный_скриншот
- Сохраните текущую страницу без ограничивающих рамок или выделений и сохраните ее как ресурс.
- Входные данные:
resourceName
(строка, необязательно): Имя для сохранения снимка экрана (например, "before_login"). Если не указано, автоматически генерируется общее имя.
Ресурсы
- Скриншоты : каждый сохраненный снимок экрана доступен через URI ресурса MCP в форме: •
screenshot://RESOURCE_NAME
Сервер сохраняет эти скриншоты всякий раз, когда вы указываете инструмент "save_unmarked_screenshot" или когда действие завершается (для большинства инструментов) аннотированным скриншотом. Эти изображения можно получить с помощью стандартного запроса на получение ресурсов MCP.
(Примечание: хотя журналы консоли по-прежнему собираются для анализа и отладки, в этой реализации они не отображаются как извлекаемые ресурсы. Они появляются в журналах сервера, но не обслуживаются через URI ресурсов MCP.)
Основные характеристики
- Автоматизация браузера с помощью Puppeteer
- Интеграция Steel для управления сеансом браузера
- Визуальная идентификация элементов с помощью пронумерованных этикеток
- Возможности создания скриншотов
- Базовое веб-взаимодействие (навигация, клики, заполнение форм)
- Поддержка отложенной загрузки посредством прокрутки
- Поддержка локальных и удаленных экземпляров Steel
Понимание ограничивающих рамок
При взаимодействии со страницами Steel Puppeteer добавляет визуальные наложения, помогающие идентифицировать интерактивные элементы:
- Каждый интерактивный элемент (кнопки, ссылки, поля ввода) получает уникальную пронумерованную метку.
- Цветные рамки обозначают границы элементов.
- Метки отображаются над элементами или внутри них для удобства использования.
- Используйте эти номера при указании элементов для операций щелчка или ввода текста.
Конфигурация
Steel Voyager может работать в двух режимах: «Локальный» или «Облачный». Это поведение контролируется переменными окружения. Ниже приведен краткий обзор:
Переменная среды | По умолчанию | Описание |
---|---|---|
СТАЛЬ_ЛОКАЛЬНАЯ | "ЛОЖЬ" | Определяет, работает ли Steel Voyager в локальном (true) или облачном (false) режиме. |
STEEL_API_KEY | (никто) | Требуется только когда STEEL_LOCAL = "false". Используется для аутентификации запросов с конечной точкой Steel. |
STEEL_BASE_URL | " https://api.steel.dev " | Базовый URL для API Steel. Переопределите его, если вы размещаете сервер Steel самостоятельно (локально или в собственной облачной среде). Если STEEL_LOCAL = "true" и STEEL_BASE_URL не задан, по умолчанию используется " http://localhost:3000 ". |
GLOBAL_WAIT_SECONDS | (никто) | Необязательно. Количество секунд ожидания после каждого действия инструмента (например, чтобы разрешить медленную загрузку страниц). |
Локальный режим
- Установите STEEL_LOCAL="true".
- (Необязательно) Установите STEEL_BASE_URL для указания на сервер Steel, если вы размещаете его на пользовательском домене. В противном случае Steel Voyager по умолчанию будет использовать http://localhost:3000 .
- В этом режиме ключ API не требуется.
- Кукловод подключится через ws://0.0.0.0:3000
Пример:
экспорт STEEL_LOCAL="true"
export STEEL_BASE_URL=" http://localhost:3000 " # только при переопределении
Облачный режим
- Установите STEEL_LOCAL="false".
- Установите STEEL_API_KEY, чтобы Steel Voyager мог проходить аутентификацию в облачном сервисе Steel (или в вашем собственном Steel, если вы изменили STEEL_BASE_URL).
- Значение STEEL_BASE_URL по умолчанию — https://api.steel.dev ; переопределите это значение, если у вас есть размещенный на собственном сервере экземпляр Steel, работающий на другой конечной точке.
- Puppeteer подключится через wss://connect.steel.dev?sessionId=…&apiKey=…
Пример:
экспорт STEEL_LOCAL="false"
экспорт STEEL_API_KEY="ВАШ_КЛЮЧ_STEEL_API_ЗДЕСЬ"
Конфигурация рабочего стола Клода
Чтобы использовать Steel Voyager с Claude Desktop, добавьте в свой файл конфигурации (часто расположенный по адресу ~/Library/Application Support/Claude/claude_desktop_config.json) что-то вроде этого:
Настройте переменные среды в соответствии с желаемым режимом:
• При локальном/самостоятельном запуске оставьте "STEEL_LOCAL": "true"
и, при необходимости "STEEL_BASE_URL": "http://localhost:3000"
.
• При работе в облачном режиме удалите "STEEL_LOCAL": "true"
, добавьте "STEEL_LOCAL": "false"
и укажите "STEEL_API_KEY": "<YourKey>"
Это позволит Claude Desktop запустить Steel Voyager в правильном режиме.
Установка и запуск
Установка через Smithery
Чтобы автоматически установить Steel MCP Server для Claude Desktop через Smithery :
Местное развитие
- Клонировать репозиторий
- Установить зависимости:
- Создайте проект:
- Запустите сервер:
Пример использования 📹
Мы попросили Клода удивить нас его новыми возможностями, и он решил изучить последние разработки с помощью Sora, а затем создать интерактивную визуализацию, чтобы продемонстрировать данные, лежащие в основе модели, и как она работает 🤯
https://github.com/user-attachments/assets/8d4293ea-03fc-459f-ba6b-291f5b017ad7
*Извините за качество, github заставляет нас держать видео размером менее 10 МБ :/
Поиск неисправностей
Распространенные проблемы и решения:
- Проверьте свой ключ API Steel при использовании облачного сервиса и убедитесь, что ваш локальный экземпляр Steel запущен. Проверьте, что у вас есть надлежащее сетевое подключение к сервису.
- Если у вас возникли проблемы с тем, как страницы отображаются или размечаются и отправляются в claude, попробуйте добавить задержку в конфигурацию с помощью переменной окружения
GLOBAL_WAIT_SECONDS
. - Убедитесь, что страница полностью загрузилась, и проверьте настройки размера области просмотра. Убедитесь, что в вашей системе достаточно памяти для захвата скриншотов.
- Очистка сеансов на данный момент не является лучшим решением, поэтому вам может потребоваться вручную освобождать сеансы по мере их развертывания для выполнения задач.
- Правильные подсказки Клоду могут значительно улучшить его работу и избежать возможных глупых ошибок.
- Используйте средство просмотра сеансов, чтобы проанализировать, где ваша модель может быть остановлена.
- После ~15-20 действий браузера claude начинает тормозить, так как его контекстное окно заполняется, но с изображениями. Это не должно быть ужасно, но мы заметили некоторую задержку здесь, особенно с отставанием клиента Claude Desktop.
Внося вклад
Этот проект экспериментальный и находится в стадии активной разработки. Вклады приветствуются!
- Форк репозитория
- Создать ветку функций
- Отправить запрос на извлечение
Пожалуйста, включите:
- Четкое описание изменений
- Мотивация
- Обновления документации
Отказ от ответственности
⚠️ Этот проект является экспериментальным и основан на кодовой базе Web Voyager. Используйте в производственных средах на свой страх и риск.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Позволяет LLM, таким как Клод, перемещаться по вебу с помощью инструментов на основе Puppeteer и Steel. Основанный на фреймворке Web Voyager, он предоставляет инструменты для всех стандартных веб-действий: щелчков, прокрутки, набора текста и т. д., а также создания снимков экрана.
- 🚀 Быстрый старт
- Компоненты
- Основные характеристики
- Понимание ограничивающих рамок
- Конфигурация
- Установка и запуск
- Пример использования 📹
- Поиск неисправностей
- Внося вклад
- Отказ от ответственности
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityEnables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environmentLast updated -10327199JavaScriptMIT License
- AsecurityAlicenseAqualityThis server provides cloud browser automation capabilities using Browserbase, Puppeteer, and Stagehand. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a cloud browser environment.Last updated -81,4832,216TypeScriptApache 2.0
- AsecurityFlicenseAqualityEnables LLMs to perform web browsing tasks, take screenshots, and execute JavaScript using Puppeteer for browser automation.Last updated -415,5021JavaScript
- AsecurityFlicenseAqualityEnables browser automation for LLMs on Linux display servers, supporting web interaction, screenshots, and JavaScript execution in a real browser.Last updated -754JavaScript