Skip to main content
Glama
Xcode-Studio-MCP

Xcode-Studio-MCP

by kevinswint

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.

License: MIT Swift 6.0+ MCP

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 → Verify

Herramientas

Herramienta

Descripción

xcode_build

Compila un proyecto de Xcode con salida de errores estructurada (archivo, línea, columna, gravedad, mensaje)

xcode_run

Compila y lanza una aplicación en el Simulador de iOS

simulator_screenshot

Captura la pantalla del Simulador como una imagen PNG

simulator_tap

Toca en las coordenadas x,y de la pantalla del Simulador

simulator_type

Escribe texto en el campo enfocado actualmente

simulator_describe

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

project_path

Sí

Ruta al directorio del proyecto Xcode, .xcodeproj o .xcworkspace

scheme

No

Esquema de compilación (detectado automáticamente si se omite)

configuration

No

Debug (predeterminado) o Release

destination

No

Destino de compilación (predeterminado al simulador iniciado)

xcode_run

Parámetro

Requerido

Descripción

project_path

Sí

Ruta al proyecto Xcode

bundle_identifier

Sí

ID del bundle de la aplicación (ej. com.example.MyApp)

scheme

No

Esquema de compilación (detectado automáticamente)

simulator_udid

No

Simulador de destino (predeterminado al iniciado)

simulator_screenshot

Parámetro

Requerido

Descripción

simulator_udid

No

Simulador de destino (predeterminado al 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 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 release

Configurar 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

XcodeBuildMCP

Solo compilación + pruebas

Sin interacción de interfaz de usuario del simulador

mobile-mcp

Interfaz de usuario 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 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 tools
simulator_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

    A3.7/5.0

    Scored across 6 tools

    Disambiguation5/5

    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.

    Naming Consistency3/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      High-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.
      10
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server for iOS Simulator automation. Enables AI assistants to visually interact with iOS apps running in the simulator.
      36 npm
      1
      MIT