Skip to main content
Glama

Simulator MCP

Управляйте симулятором iOS с помощью ИИ через протокол MCP — запускайте устройства, делайте скриншоты, нажимайте кнопки, вводите текст, перехватывайте трафик и имитируйте API.

Обзор функций

Категория

Инструмент

Описание

Управление устройствами

list_devices

Список всех симуляторов (статус, UDID, среда выполнения)

boot_device / shutdown_device

Запуск / выключение симулятора

install_app

Установка пакета .app

launch_app

Запуск приложения (поддерживает proxy=true для внедрения перехвата сети)

open_url

Открытие URL или глубокой ссылки (автоматически выбирает запущенный симулятор)

Скриншоты

take_screenshot

Создание скриншота и возврат его ИИ в формате base64 (поддерживает визуальный анализ)

Взаимодействие с UI

tap

Нажатие по указанным координатам iOS (поддерживает долгое нажатие через duration)

swipe

Свайп от начальной до конечной точки

input_text

Ввод текста в текущее активное поле ввода

press_button

Нажатие аппаратных кнопок (home / lock / siri)

get_ui_hierarchy

Получение дерева доступности UI (в формате JSON)

tap_element

Поиск элемента по тексту и нажатие на его центральные координаты

Перехват сети

start_network_proxy

Запуск прокси mitmproxy (порт 8080 по умолчанию)

stop_network_proxy

Остановка прокси

get_network_log

Просмотр записей трафика (поддерживает фильтрацию по URL и методу)

add_mock_rule

Добавление правила имитации (регулярное выражение URL)

remove_mock_rule

Удаление правила имитации

Всего 18 инструментов, охватывающих три основных сценария: управление устройствами, автоматизация UI и перехват сети.

Related MCP server: Shotter

Предварительные требования

Зависимость

Назначение

Способ установки

Xcode

Предоставляет команду xcrun simctl

Mac App Store

idb-companion

Нативный демон fb-idb (автоматизация UI)

brew install idb-companion

Python >= 3.11

Среда выполнения

brew install python@3.11 или выше

uv (рекомендуется)

Управление пакетами

brew install uv

Встроенный в репозиторий proxy-dylib/libproxy_inject.dylib является предварительно скомпилированным артефактом для arm64; для Intel Mac необходимо перекомпилировать его для x86_64 или универсальной версии.

Установка

cd simulator-mcp

# 方式一:uv(推荐)
uv venv && uv pip install -e .

# 方式二:pip
python -m venv .venv && source .venv/bin/activate && pip install -e .

Зависимости Python (устанавливаются автоматически):

  • mcp >= 1.0 — SDK протокола MCP (stdio JSON-RPC)

  • mitmproxy >= 10.0 — HTTP(S) прокси

  • fb-idb — автоматизация UI симулятора iOS

Настройка для Claude Code

Добавьте в mcpServers в файле ~/.claude.json:

{
  "mcpServers": {
    "simulator": {
      "command": "/path/to/simulator-mcp/.venv/bin/simulator-mcp"
    }
  }
}

Настройка для Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "simulator": {
      "command": "/path/to/simulator-mcp/.venv/bin/simulator-mcp"
    }
  }
}

Замените /path/to/simulator-mcp на фактический абсолютный путь к проекту.

Пример использования

После завершения настройки ИИ может напрямую управлять симулятором:

用户: 打开模拟器,截图看看当前页面
AI:  调用 list_devices → boot_device → take_screenshot
     "当前页面显示的是 iOS 主屏幕..."

用户: 打开微博,点击注册按钮
AI:  调用 launch_app → take_screenshot → tap_element(text="注册")
     "已点击注册按钮,进入了注册页面"

用户: 抓包看看注册接口返回了什么
AI:  调用 start_network_proxy → launch_app(proxy=true) → get_network_log(url_pattern="register")
     "注册接口返回了 200,响应体是..."

用户: Mock 掉登录接口,返回自定义数据
AI:  调用 add_mock_rule(url_pattern="api/login", response_body='{"token":"fake"}')
     "已添加 Mock 规则 mock_1"

Инструкция по перехвату сети

Процесс использования

  1. Запуск прокси: start_network_proxy(port=8080)

    • Автоматически запускает mitmproxy в фоновом потоке

    • Если симулятор уже запущен, сначала будет предпринята попытка установки CA-сертификата mitmproxy

  2. Запуск приложения с прокси: launch_app(udid="xxx", bundle_id="com.example.app", proxy=true)

    • Внедряет libproxy_inject.dylib через DYLD_INSERT_LIBRARIES

    • Использует Swizzle для NSURLSessionConfiguration, перенаправляя весь HTTP(S) трафик на прокси

    • Повторно выполняет установку CA-сертификата на целевой симулятор, чтобы избежать сбоев HTTPS-перехвата при запуске прокси после симулятора

  3. Просмотр/Имитация запросов:

    • get_network_log(url_pattern="api/user") — фильтрация по подстроке URL

    • add_mock_rule(url_pattern="api/login", response_body="...") — регулярное выражение для URL

Технические принципы

App 启动 → dylib 注入 → swizzle NSURLSessionConfiguration
  → 所有 NSURLSession 流量 → mitmproxy (127.0.0.1:8080)
    → MockEngine 检查规则 → 命中则返回假数据 / 未命中则转发真实服务器
    → NetworkLog 记录请求/响应(内存环形缓冲,最多 1000 条)
    → 同时落盘:
      - `/tmp/proxy_requests.log`:摘要日志
      - `/tmp/proxy_requests.jsonl`:结构化明细日志
      - `/tmp/proxy_request_bodies/`:超大 body 的分流文件

Структура проекта

simulator-mcp/
├── pyproject.toml                 # 项目配置、依赖、入口定义
├── README.md                      # 本文件
├── ARCHITECTURE.md                # 技术架构详细文档
├── diagrams/                      # Mermaid 源文件 + PNG 架构图
├── proxy-dylib/
│   ├── proxy_inject.m             # DYLD 注入源码 (Objective-C, 95 行)
│   └── libproxy_inject.dylib      # 编译产物 (当前为 arm64)
└── src/simulator_mcp/
    ├── __init__.py                # 入口: main() → asyncio.run(server.main())
    ├── __main__.py                # python -m simulator_mcp 入口
    ├── server.py                  # MCP Server: 18 个工具注册 + call_tool 分发
    ├── simulator/
    │   ├── simctl.py              # xcrun simctl 异步封装 (设备管理 + 截图)
    │   └── idb_client.py          # fb-idb 异步封装 (UI 交互 + tap_element)
    ├── tools/
    │   ├── device.py              # 设备管理工具 (参数解析 + proxy 注入逻辑)
    │   ├── screenshot.py          # 截图工具 (PNG → base64)
    │   ├── ui.py                  # UI 交互工具 (参数解析 → idb_client)
    │   └── network.py             # 网络工具 (参数解析 → proxy_server)
    └── proxy/
        ├── proxy_server.py        # mitmproxy 生命周期 + ProxyAddon + CA 证书安装
        ├── network_log.py         # 请求日志: 内存环形缓冲 + 结构化落盘
        └── mock_engine.py         # Mock 规则引擎: 正则匹配, 首条命中

Перекомпиляция dylib (опционально)

Если вы изменили proxy_inject.m:

cd proxy-dylib
clang -dynamiclib -framework Foundation \
  -arch arm64 -arch x86_64 \
  -o libproxy_inject.dylib \
  proxy_inject.m

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

Подробное описание технической архитектуры см. в ARCHITECTURE.md.

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to automate iOS Simulator interactions including device management, UI element interaction (tap, swipe, type), screenshot capture, and execution of YAML-defined navigation workflows.
    2
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that provides comprehensive tools for managing iOS simulators, including device control, app lifecycle management, and UI automation. It enables developers to boot devices, install apps, capture screenshots, and simulate user interactions through natural language commands.
    3
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/992429169/simulator-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server