Xcode-Studio-MCP
Servidor MCP unificado para Xcode + iOS Simulator: compila, despliega, captura pantallas e interactúa con tu app iOS desde Claude Code, Cursor o cualquier cliente MCP. Construido en Swift. Binario único. No requiere runtime de Node/Python.
Documentación
xcode-studio-mcp
Servidor MCP unificado para Xcode + iOS Simulator — compila, despliega, captura pantallas e interactúa con tu app iOS desde Claude Code, Codex, Cursor, o cualquier cliente MCP.
Construido en Swift. Binario único. Sin necesidad de runtime de Node/Python.
Por Qué Existe
Hoy necesitas 2-3 herramientas separadas para completar el ciclo completo de desarrollo iOS con un agente de IA. xcode-studio-mcp las combina en una sola:
Write code → Build → Deploy to Simulator → Screenshot → Tap/Type → Verify
Herramientas
| Herramienta | Descripción |
|---|---|
xcode_build | Compila un proyecto Xcode con salida de errores estructurada (archivo, línea, columna, severidad, mensaje) |
xcode_run | Compila y lanza una app en el iOS Simulator |
simulator_screenshot | Captura la pantalla del Simulator como imagen PNG |
simulator_tap | Toca en las coordenadas x,y de la pantalla del Simulator |
simulator_type | Escribe texto en el campo actualmente enfocado |
simulator_describe | Obtiene el árbol de accesibilidad de la pantalla actual (JSON) |
Parámetros de las Herramientas
xcode_build
| Parámetro | Requerido | Descripción |
|---|---|---|
project_path | Sí | Ruta al directorio del proyecto Xcode, .xcodeproj, o .xcworkspace |
scheme | No | Esquema de compilación (se detecta automáticamente si se omite) |
configuration | No | Debug (por defecto) o Release |
destination | No | Destino de compilación (por defecto, el simulador iniciado) |
xcode_run
| Parámetro | Requerido | Descripción |
|---|---|---|
project_path | Sí | Ruta al proyecto Xcode |
bundle_identifier | Sí | ID del bundle de la app (p. ej. com.example.MyApp) |
scheme | No | Esquema de compilación (se detecta automáticamente) |
simulator_udid | No | Simulador de destino (por defecto, el iniciado) |
simulator_screenshot
| Parámetro | Requerido | Descripción |
|---|---|---|
simulator_udid | No | Simulador de destino (por defecto, el iniciado) |
simulator_tap
| Parámetro | Requerido | Descripción |
|---|---|---|
x | Sí | Coordenada X |
y | Sí | Coordenada Y |
duration | No | Duración de la pulsación en segundos (para pulsación larga) |
simulator_udid | No | Simulador de destino |
simulator_type
| Parámetro | Requerido | Descripción |
|---|---|---|
text | Sí | Texto a escribir |
simulator_udid | No | Simulador de destino |
simulator_describe
| Parámetro | Requerido | Descripción |
|---|---|---|
simulator_udid | No | Simulador de destino |
Inicio Rápido
Requisitos Previos
- macOS con Xcode instalado
- Para las herramientas de interacción de UI (
tap,type,describe):brew tap facebook/fb && brew install idb-companion pip3 install fb-idb
Compilación
git clone https://github.com/kevinswint/xcode-studio-mcp.git
cd xcode-studio-mcp
swift build -c release
Configurar Claude Code
Añade a tu configuración MCP de Claude Code:
{
"mcpServers": {
"xcode-studio-mcp": {
"command": "/path/to/xcode-studio-mcp/.build/release/XcodeStudioMCP"
}
}
}
Flujo de Trabajo de Ejemplo
You: Build and run my app at ~/Projects/MyApp
Claude: [calls xcode_build] Build succeeded with 0 errors
[calls xcode_run] App launched (PID 12345)
[calls simulator_screenshot] Here's what the app looks like...
[calls simulator_describe] I can see a "Sign In" button and email/password fields
[calls simulator_tap] Tapped the email field
[calls simulator_type] Typed "test@example.com"
[calls simulator_screenshot] Here's the current state...
Arquitectura
┌─────────────────────────────┐
│ MCP Protocol Layer │ stdio transport (Swift MCP SDK)
├─────────────────────────────┤
│ Tool Implementations │ 6 tools, structured error output
├──────────┬──────────────────┤
│ xcodebuild│ simctl │ idb │ native process calls
│ wrapper │ wrapper │ CLI │
└──────────┴──────────┴──────┘
Construido en Swift con cero dependencias de runtime de Node/Python (la CLI de idb solo se necesita para las herramientas de interacción de UI).
Hoja de Ruta
- v0.1 (actual): Herramientas principales de compilación + simulador
- v1.0: Navegación semántica de UI ("toca el botón Iniciar sesión"), diff visual, manipulación de archivos de proyecto Xcode, operaciones compuestas, captura de vista previa de SwiftUI
Proyectos Relacionados
| Proyecto | Qué Hace | Diferencia |
|---|---|---|
| XcodeBuildMCP | Solo compilación + pruebas | Sin interacción de UI con el simulador |
| mobile-mcp | UI de simulador multiplataforma | Sin soporte de compilación de Xcode |
| ios-simulator-mcp | Simulador vía IDB | Sin compilación, depende de IDB para todo |
xcode-studio-mcp combina compilación e interacción en un solo servidor.
Contribuciones
Se aceptan PRs. El código base tiene ~750 líneas de Swift organizadas en Tools, Services y Models.
Licencia
MIT