local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Leverages Facebook's idb tool to interact with iOS simulators, enabling app installation, UI automation, and debugging features.
Enables control of iOS simulators through natural language commands, supporting simulator management, app installation and launching, UI interaction, accessibility testing, screenshot/video capture, debugging, and crash log analysis.
Utilizes Meta's idb technology to provide iOS simulator control, supporting app testing, UI automation, and device management.
📱 Simulador de servidor MCP para iOS
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.
🎮 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:
- Simplemente pregúntele a Cline:
- Cline manejará el proceso de instalación automáticamente, incluida la gestión de dependencias y la configuración.
Alternativamente, puedes instalarlo manualmente:
El proceso de instalación se realizará automáticamente:
- Comprueba si estás ejecutando macOS
- Instalar idb-companion mediante Homebrew
- 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:
- Agregue el servidor a su configuración de MCP en Claude Desktop:
- El LLM ahora puede usar comandos de lenguaje natural para controlar simuladores de iOS:
📚 Uso como Biblioteca
También puedes utilizar este paquete como biblioteca en tus propios proyectos:
🔰 Uso básico
🚀 Uso avanzado
También puedes utilizar los componentes individuales directamente:
🏗️ Estructura del proyecto
🎯 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:
- IDBManager : Componente de bajo nivel que interactúa directamente con simuladores de iOS a través de idb.
- NLParser : Componente que interpreta instrucciones en lenguaje natural y las convierte en comandos estructurados.
- 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:
- Agregue el servidor a su configuración de MCP:
- Conéctese al servidor en su aplicación LLM:
🙏 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.
This server cannot be installed
Un servidor MCP que permite a los LLM interactuar con simuladores de iOS a través de comandos de lenguaje natural.