Xcode-Studio-MCP
xcode-studio-mcp
Servidor MCP unificado para Xcode + Simulador de iOS: compila, despliega, captura pantallas e interactúa con tu aplicación iOS desde Claude Code, Codex, Cursor o cualquier cliente MCP.
Desarrollado en Swift. Binario único. No requiere entorno de ejecución de Node/Python.
Por qué existe esto
Actualmente necesitas 2 o 3 herramientas separadas para realizar el ciclo completo de desarrollo de iOS con un agente de IA. xcode-studio-mcp las combina en una sola:
Write code → Build → Deploy to Simulator → Screenshot → Tap/Type → VerifyHerramientas
Herramienta | Descripción |
| Compila un proyecto de Xcode con salida de errores estructurada (archivo, línea, columna, gravedad, mensaje) |
| Compila y lanza una aplicación en el Simulador de iOS |
| Captura la pantalla del Simulador como una imagen PNG |
| Toca en las coordenadas x,y de la pantalla del Simulador |
| Escribe texto en el campo enfocado actualmente |
| Obtiene el árbol de accesibilidad de la pantalla actual (JSON) |
Related MCP server: xcforge
Parámetros de las herramientas
xcode_build
Parámetro | Requerido | Descripción |
| Sí | Ruta al directorio del proyecto Xcode, |
| No | Esquema de compilación (detectado automáticamente si se omite) |
| No |
|
| No | Destino de compilación (predeterminado al simulador iniciado) |
xcode_run
Parámetro | Requerido | Descripción |
| Sí | Ruta al proyecto Xcode |
| Sí | ID del bundle de la aplicación (ej. |
| No | Esquema de compilación (detectado automáticamente) |
| No | Simulador de destino (predeterminado al iniciado) |
simulator_screenshot
Parámetro | Requerido | Descripción |
| No | Simulador de destino (predeterminado al iniciado) |
simulator_tap
Parámetro | Requerido | Descripción |
| Sí | Coordenada X |
| Sí | Coordenada Y |
| No | Duración de la pulsación en segundos (para pulsación larga) |
| No | Simulador de destino |
simulator_type
Parámetro | Requerido | Descripción |
| Sí | Texto a escribir |
| No | Simulador de destino |
simulator_describe
Parámetro | Requerido | Descripción |
| No | Simulador de destino |
Inicio rápido
Requisitos previos
macOS con Xcode instalado
Para herramientas de interacción de interfaz de usuario (
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 releaseConfigurar Claude Code
Añade a tu configuración de MCP de Claude Code:
{
"mcpServers": {
"xcode-studio-mcp": {
"command": "/path/to/xcode-studio-mcp/.build/release/XcodeStudioMCP"
}
}
}Ejemplo de flujo de trabajo
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 │
└──────────┴──────────┴──────┘Desarrollado en Swift sin dependencias de tiempo de ejecución de Node/Python (la CLI de idb solo es necesaria para las herramientas de interacción de interfaz de usuario).
Hoja de ruta
v0.1 (actual): Compilación básica + herramientas de simulador
v1.0: Navegación semántica de la interfaz de usuario ("toca el botón Iniciar sesión"), comparación visual, manipulación de archivos de proyecto Xcode, operaciones compuestas, captura de vista previa de SwiftUI
Proyectos relacionados
Proyecto | Qué hace | Diferencia |
Solo compilación + pruebas | Sin interacción de interfaz de usuario del simulador | |
Interfaz de usuario de simulador multiplataforma | Sin soporte de compilación de Xcode | |
Simulador vía IDB | Sin compilación, depende de IDB para todo |
xcode-studio-mcp combina la compilación e interacción en un solo servidor.
Contribuciones
Las solicitudes de extracción (PRs) son bienvenidas. El código base tiene unas 750 líneas de Swift organizadas en Herramientas, Servicios y Modelos.
Licencia
MIT
Available Tools
6 toolssimulator_describeA
Get the accessibility tree of the current iOS Simulator screen as JSON. Useful for finding UI elements to interact with. Requires idb (pip3 install fb-idb).
Inputs: simulator_udid.
simulator_screenshotA
Capture a screenshot of the iOS Simulator screen. Returns the image as base64-encoded PNG.
Inputs: simulator_udid.
simulator_tapA
Tap at specific coordinates on the iOS Simulator screen. Requires idb (pip3 install fb-idb).
Inputs: x (required), y (required), duration, simulator_udid.
simulator_typeA
Type text into the currently focused field on the iOS Simulator. Requires idb (pip3 install fb-idb).
Inputs: text (required), simulator_udid.
xcode_buildB
Build an Xcode project or workspace. Returns structured diagnostics with file, line, column, severity, and message for each error/warning.
Inputs: project_path (required), configuration, destination, scheme.
xcode_runA
Build an Xcode project and launch the app in the iOS Simulator. Returns build errors if the build fails, or a success message with the launched process ID.
Inputs: bundle_identifier (required), project_path (required), configuration, scheme, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct action: building, running, and simulator interactions (screenshot, tap, type, describe) are clearly separated. There is no overlap in purpose, making it easy for an agent to select the correct tool.
Tools are grouped into two clear namespaces: 'xcode_' for build/run and 'simulator_' for simulator interactions. However, the same verb 'run' is used for xcode_run (launch app) while the simulator tools use direct action verbs (tap, type, describe). The pattern is readable but not perfectly uniform.
With only 6 tools, the set is well-scoped for core Xcode build/run and simulator interaction workflows. Each tool serves a distinct purpose, and no tool feels redundant or missing at this scale.
The set covers building, running, and basic UI interaction (via describe/tap/type). A minor gap is the lack of a tool to terminate the running app, and no way to list available simulators, but agents can work around this for common tasks.
Maintenance
Related MCP Connectors
Cloud iPhones and Macs with Xcode for AI agents: build, run and test iOS apps, use the screen.
Cloud iPhone Simulators for AI agents: build the Xcode project, read the screen, tap by label, test.
The cloud Mac alone, with Xcode, for AI agents: run commands, build and test, use the screen.
Build, run, and inspect iOS apps in disposable hosted Simulators from cloud coding agents.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceHigh-performance MCP server for iOS development and test automation. Gives AI coding assistants direct access to iOS simulators with sub-20ms screenshots, UI interaction, building, testing, and an intelligent operator mode.10MIT- AlicenseNot gradedqualityBmaintenanceMCP server and CLI for iOS development — build, test, automate, and diagnose from any AI agent or terminal.2MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for iOS Simulator automation. Enables AI assistants to visually interact with iOS apps running in the simulator.36 npm1MIT
- AlicenseBqualityCmaintenanceA comprehensive MCP server for iOS/macOS development that gives AI assistants full control over Xcode build, test, simulator management, and app deployment.6522 npm2MIT