Safari MCP
официальныйСервер Safari MCP предоставляет вашему агенту возможность видеть, как ваш код на самом деле отображается в браузере, подключая его к окну браузера Safari.
Что можно делать с Safari MCP?
- Просмотр структуры живой страницы — Попросите ассистента получить текущий DOM или текстовое содержимое вкладки Safari, чтобы понять, что отображается.
- Отладка консоли и сетевых проблем — Попросите ассистента получить буферизированные журналы консоли или сводку сетевых запросов, чтобы диагностировать ошибки.
- Автоматизация взаимодействий с браузером — Поручите ассистенту кликать, вводить текст или прокручивать страницу, чтобы тестировать рабочие процессы или воспроизводить ошибки.
- Сбор визуальных доказательств — Запросите PNG-скриншот текущей страницы с помощью
screenshot, чтобы увидеть, что именно видит пользователь. - Тестирование адаптивных макетов — Попросите ассистента эмулировать CSS-медиатип, например "print", или изменить размер окна просмотра, чтобы проверить дизайн на разных контрольных точках.
- Выполнение пользовательского JavaScript — Поручите ассистенту запустить произвольный JS на странице, чтобы проверить состояние или вычислить метрики производительности.
Документация
Обновление: В Safari 27 и Safari Technology Preview 247 мы представляем сервер Safari MCP — сервер Model Context Protocol для веб-разработчиков, который делает ваш рабочий процесс разработки и отладки быстрее и мощнее. Мы знаем, что агенты становятся всё более неотъемлемой частью процесса написания кода, и сервер Safari MCP даёт вашему агенту возможность узнавать, как ваш код на самом деле отображается в браузере, подключая его к окну браузера Safari.
Любой MCP-совместимый клиент может подключиться к серверу Safari MCP. Подключив своего агента к окну браузера Safari, вы даёте ему возможность воспроизводить то, что видят ваши пользователи, предоставляя ему информацию, необходимую для более автономной отладки, например доступ к DOM, сетевым запросам, скриншотам и выводу консоли.
Это ускоряет процесс отладки и позволяет вам оставаться в удобстве вашего терминала, что означает меньше циклов переключения окон и ввода подсказок для отладки кода.
Варианты использования
Если вы создаёте продукты для веба, вы знаете о «танце отладки». Обычно это выглядит примерно так:
Вы видите что-то не так с вашим сайтом в браузере. Вы открываете консоль, чтобы найти проблему. Вы переходите на вкладку стилей. Вы видите, что сломано. Вы возвращаетесь к коду, чтобы исправить это. Или, возможно, вы делаете скриншот, описываете проблему своему агенту и позволяете ему исправить её. Надеемся, он справится, баг будет исправлен, и вы сможете двигаться дальше.
Но когда это не исправлено, вы повторяете рабочий процесс — Браузер. Подсказка. Агент.
И снова, и снова, пока наконец не устраните баг.
Независимо от браузера или инструментов, которые вы используете, процесс отладки — это множество кликов, инструментов и переключений окон для одного исправления, но так быть не должно. Если вы уже используете агентов в своём процессе разработки, сервер Safari MCP делает вашу отладку быстрее и эффективнее.
Сервер Safari MCP позволяет вашему агенту выполнять больше отладки и устранения неполадок самостоятельно. Вот лишь несколько примеров того, с чем он может помочь:
Веб-разработка в Safari. В следующий раз, когда вы будете разрабатывать в Safari, вы получите преимущества от улучшенного рабочего процесса. Ваш агент уже помогает вам с кодом, теперь он может делать ещё больше, проверяя, как ваш код на самом деле отображается в Safari.
Улучшение совместимости с Safari. Тестирование только в одном браузере означает пропуск потенциальных багов в другом, что даёт этим пользователям некачественный опыт. С сервером Safari MCP ваш агент может открыть ваш сайт в Safari, проверить вычисленные стили, проверить макет и сравнить его с ожидаемым без переключения окон.
Анализ производительности. Узнайте, какие части вашего сайта замедляют работу. Сервер Safari MCP позволяет вашему агенту выполнять JavaScript на странице для выявления показателей производительности, таких как время навигации и время загрузки ресурсов, чтобы он мог точно определить, что замедляет ваш сайт, и работать над правильным исправлением.
Проверка доступности. Сервер Safari MCP позволяет вашему агенту проверять распространённые проблемы доступности, такие как отсутствующие метки, неправильные атрибуты ARIA и плохой контраст, чтобы вы могли выявлять проблемы, влияющие на ваших пользователей.
Проверка любого состояния пользователя. Убедитесь, что страница работает и выглядит так, как должна. Ваш агент может проверить состояние формы, запросить элемент с помощью селектора, подтвердить конкретные взаимодействия, показать различные состояния процесса оформления заказа и многое другое. Тратьте меньше времени на эти ручные проверки и позвольте агенту сделать это за вас.
Это лишь несколько примеров использования. Как бы вы ни решили его внедрить, сервер Safari MCP помогает вашему агенту делать больше для вас и сокращать все те来回, которые часто требует веб-разработка. Более простой рабочий процесс означает больше исправленных багов, довольных пользователей и лучший продукт.
Инструменты
Вот доступные инструменты и что они делают:
| Инструмент | Описание |
|---|---|
| browser_console_messages | Возвращает буферизованные журналы консоли для текущей или указанной вкладки |
| browser_dialogs | Перечисляет диалоговые окна браузера и отвечает на них (принять, отклонить или ввести текст для JS-подсказок) |
| close_tab | Закрывает вкладку браузера по её идентификатору |
| create_tab | Создаёт новую вкладку браузера, при необходимости загружая URL |
| evaluate_javascript | Выполняет код JavaScript на странице и возвращает результат |
| get_network_request | Получает полную информацию об одном записанном сетевом запросе (заголовки, тело, время) |
| get_page_content | Извлекает текстовое содержимое страницы в различных форматах (markdown, HTML, JSON и т. д.) |
| list_network_requests | Перечисляет сводки сетевых запросов (URL, метод, статус, время) для текущей вкладки |
| list_tabs | Перечисляет все открытые вкладки браузера с их идентификаторами и URL |
| navigate_to_url | Переходит по URL и возвращает содержимое загруженной страницы |
| page_info | Получает информацию о текущей странице: URL, заголовок и состояние загрузки |
| page_interactions | Выполняет DOM-взаимодействия последовательно: клик, ввод, прокрутка, наведение, нажатие клавиш и т. д. |
| screenshot | Делает скриншот текущей страницы в формате PNG |
| set_emulated_media | Эмулирует тип CSS-медиа (например, «print») для тестирования адаптивного дизайна |
| set_viewport_size | Устанавливает размер окна просмотра браузера в CSS-пикселях |
| switch_tab | Переключается на другую вкладку браузера по её идентификатору |
| wait_for_navigation | Ожидает завершения загрузки текущей страницы; возвращает финальный URL и заголовок |
С сервером Safari MCP вам больше не нужно писать идеальный промпт, тщательно описывая агенту, что вы видите в браузере. Вы можете дать своему агенту возможность выяснить это самостоятельно.
Как начать
Safari 27
Сначала вам нужно установить Safari 27. После установки убедитесь, что включены функции для веб-разработчиков и удалённая автоматизация. Чтобы включить функции для веб-разработчиков, выберите Safari > Настройки > Дополнительно > установите флажок «Показывать функции для веб-разработчиков». Затем перейдите в Safari > Настройки > Разработчик > установите флажок «Разрешить удалённую автоматизацию и внешние агенты».
Если вы используете Claude, вы можете использовать следующую команду в терминале:
claude mcp add safari-mcp -- "/usr/bin/safaridriver" --mcp
Если вы используете Codex, вы можете использовать следующую команду в терминале:
codex mcp add safari-mcp -- "/usr/bin/safaridriver" --mcp
Для других агентов вы можете поместить следующее в файл mcp.json или config.json.
{
"mcpServers": {
"safari-mcp": {
"command": "/usr/bin/safaridriver",
"args": ["--mcp"]
}
}
}
Safari Technology Preview
Сначала вам нужно установить Safari Technology Preview. После установки убедитесь, что вы включили Safari Настройки > Дополнительно > Показывать функции для веб-разработчиков. Затем перейдите в Safari Настройки > Разработчик > Включить удалённую автоматизацию и внешние агенты.
Если вы используете Claude, вы можете использовать следующую команду в терминале:
claude mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp
Если вы используете Codex, вы можете использовать следующую команду в терминале:
codex mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp
Для других агентов вы можете поместить следующее в ваш mcp.json или config.json:
"safari-mcp-stp": {
"command": "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver",
"args": ["--mcp"]
}
Обратите внимание, что хотя приведённый выше код называет сервер safari-mcp-stp, вы можете назвать его как угодно, даже просто safari. После установки сервера Safari MCP попробуйте один из следующих промптов:
Find bugs on my site in Safari
How accessible is my site in Safari?
See how my website performs in Safari
Хотя каждый агент работает немного по-разному, ему не нужно явно указывать использовать сервер Safari MCP — он разберётся сам. Простых промптов, подобных приведённым выше, достаточно, чтобы запустить MCP.
Вот как может выглядеть разговор с агентом, использующим сервер Safari MCP:
Вы: Получил отчёт об ошибке — что-то сломано в Safari на странице рейсов. Можешь разобраться, что происходит?
Агент: Конечно, дай посмотрю.
Агент: Я нашёл две явные ошибки на странице рейсов в Safari. Исправить обе?
Вы: Да. Есть ли что-то ещё, что может вызывать проблемы у пользователей Safari?
Агент: Да, ещё две вещи, на которые стоит обратить внимание. Анимация результатов тихо сломана, и журнал запуска сервера API неверен. Заняться и ими тоже?
Всё, что вам нужно, — это первоначальный запрос, чтобы начать, и с помощью сервера Safari MCP ваш агент сможет продолжить оттуда.
Сервер Safari MCP работает полностью на вашем локальном компьютере и не совершает собственных сетевых вызовов. Он также не имеет доступа к вашей личной информации в Safari (например, к AutoFill или другой активности браузера). Когда он захватывает содержимое страницы, скриншоты или журналы консоли, эти данные передаются напрямую агенту, который вы запускаете, — а не в Apple. Что происходит с этими данными дальше, зависит от агента и модели, которые вы используете. Как и с любым агентом, которому вы даёте доступ к браузеру, используйте только тех, которым доверяете.
Почему мы это создали
Существует множество способов создавать продукты для веба, как с ИИ, так и без него. Если ИИ является частью вашего рабочего процесса, мы думаем, что этот инструмент поможет сделать его ещё более продуктивным. А если нет — это тоже нормально.
Создавая этот ресурс, мы надеемся сделать тестирование и отладку в Safari проще, чем когда-либо, помогая вашему агенту понимать, как вещи выглядят и работают в браузере.
Если вы попробуете его или если это ваш первый опыт использования MCP-сервера, дайте нам знать, что вы думаете.
Найдите нас в интернете: Сарон Йитбарек на Bluesky, Джен Симмонс на Bluesky / Mastodon и Джон Дэвис на Bluesky / Mastodon. Если вы столкнётесь с какими-либо проблемами, отправьте отчёт об ошибке WebKit. Отправка отчётов действительно имеет значение.