Skip to main content
Glama
atom2ueki

MCP Server for iOS Simulator

📱 MCP-сервер для симулятора iOS

Сервер, реализующий протокол Model Context Protocol (MCP) для симуляторов iOS, построенный на базе appium-ios-simulator с использованием MCP TypeScript SDK.

📋 Обзор

Этот проект предоставляет мост между симуляторами iOS и протоколом Model Context Protocol, позволяя осуществлять стандартизированное взаимодействие с экземплярами симуляторов iOS. Он обеспечивает программное управление симуляторами iOS, используя протокол MCP для создания согласованных интерфейсов в различных средах. Сервер использует stdio в качестве механизма передачи данных, что делает его идеальным для интеграции с Claude Desktop и другими MCP-совместимыми клиентами.

Related MCP server: Simulator MCP

🎬 Демонстрация

Демонстрация симулятора iOS

Демонстрация того, как запустить симулятор iOS с помощью Claude AI Desktop

🏗️ Архитектура

Сервер состоит из трех основных компонентов:

  1. 🔄 Уровень управления симулятором — обрабатывает жизненный цикл и взаимодействие с симулятором iOS

  2. 🔌 Реализация протокола MCP — реализует протокол Model Context Protocol с использованием TypeScript SDK и транспорта stdio

  3. 📊 Компонент логирования — обеспечивает ведение логов в файле, не мешая транспорту stdio

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  MCP Protocol   │     │     Stdio       │     │    Simulator    │
│  Implementation │◄────┤    Transport    │◄────┤   Management    │
│                 │     │                 │     │      Layer      │
└─────────────────┘     └─────────────────┘     └─────────────────┘
        ▲                                                ▲
        │                                                │
        ▼                                                ▼
┌─────────────────┐                             ┌─────────────────┐
│   MCP Client    │                             │  iOS Simulator  │
│  (e.g. Claude)  │                             │                 │
└─────────────────┘                             └─────────────────┘

✨ Функции

  • 🚀 Запуск, остановка и управление экземплярами симуляторов iOS

  • 🔌 Загрузка и выключение симуляторов

  • 📲 Установка и запуск приложений на симуляторах

  • 📸 Создание снимков экрана симулятора

  • 👆 Выполнение нажатий по координатам

  • 🔄 Поддержка нескольких одновременных сессий симулятора

  • 📝 Комплексное ведение логов в файле без вывода в консоль

  • 🛡️ Устойчивость к ошибкам

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

  • 🟢 Node.js (v16 или новее)

  • 🍎 macOS (требуется для симуляторов iOS)

  • 🛠️ Xcode с установленными симуляторами iOS

  • 📜 TypeScript 4.5+

🔧 Установка

Установка через Smithery

Чтобы автоматически установить сервер управления симулятором iOS для Claude Desktop через Smithery:

npx -y @smithery/cli install @atom2ueki/mcp-server-ios-simulator --client claude

Ручная установка

# Clone the repository
git clone https://github.com/atom2ueki/mcp-server-ios-simulator.git
cd mcp-server-ios-simulator

# Install dependencies
npm install

🐳 Docker

Предоставлен Dockerfile, чтобы сервер можно было упаковать для каталога Glama MCP и других контейнерных хостов.

docker build -t mcp-server-ios-simulator .
docker run --rm -i mcp-server-ios-simulator

Примечание: Симуляторы iOS работают только на macOS, поэтому Linux-контейнер может разместить процесс MCP и отвечать через stdio, но не может управлять реальным симулятором. Контейнер предназначен для проверки переносимости и удаленных сред MCP, которые подключаются к хосту macOS.

⚙️ Конфигурация

Конфигурация осуществляется через файл src/config.ts:

const config = {
  simulator: {
    defaultDevice: process.env.SIMULATOR_DEFAULT_DEVICE || 'iPhone 16',
    defaultOS: process.env.SIMULATOR_DEFAULT_OS || '18.2',
    timeout: parseInt(process.env.SIMULATOR_TIMEOUT || '30000', 10),
  }
};

Вы можете настроить эти параметры, установив переменные окружения:

SIMULATOR_DEFAULT_DEVICE=iPhone 16
SIMULATOR_DEFAULT_OS=18.2
SIMULATOR_TIMEOUT=30000

🚀 Использование

🔨 Сборка и запуск сервера

# Build the project
npm run build

# Start the server
npm start

🧰 Инструменты MCP

Сервер предоставляет два различных подхода к управлению симуляторами iOS:

📱 Прямое управление симулятором (рекомендуется)

Эти инструменты работают напрямую с UDID симуляторов и не требуют поддержания сессий:

  • 📋 list-available-simulators — список всех доступных симуляторов с их UDID

  • ▶️ boot-simulator-by-udid — запуск симулятора напрямую по его UDID

  • ⏹️ shutdown-simulator-by-udid — выключение симулятора напрямую по его UDID

  • 📊 list-booted-simulators — список всех запущенных в данный момент симуляторов

Используйте этот подход, если: Вам нужно просто запустить, использовать и выключить симуляторы напрямую.

📱 Управление на основе сессий (расширенное)

Эти инструменты используют уровень сессий, который отслеживает симуляторы с помощью пользовательских идентификаторов сессий:

  • 📋 list-simulator-sessions — список всех активных сессий симуляторов

  • create-simulator-session — создание новой сессии симулятора

  • terminate-simulator-session — завершение сессии (выключает симулятор и выполняет очистку)

  • 🔄 create-and-boot-simulator — создание новой сессии симулятора и его запуск

  • ▶️ boot-simulator — запуск симулятора для существующей сессии

  • ⏹️ shutdown-simulator — выключение симулятора для существующей сессии

Используйте этот подход, если: Вам нужно отслеживать метаданные симулятора, ссылаться на симуляторы по пользовательским идентификаторам или использовать более продвинутые функции управления.

📲 Управление приложениями

  • 📥 install-app — установка приложения на симулятор

  • 🚀 launch-app — запуск приложения на симуляторе

  • 🛑 terminate-app — завершение работы приложения на симуляторе

🖱️ Инструменты взаимодействия

  • 📷 take-screenshot — создание снимка экрана симулятора

  • 👆 tap-coordinate — выполнение нажатия по указанным координатам

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

  1. Настройте Claude Desktop для использования этого сервера в качестве инструмента MCP:

    • Откройте Claude Desktop

    • Перейдите в Settings > Advanced

    • Добавьте следующую конфигурацию в раздел "MCP Servers":

    {
      "mcpServers": {
        "simulator": {
          "command": "node",
          "args": [
            "/path/to/your/mcp-server-ios-simulator/dist/index.js"
          ]
        }
      }
    }
    • Замените /path/to/your на фактический путь, по которому вы установили этот репозиторий

    • Сохраните настройки и перезапустите Claude Desktop

  2. Используйте предоставленные инструменты для управления симуляторами iOS прямо из Claude Desktop:

    Подход с прямым UDID (рекомендуется):

    1. Сначала попросите Claude вывести список доступных симуляторов:

      "Show me all available iOS simulators"
    2. Затем используйте UDID для запуска конкретного симулятора:

      "Boot the iOS simulator with UDID 5272EA61-5796-4372-86FE-3B33831D5CC1"
    3. Когда закончите, выключите его, используя тот же UDID:

      "Shut down the simulator with UDID 5272EA61-5796-4372-86FE-3B33831D5CC1"

    Подход с прямым UDID проще и надежнее для большинства случаев использования.

    **Подход на основе сессий (расширенный): Используйте этот подход только в том случае, если вам нужны расширенные функции отслеживания сессий:

    "Create a new simulator session for iPhone 16 Pro with iOS 18.2"
    "Boot the simulator for session abc-123"
    "Take a screenshot of the simulator for session abc-123"
    "Terminate the simulator session abc-123"

👨💻 Разработка

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

src/
├── simulator/       # Simulator management layer
├── mcp/             # MCP protocol implementation
├── bridge/          # Bridge component
├── utils/           # Utility functions including logger
├── config.ts        # Configuration handling
└── index.ts         # Entry point

🔨 Сборка проекта

# Install development dependencies
npm install

# Run TypeScript compiler
npm run build

📜 Лицензия

Этот проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.

🙏 Благодарности

  • 📱 appium-ios-simulator за предоставление возможностей взаимодействия с симулятором iOS

  • 🔌 Model Context Protocol за спецификацию протокола и TypeScript SDK

Install Server
A
license - permissive license
C
quality
C
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

View all related MCP servers

Related MCP Connectors

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/atom2ueki/mcp-server-ios-simulator'

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