iOS Simulator MCP
ios-simulator-mcp — MCP-сервер для управления iOS-симулятором из AI-агентов. Агент может тапать по UI, делать скриншоты, записывать видео, устанавливать и запускать приложения — всё через симулятор.
Что это даёт
С Xcode MCP (mcpbridge) агент работает с проектом: билды, тесты, превью. С ios-simulator-mcp агент работает с запущенным приложением в симуляторе:
- Видеть экран — скриншоты и сжатые превью UI
- Тапать и свайпать — взаимодействие с UI по координатам
- Вводить текст — ввод в текстовые поля
- Читать accessibility-дерево — описание всех элементов на экране или конкретной точки
- Устанавливать и запускать приложения —
.app/.ipaпо bundle ID - Записывать видео — запись и остановка экрана симулятора
Требования
- macOS
- Xcode с установленными симуляторами
- Node.js
- Facebook IDB — утилита для взаимодействия с симулятором
Установка IDB:
bash
brew install idb-companion
pip install fb-idbПодключение Claude Code
bash
claude mcp add ios-simulator -- npx -y ios-simulator-mcpИли вручную — добавить в .claude.json в корне проекта:
json
{
"mcpServers": {
"ios-simulator": {
"command": "npx",
"args": ["-y", "ios-simulator-mcp"]
}
}
}Подключение Cursor
Добавить в .cursor/mcp.json в корне проекта:
json
{
"mcpServers": {
"ios-simulator": {
"command": "npx",
"args": ["-y", "ios-simulator-mcp"]
}
}
}Доступные инструменты
Управление симулятором
| Инструмент | Что делает |
|---|---|
open_simulator | Открывает приложение Simulator |
get_booted_sim_id | Возвращает ID запущенного симулятора |
UI — просмотр и взаимодействие
| Инструмент | Что делает |
|---|---|
ui_view | Возвращает сжатый скриншот экрана (агент видит UI) |
ui_describe_all | Accessibility-описание всех элементов на экране |
ui_describe_point | Accessibility-элемент в конкретной точке (x, y) |
ui_tap | Тап по координатам |
ui_swipe | Свайп от точки к точке |
ui_type | Ввод текста (ASCII) |
Скриншоты и видео
| Инструмент | Что делает |
|---|---|
screenshot | Сохраняет скриншот в файл (png/jpeg/tiff) |
record_video | Начинает запись видео (h264/hevc) |
stop_recording | Останавливает запись |
Приложения
| Инструмент | Что делает |
|---|---|
install_app | Устанавливает .app / .ipa в симулятор |
launch_app | Запускает приложение по bundle ID |
Настройка через переменные окружения
json
{
"mcpServers": {
"ios-simulator": {
"command": "npx",
"args": ["-y", "ios-simulator-mcp"],
"env": {
"IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR": "~/Code/project/tmp",
"IOS_SIMULATOR_MCP_FILTERED_TOOLS": "record_video,stop_recording",
"IOS_SIMULATOR_MCP_IDB_PATH": "~/bin/idb"
}
}
}
}| Переменная | Что делает | По умолчанию |
|---|---|---|
IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR | Папка для скриншотов и видео | ~/Downloads |
IOS_SIMULATOR_MCP_FILTERED_TOOLS | Список инструментов для скрытия (через запятую) | — |
IOS_SIMULATOR_MCP_IDB_PATH | Путь к IDB | системный |
Проверка
- Открыть симулятор (Xcode → Open Developer Tool → Simulator)
- Запустить агента (Claude Code / Cursor)
- Попросить агента: «сделай скриншот симулятора» или «опиши что на экране»
- Если агент вернул изображение или описание элементов — всё работает
Советы
- Комбинируй с Xcode MCP.
mcpbridgeдля билдов и тестов +ios-simulator-mcpдля взаимодействия с UI в симуляторе — полный цикл разработки. ui_viewвместоscreenshotдля быстрой проверки — возвращает сжатое изображение прямо агенту без сохранения файла.- Accessibility-описание (
ui_describe_all) помогает агенту понять структуру экрана без скриншота — быстрее и дешевле по токенам.