Skip to main content
Glama

iOS simulators MCP

📱 Simulador de servidor MCP para iOS

Servidor MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los LLM interactuar con simuladores de iOS a través de comandos de lenguaje natural.

ℹ️ Descripción general

Este servidor MCP conecta los Modelos de Lenguaje Grandes (LLM) con los simuladores de iOS, ofreciendo un control completo mediante comandos de lenguaje natural. Esto es lo que puede hacer:

Para obtener información detallada sobre su uso, consulte la Guía de instalación y las secciones Comandos compatibles. Puede usar este servidor mediante integración directa con MCP o como biblioteca independiente.

Consulta la sección Arquitectura para comprender cómo funcionan juntos los componentes para permitir el control del lenguaje natural de los simuladores de iOS.

manifestación

🎮 Control del simulador

  • Crear y gestionar sesiones de simulador

  • Estados del simulador de arranque, apagado y monitorización

  • Lista de simuladores disponibles y en funcionamiento

  • Ventanas del simulador de enfoque

📱 Gestión de aplicaciones

  • Instalar y administrar aplicaciones iOS

  • Iniciar, finalizar y desinstalar aplicaciones

  • Supervisar los estados de las aplicaciones y verificar las instalaciones

  • Gestionar permisos y configuraciones de aplicaciones

🖱️ Interacción y pruebas de la interfaz de usuario

  • Interactuar con la interfaz de usuario del simulador

  • Ejecutar acciones de tocar, deslizar y presionar botones

  • Texto de entrada y secuencias de teclas

  • Acceda a elementos de accesibilidad para pruebas de IU

  • Grabar vídeos de interacciones de la interfaz de usuario

🛠️ Desarrollo y depuración

  • Capturar capturas de pantalla y registros del sistema

  • Depurar aplicaciones en tiempo real

  • Supervisar y analizar registros de fallos

  • Instalar bibliotecas dinámicas y administrar datos de aplicaciones

⚡ Funciones avanzadas

  • La funcionalidad adicional incluye:

    • Simulación de ubicación

    • Inyección de medios

    • Manejo de esquemas de URL

    • Gestión de bases de datos de contactos

    • Operaciones de llavero

Para obtener información detallada sobre su uso, consulte la Guía de instalación y las secciones Comandos compatibles. Puede usar este servidor mediante integración directa con MCP o como biblioteca independiente.

Consulta la sección Arquitectura para comprender cómo funcionan juntos los componentes para permitir el control del lenguaje natural de los simuladores de iOS.

📋 Requisitos

  • macOS : necesario para la compatibilidad con el simulador de iOS

  • Node.js : v14.0.0 o superior

  • Homebrew : Necesario para instalar dependencias

  • XCode : Con simuladores de iOS instalados

🚀 Instalación

La forma más fácil de instalar este servidor es a través de Cline:

  1. Simplemente pregúntele a Cline:

Add this mcp to cline https://github.com/InditexTech/mcp-server-simulator-ios-idb
  1. Cline manejará el proceso de instalación automáticamente, incluida la gestión de dependencias y la configuración.

Alternativamente, puedes instalarlo manualmente:

# Clone the repository git clone https://github.com/InditexTech/mcp-server-simulator-ios-idb.git cd mcp-server-simulator-ios-idb # Create and activate Python virtual environment python3 -m venv venv source venv/bin/activate # On Unix/macOS # Install dependencies npm install # Build the project npm run build # Start the project npm start # Run tests npm test

El proceso de instalación se realizará automáticamente:

  1. Comprueba si estás ejecutando macOS

  2. Instalar idb-companion mediante Homebrew

  3. Instalar fb-idb a través de pip en el entorno virtual

Nota: Asegúrese de mantener el entorno virtual activado mientras usa el servidor. Si cierra la terminal y vuelve más tarde, deberá reactivar el entorno virtual con el comando source venv/bin/activate antes de ejecutar npm start .

🔌 Integración MCP

Para utilizar este servidor con Claude u otros asistentes de LLM:

  1. Agregue el servidor a su configuración de MCP en Claude Desktop:

{ "mcpServers": { "ios-simulator": { "command": "node", "args": ["/path/to/mcp-server-simulator-ios-idb/dist/index.js"], "env": {} } } }
  1. El LLM ahora puede usar comandos de lenguaje natural para controlar simuladores de iOS:

create a simulator session with iPhone 14 install app /path/to/my-app.ipa launch app com.example.myapp tap at 100, 200 take a screenshot

📚 Uso como Biblioteca

También puedes utilizar este paquete como biblioteca en tus propios proyectos:

🔰 Uso básico

import { createMCPServer } from 'mcp-server-simulator-ios-idb'; async function main() { // Create an instance of the MCP server const { orchestrator } = createMCPServer(); // Process natural language commands // Create a simulator session const sessionResult = await orchestrator.processInstruction('create session'); console.log(`Session created: ${sessionResult.data}`); // Interact with the simulator await orchestrator.processInstruction('tap at 100, 200'); // Capture a screenshot const screenshotResult = await orchestrator.processInstruction('take screenshot'); console.log(`Screenshot saved at: ${screenshotResult.data}`); } main().catch(console.error);

🚀 Uso avanzado

También puedes utilizar los componentes individuales directamente:

import { IDBManager, NLParser, MCPOrchestrator, ParserToOrchestrator, OrchestratorToIDB } from 'mcp-server-simulator-ios-idb'; // Create instances const idbManager = new IDBManager(); const parser = new NLParser(); const orchestrator = new MCPOrchestrator(parser, idbManager); // Use the components directly const sessionId = await idbManager.createSimulatorSession({ deviceName: 'iPhone 12', platformVersion: '15.0' }); await idbManager.tap(sessionId, 100, 200);

🏗️ Estructura del proyecto

mcp-server-simulator-ios-idb/ ├── src/ # Source code │ ├── adapters/ # Adapter components │ ├── idb/ # IDB manager implementation │ ├── mcp/ # MCP server implementation │ ├── orchestrator/ # Command orchestrator │ ├── parser/ # Natural language parser │ └── index.ts # Main entry point ├── types/ # TypeScript type definitions ├── scripts/ # Installation scripts ├── package.json # Project configuration └── tsconfig.json # TypeScript configuration

🎯 Comandos compatibles

El NLParser admite los siguientes comandos de lenguaje natural:

🎮 Gestión del simulador

Dominio

Descripción

Ejemplo

Crear sesión

Crea una nueva sesión de simulador

"crear sesión", "crear simulador de iPhone 12"

Terminar sesión

Termina la sesión actual

"Terminar sesión", "Cerrar simulador"

Simuladores de listas

Lista de simuladores disponibles

"enumerar simuladores", "mostrar simuladores"

Lista de simuladores iniciados

Listas de simuladores en ejecución

"Enumerar simuladores iniciados", "Mostrar simuladores en ejecución"

Simulador de arranque

Arranca un simulador mediante UDID

Simulador de arranque 5A321B8F-4D85-4267-9F79-2F5C91D142C2

Simulador de apagado

Apaga un simulador

Simulador de apagado 5A321B8F-4D85-4267-9F79-2F5C91D142C2

Simulador de enfoque

Trae la ventana del simulador al frente

"simulador de enfoque", "traer el simulador al frente"

Lista de sesiones del simulador

Enumera las sesiones activas del simulador

"Enumerar sesiones del simulador", "Mostrar sesiones activas"

📱 Gestión de aplicaciones

Dominio

Descripción

Ejemplo

Instalar aplicación

Instala una aplicación en el simulador.

"instalar la aplicación /ruta/a/app.ipa"

Iniciar aplicación

Inicia una aplicación en el simulador.

"iniciar la aplicación com.example.app"

Terminar la aplicación

Finaliza una aplicación en ejecución

"Terminar la aplicación com.example.app"

Desinstalar la aplicación

Desinstala una aplicación

"desinstalar la aplicación com.example.app"

Lista de aplicaciones

Enumera las aplicaciones instaladas

"listar aplicaciones", "mostrar aplicaciones instaladas"

Comprobar si la aplicación está instalada

Comprueba si una aplicación está instalada

"¿Está instalada la aplicación com.example.app?"

🖱️ Interacción de la interfaz de usuario

Dominio

Descripción

Ejemplo

Grifo

Toca en coordenadas específicas

"toque a 100, 200"

Golpe fuerte

Realiza un gesto de deslizamiento

"Desliza del 100, 200 al 300, 400"

Presione el botón

Presiona un botón del dispositivo

"pulsa el botón HOME", "pulsa el botón SIRI"

Texto de entrada

Tipos de texto

"Texto de entrada Hola mundo"

Presione la tecla

Presiona una tecla por código

"presione la tecla 4"

Secuencia de teclas de prensa

Presiona una secuencia de teclas

"presione la secuencia de teclas 4 5 6"

♿ Accesibilidad

Dominio

Descripción

Ejemplo

Describir elementos

Enumera todos los elementos de accesibilidad

"describir todos los elementos", "mostrar elementos de accesibilidad"

Describir el punto

Describe el elemento en coordenadas

"describe el punto 100, 200", "¿qué hay en 150, 300?"

📸 Captura y registros

Dominio

Descripción

Ejemplo

Tomar captura de pantalla

Captura una captura de pantalla

"tomar captura de pantalla", "capturar pantalla"

Grabar vídeo

Registra la actividad de la pantalla

"grabar vídeo /ruta/salida.mp4"

Detener la grabación

Detiene la grabación de vídeo

"detener la grabación", "detener la grabación de vídeo"

Obtener registros

Recupera registros del sistema o de la aplicación

"obtener registros", "obtener registros para com.example.app"

🐛 Depuración

Dominio

Descripción

Ejemplo

Iniciar depuración

Inicia una sesión de depuración

"depurar aplicación com.example.app", "iniciar depuración com.example.app"

Detener la depuración

Detiene una sesión de depuración

"detener la depuración", "finalizar la sesión de depuración"

Estado de depuración

Obtiene el estado de la sesión de depuración

"estado de depuración", "mostrar información de depuración"

💥 Registros de fallos

Dominio

Descripción

Ejemplo

Lista de registros de fallos

Enumera los registros de fallos disponibles

"listar registros de fallos", "mostrar registros de fallos"

Mostrar registro de fallos

Muestra el contenido de un registro de fallos

"mostrar registro de fallos crash_2023-01-01"

Eliminar registros de fallos

Elimina los registros de fallos

"eliminar registros de fallos", "borrar registros de fallos"

🔧 Comandos adicionales

Dominio

Descripción

Ejemplo

Instalar dylib

Instala una biblioteca dinámica

"instalar dylib /ruta/a/biblioteca.dylib"

Abrir URL

Abre una URL en el simulador.

"abrir URL

https://ejemplo.com

"

llavero transparente

Limpia el llavero del simulador.

"Llavero transparente"

Establecer ubicación

Establece la ubicación del simulador.

"establecer ubicación 37.7749, -122.4194"

Agregar medios

Agrega medios al carrete de la cámara

"añadir medio /ruta/a/imagen.jpg"

Aprobar permisos

Aprueba los permisos de la aplicación

"Aprobar permisos com.example.app fotos cámara"

Actualizar contactos

Actualiza la base de datos de contactos

"actualizar contactos /ruta/a/contactos.sqlite"

La interfaz admite todos los comandos disponibles en la herramienta CLI de idb, lo que proporciona un conjunto completo de operaciones para la automatización del simulador de iOS.

🔍 Arquitectura

El servidor consta de tres componentes principales:

  1. IDBManager : Componente de bajo nivel que interactúa directamente con simuladores de iOS a través de idb.

  2. NLParser : Componente que interpreta instrucciones en lenguaje natural y las convierte en comandos estructurados.

  3. MCPOrchestrator : Componente central que coordina las interacciones entre el analizador y el IDBManager.

Estos componentes se conectan mediante adaptadores:

  • ParserToOrchestrator : convierte los resultados del analizador en comandos del orquestador.

  • OrchestratorToIDB : traduce los comandos del orquestador en llamadas IDBManager.

🔌 Integración MCP

Para utilizar este servidor con el Protocolo de Contexto de Modelo:

  1. Agregue el servidor a su configuración de MCP:

{ "mcpServers": { "ios-simulator": { "command": "node", "args": ["/path/to/mcp-server-simulator-ios-idb/dist/index.js"], "env": {} } } }
  1. Conéctese al servidor en su aplicación LLM:

const result = await useMcpTool({ serverName: "ios-simulator", toolName: "process-instruction", arguments: { instruction: "create simulator session" } });

🙏 Agradecimientos

Este proyecto no sería posible sin facebook/idb , que proporciona las funciones básicas de control del simulador de iOS. Agradecemos sinceramente al equipo de Facebook/Meta y a todos los colaboradores del proyecto idb por crear y mantener una herramienta tan potente y fiable.

📄 Licencia

Esta herramienta está disponible como código abierto bajo los términos de Apache-2.0.

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    An MCP server that enables LLMs to interact with Moodle platforms to manage courses, students, assignments, and quizzes through natural language commands.
    Last updated -
    7
    17
    MIT License
    • Apple
  • A
    security
    F
    license
    A
    quality
    An application that demonstrates the future of user interactions through natural language with LLMs, enabling user registration, authentication, and data interaction exclusively via Model Context Protocol (MCP) tools.
    Last updated -
    11
    57
  • A
    security
    A
    license
    A
    quality
    interactive-mcp
    Last updated -
    5
    115
    298
    TypeScript
    MIT License
    • Apple
    • Linux

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

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