Skip to main content
Glama
atom2ueki

MCP Server for iOS Simulator

📱 Servidor MCP para Simulador de iOS

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

📋 Descripción general

Este proyecto proporciona un puente entre los simuladores de iOS y el Protocolo de Contexto de Modelo, permitiendo una comunicación estandarizada con instancias de simuladores de iOS. Permite el control programático de los simuladores de iOS mientras aprovecha el protocolo MCP para obtener 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.

Related MCP server: Simulator 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 - Maneja 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 de registro (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 gestionar instancias de simuladores de iOS

  • 🔌 Arrancar y apagar simuladores

  • 📲 Instalar y ejecutar aplicaciones en simuladores

  • 📸 Tomar capturas de pantalla de las pantallas del simulador

  • 👆 Realizar toques en 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

Instalación a través de Smithery

Para instalar el Servidor de Control de Simulador de iOS para Claude Desktop automáticamente a través de Smithery:

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

Instalación manual

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

# Install dependencies
npm install

🐳 Docker

Se proporciona un Dockerfile para que el servidor pueda empaquetarse para el directorio Glama MCP y otros hosts de contenedores.

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

Nota: Los simuladores de iOS solo se ejecutan en macOS, por lo que un contenedor de Linux puede alojar el proceso MCP y responder en stdio, pero no puede controlar un simulador real. El contenedor está destinado a comprobaciones de portabilidad y entornos MCP remotos que se conectan a un host macOS.

⚙️ Configuración

La configuración se gestiona 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 estos ajustes configurando variables de entorno:

SIMULATOR_DEFAULT_DEVICE=iPhone 16
SIMULATOR_DEFAULT_OS=18.2
SIMULATOR_TIMEOUT=30000

🚀 Uso

🔨 Construcción e inicio del servidor

# Build the project
npm run build

# Start the server
npm start

🧰 Herramientas MCP

El servidor proporciona dos enfoques distintos para controlar los 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 - Listar todos los simuladores disponibles con sus UDID

  • ▶️ boot-simulator-by-udid - Arrancar un simulador directamente usando su UDID

  • ⏹️ shutdown-simulator-by-udid - Apagar un simulador directamente usando su UDID

  • 📊 list-booted-simulators - Listar todos los simuladores arrancados actualmente

Use este enfoque cuando: Solo desee arrancar, usar y apagar simuladores directamente.

📱 Gestión basada en sesiones (Avanzado)

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

  • 📋 list-simulator-sessions - Listar todas las sesiones de simulador activas

  • create-simulator-session - Crear una nueva sesión de simulador

  • terminate-simulator-session - Terminar una sesión (apaga el simulador y limpia)

  • 🔄 create-and-boot-simulator - Crear una nueva sesión de simulador y arrancarla

  • ▶️ boot-simulator - Arrancar un simulador para una sesión existente

  • ⏹️ shutdown-simulator - Apagar un simulador para una sesión existente

Use este enfoque cuando: Necesite rastrear metadatos del simulador, hacer referencia a simuladores mediante ID personalizados o utilizar las funciones de gestión más avanzadas.

📲 Gestión de aplicaciones

  • 📥 install-app - Instalar una aplicación en un simulador

  • 🚀 launch-app - Ejecutar una aplicación en un simulador

  • 🛑 terminate-app - Terminar una aplicación en ejecución en un simulador

🖱️ Herramientas de interacción

  • 📷 take-screenshot - Tomar una captura de pantalla de la pantalla del simulador

  • 👆 tap-coordinate - Realizar un toque en las coordenadas especificadas

🤖 Ejemplo de uso con Claude Desktop

  1. Configure Claude Desktop para usar este servidor como una herramienta MCP:

    • Abra Claude Desktop

    • Vaya a Configuración > Avanzado

    • Agregue la siguiente configuración a la sección "MCP Servers":

    {
      "mcpServers": {
        "simulator": {
          "command": "node",
          "args": [
            "/path/to/your/mcp-server-ios-simulator/dist/index.js"
          ]
        }
      }
    }
    • Reemplace /path/to/your con la ruta real donde ha instalado este repositorio

    • Guarde la configuración y reinicie Claude Desktop

  2. Use las herramientas proporcionadas para controlar los simuladores de iOS directamente desde Claude Desktop:

    Enfoque de UDID directo (Recomendado):

    1. Primero, pídale a Claude que liste los simuladores disponibles:

      "Show me all available iOS simulators"
    2. Luego use el UDID para arrancar 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 de UDID directo es más simple y confiable para la mayoría de los casos de uso.

    **Enfoque basado en sesiones (Avanzado): Solo use este enfoque 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

🔨 Construcción del proyecto

# Install development dependencies
npm install

# Run TypeScript compiler
npm run build

📜 Licencia

Este proyecto está bajo la Licencia MIT - consulte el archivo LICENSE para obtener más detalles.

🙏 Agradecimientos

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