Skip to main content
Glama

MCP Server for iOS Simulator

📱 Simulador de servidor MCP para iOS

Un servidor que implementa el Protocolo de contexto de modelo (MCP) para simuladores de iOS, construido sobre appium-ios-simulator y que utiliza el SDK de TypeScript de MCP .

📋 Descripción general

Este proyecto conecta los simuladores de iOS con el Protocolo de Contexto de Modelo (MCP), lo que permite una comunicación estandarizada con las instancias de simuladores de iOS. Permite el control programático de los simuladores de iOS, a la vez que aprovecha el protocolo MCP para lograr interfaces consistentes en diferentes entornos. El servidor utiliza stdio como mecanismo de transporte, lo que lo hace ideal para la integración con Claude Desktop y otros clientes compatibles con MCP.

🎬 Demostración

Demostración del simulador de iOS

Demostración que muestra cómo iniciar un simulador de iOS usando Claude AI Desktop

🏗️ Arquitectura

El servidor consta de tres componentes principales:

  1. 🔄 Capa de gestión del simulador : gestiona el ciclo de vida y las interacciones del simulador de iOS
  2. 🔌 Implementación del protocolo MCP : implementa el protocolo de contexto de modelo utilizando el SDK de TypeScript con transporte stdio
  3. 📊 Componente Logger : proporciona registro basado en archivos sin interferir con el transporte stdio
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ MCP Protocol │ │ Stdio │ │ Simulator │ │ Implementation │◄────┤ Transport │◄────┤ Management │ │ │ │ │ │ Layer │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ▲ ▲ │ │ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ MCP Client │ │ iOS Simulator │ │ (e.g. Claude) │ │ │ └─────────────────┘ └─────────────────┘

✨ Características

  • 🚀 Iniciar, detener y administrar instancias del simulador de iOS
  • 🔌 Simuladores de arranque y apagado
  • 📲 Instalar y ejecutar aplicaciones en simuladores
  • 📸 Toma capturas de pantalla de las pantallas del simulador
  • 👆 Realizar toques en las coordenadas
  • 🔄 Soporte para múltiples sesiones de simulador simultáneas
  • 📝 Registro completo basado en archivos sin salida de consola
  • 🛡️ Operación resistente a errores

📋 Requisitos previos

  • 🟢 Node.js (v16 o posterior)
  • 🍎 macOS (requerido para simuladores de iOS)
  • 🛠️ Xcode con simuladores de iOS instalados
  • 📜 TypeScript 4.5+

🔧Instalación

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

⚙️ Configuración

La configuración se maneja a través del archivo 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), } };

Puede personalizar estas configuraciones configurando variables de entorno:

SIMULATOR_DEFAULT_DEVICE=iPhone 16 SIMULATOR_DEFAULT_OS=18.2 SIMULATOR_TIMEOUT=30000

🚀 Uso

🔨 Construyendo e iniciando el servidor

# Build the project npm run build # Start the server npm start

Herramientas MCP

El servidor ofrece dos enfoques distintos para controlar simuladores de iOS:

📱 Gestión directa del simulador (recomendado)

Estas herramientas funcionan directamente con los UDID del simulador y no requieren mantener sesiones:

  • 📋 list-available-simulators : enumera todos los simuladores disponibles con sus UDID
  • ▶️ boot-simulator-by-udid - Arranca un simulador directamente usando su UDID
  • ⏹️ shutdown-simulator-by-udid - Apaga un simulador directamente usando su UDID
  • 📊 list-booted-simulators - Lista todos los simuladores iniciados actualmente

Utilice este enfoque cuando: simplemente desee iniciar, usar y apagar simuladores directamente.

📱 Gestión basada en sesiones (avanzada)

Estas herramientas utilizan una capa de sesión que rastrea simuladores con ID de sesión personalizados:

  • 📋 list-simulator-sessions - Lista todas las sesiones activas del simulador
  • create-simulator-session - Crea una nueva sesión de simulador
  • terminate-simulator-session - Terminar una sesión (apaga el simulador y lo limpia)
  • 🔄 create-and-boot-simulator : crea una nueva sesión de simulador y la inicia
  • ▶️ boot-simulator : inicia un simulador para una sesión existente
  • ⏹️ shutdown-simulator - Apaga un simulador para una sesión existente

Utilice este enfoque cuando: necesite realizar un seguimiento de metadatos del simulador, hacer referencia a simuladores mediante identificaciones personalizadas o utilizar funciones de gestión más avanzadas.

📲 Gestión de aplicaciones
  • 📥 install-app - Instalar una aplicación en un simulador
  • 🚀 launch-app - Inicia una aplicación en un simulador
  • 🛑 terminate-app - Finaliza una aplicación en ejecución en un simulador
🖱️ Herramientas de interacción
  • 📷 take-screenshot : toma una captura de pantalla de la pantalla del simulador
  • 👆 tap-coordinate - Realiza un toque en las coordenadas especificadas

🤖 Ejemplo de uso con Claude Desktop

  1. Configure Claude Desktop para utilizar este servidor como una herramienta MCP:
    • Abra Claude Desktop
    • Vaya a Configuración > Avanzado
    • Agregue la siguiente configuración a la sección "Servidores MCP":
    { "mcpServers": { "simulator": { "command": "node", "args": [ "/path/to/your/mcp-server-ios-simulator/dist/index.js" ] } } }
    • Reemplace /path/to/your con la ruta real donde instaló este repositorio
    • Guarde la configuración y reinicie Claude Desktop
  2. Utilice las herramientas proporcionadas para controlar simuladores de iOS directamente desde Claude Desktop:Enfoque UDID directo (recomendado):
    1. Primero, pídele a Claude que enumere los simuladores disponibles:
      "Show me all available iOS simulators"
    2. Luego use el UDID para iniciar un simulador específico:
      "Boot the iOS simulator with UDID 5272EA61-5796-4372-86FE-3B33831D5CC1"
    3. Cuando termine, apáguelo usando el mismo UDID:
      "Shut down the simulator with UDID 5272EA61-5796-4372-86FE-3B33831D5CC1"

    El enfoque UDID directo es más simple y confiable para la mayoría de los casos de uso.

    Enfoque basado en sesiones (avanzado): utilice este enfoque solo si necesita las funciones avanzadas de seguimiento de sesiones:

    "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"

👨‍💻 Desarrollo

📁 Estructura del proyecto

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

🔨 Construyendo el Proyecto

# Install development dependencies npm install # Run TypeScript compiler npm run build

📜 Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

🙏 Agradecimientos

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Un puente entre los simuladores de iOS y el Protocolo de Contexto de Modelo, que permite el control programático de simuladores de iOS a través de interfaces de comunicación estandarizadas.

  1. 📋 Descripción general
    1. 🎬 Demostración
      1. 🏗️ Arquitectura
        1. ✨ Características
          1. 📋 Requisitos previos
            1. 🔧Instalación
              1. ⚙️ Configuración
                1. 🚀 Uso
                  1. 🔨 Construyendo e iniciando el servidor
                  2. Herramientas MCP
                  3. 🤖 Ejemplo de uso con Claude Desktop
                2. 👨‍💻 Desarrollo
                  1. 📁 Estructura del proyecto
                  2. 🔨 Construyendo el Proyecto
                3. 📜 Licencia
                  1. 🙏 Agradecimientos

                    Related MCP Servers

                    • A
                      security
                      A
                      license
                      A
                      quality
                      Integration between Model Context Protocol (MCP) and Facebook's iOS Development Bridge (idb), enabling automated iOS device management and test execution through natural language.
                      Last updated -
                      1
                      8
                      3
                      JavaScript
                      MIT License
                      • Apple
                    • -
                      security
                      F
                      license
                      -
                      quality
                      A Model Context Protocol server that enables AI assistants to build and test Xcode projects directly through a standardized interface, with capabilities for running tests, monitoring progress, and accessing logs in real-time.
                      Last updated -
                      29
                      TypeScript
                    • A
                      security
                      A
                      license
                      A
                      quality
                      Enables interaction with iOS simulators by providing tools to inspect UI elements, control UI interactions, and manage simulators through natural language commands.
                      Last updated -
                      6
                      219
                      236
                      JavaScript
                      MIT License
                      • Apple

                    View all related MCP servers

                    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