Skip to main content
Glama
rodneyrdx

safari-ios-webinspector-mcp

by rodneyrdx

Safari iOS Web Inspector MCP

MCP-сервер, работающий только на macOS и обеспечивающий инспектирование и автоматизацию сеансов iPhone Safari и iPhone Chrome через Safari Web Inspector.

Статус

Этот репозиторий содержит первую работающую реализацию:

  • проверки окружения для macOS, Xcode, idevice_id и ios_webkit_debug_proxy

  • обогащение данных доверенных устройств физическими UDID и версиями iOS из libimobiledevice

  • управление жизненным циклом моста iOS WebKit

  • обнаружение устройств и страниц через ios_webkit_debug_proxy

  • управляемые сеансы iPhone Safari через Apple safaridriver

  • управляемые сеансы iPhone Safari через низкоуровневый домен WebKit Automation

  • выполнение кода в рантайме через протокол, сбор сообщений консоли и буферизация сетевых событий

  • снятие снимков DOM и автоматизация на уровне страницы с помощью JavaScript, внедряемого в рантайме

  • резервный вариант на базе интерфейса Safari/Web Inspector для обнаружения падений, попыток перезагрузки и создания скриншотов

  • экспорт отладочного пакета

Текущие ограничения:

  • Мост является протокол-ориентированным и прагматичным. Он нормализует несколько форм событий WebKit, но различия протоколов iOS/WebKit всё ещё могут сокращать доступные возможности для каждой страницы.

  • На текущем подключённом реальном iPhone исправные страницы Safari понижаются до transportMode: broker_only, поэтому автоматизация рантайма и страниц намеренно отключается, и сервер переходит к сценариям сбора доказательств и восстановления.

  • Новый управляемый путь через safaridriver даёт безопасную автоматизацию только браузера в новом окне автоматизации Safari, но пока не присоединяется к существующей активной вкладке Safari.

  • Новый путь launch_automation_page также даёт безопасную автоматизацию только браузера в новом изолированном контексте Automation, но, как и Safari WebDriver, не берёт под управление существующую обычную вкладку Safari.

  • Потоковая передача событий консоли и сети по-прежнему недоступна в управляемом бэкенде safaridriver.

  • Потоковая передача событий консоли и сети также недоступна в управляемом бэкенде на основе низкоуровневого Automation.

Границы безопасности:

  • этот проект по замыслу работает только с браузером

  • ни сброс, ни восстановление, ни изменение сопряжения, ни прошивка, ни общая автоматизация системы iPhone не входят в область действия проекта

Related MCP server: MCP Safari Server

Установка

npm install
npm run build

Запуск локально:

npm run dev

Использование в качестве MCP-сервера после сборки:

[mcp_servers.safari-ios-webinspector]
command = "node"
args = ["/absolute/path/to/dist/src/index.js"]

Документация

Обкатка

Запустите обкатку на реальном устройстве с подключённым iPhone:

npm run shakeout

Захватите сырую трассировку брокера для исправной страницы:

npm run trace:broker

Проверьте напрямую низкоуровневый шим iPhone Automation:

npm run probe:automation -- --udid <DEVICE_UDID>

Происхождение и конфиденциальность

Этот публичный репозиторий содержит независимо созданную реализацию, построенную с опорой на документированное поведение WebKit и публичные интерфейсы объявленных зависимостей. Исследовательские заметки содержат ссылки на вышестоящие проекты и документацию, которые легли в основу исследования протокола.

Идентификаторы устройств, локальные пути, захваченные страницы, отладочные пакеты и материалы, специфичные для заказчика или приложения, не включены. В тестах используются синтетические данные устройств и URL-адреса example.com.

Лицензия

MIT. См. LICENSE. Сторонние пакеты остаются под своими лицензиями, как указано в package-lock.json и в их дистрибутивах.

Related MCP Connectors

Related MCP Servers