Xcode-Studio-MCP

Servidor MCP unificado para Xcode + iOS Simulator — compile, implante, capture telas e interaja com seu aplicativo iOS a partir do Claude Code, Cursor ou qualquer cliente MCP. Construído em Swift. Binário único. Sem necessidade de runtime Node/Python.

Documentação

xcode-studio-mcp

Servidor MCP unificado para Xcode + iOS Simulator — compile, implante, capture telas e interaja com seu aplicativo iOS a partir do Claude Code, Codex, Cursor ou qualquer cliente MCP.

Desenvolvido em Swift. Binário único. Sem necessidade de runtime Node/Python.

License: MIT Swift 6.0+ MCP

Por que isso existe

Hoje você precisa de 2 a 3 ferramentas separadas para fazer o ciclo completo de desenvolvimento iOS com um agente de IA. xcode-studio-mcp combina tudo em uma só:

Write code → Build → Deploy to Simulator → Screenshot → Tap/Type → Verify

Ferramentas

FerramentaDescrição
xcode_buildCompila um projeto Xcode com saída de erros estruturada (arquivo, linha, coluna, gravidade, mensagem)
xcode_runCompila e inicia um aplicativo no iOS Simulator
simulator_screenshotCaptura a tela do Simulator como uma imagem PNG
simulator_tapToca nas coordenadas x,y na tela do Simulator
simulator_typeDigita texto no campo atualmente focado
simulator_describeObtém a árvore de acessibilidade da tela atual (JSON)

Parâmetros das Ferramentas

xcode_build

ParâmetroObrigatórioDescrição
project_pathSimCaminho para o diretório do projeto Xcode, .xcodeproj ou .xcworkspace
schemeNãoEsquema de build (detectado automaticamente se omitido)
configurationNãoDebug (padrão) ou Release
destinationNãoDestino do build (padrão: simulator iniciado)

xcode_run

ParâmetroObrigatórioDescrição
project_pathSimCaminho para o projeto Xcode
bundle_identifierSimBundle ID do aplicativo (ex.: com.example.MyApp)
schemeNãoEsquema de build (detectado automaticamente)
simulator_udidNãoSimulator de destino (padrão: iniciado)

simulator_screenshot

ParâmetroObrigatórioDescrição
simulator_udidNãoSimulator de destino (padrão: iniciado)

simulator_tap

ParâmetroObrigatórioDescrição
xSimCoordenada X
ySimCoordenada Y
durationNãoDuração do toque em segundos (para toque longo)
simulator_udidNãoSimulator de destino

simulator_type

ParâmetroObrigatórioDescrição
textSimTexto a ser digitado
simulator_udidNãoSimulator de destino

simulator_describe

ParâmetroObrigatórioDescrição
simulator_udidNãoSimulator de destino

Início Rápido

Pré-requisitos

  • macOS com Xcode instalado
  • Para ferramentas de interação de UI (tap, type, describe):
    brew tap facebook/fb && brew install idb-companion
    pip3 install fb-idb
    

Compilar

git clone https://github.com/kevinswint/xcode-studio-mcp.git
cd xcode-studio-mcp
swift build -c release

Configurar o Claude Code

Adicione às configurações MCP do seu Claude Code:

{
  "mcpServers": {
    "xcode-studio-mcp": {
      "command": "/path/to/xcode-studio-mcp/.build/release/XcodeStudioMCP"
    }
  }
}

Exemplo de Fluxo de Trabalho

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...

Arquitetura

┌─────────────────────────────┐
│     MCP Protocol Layer      │  stdio transport (Swift MCP SDK)
├─────────────────────────────┤
│   Tool Implementations      │  6 tools, structured error output
├──────────┬──────────────────┤
│ xcodebuild│  simctl  │  idb │  native process calls
│  wrapper  │  wrapper │ CLI  │
└──────────┴──────────┴──────┘

Desenvolvido em Swift com zero dependências de runtime Node/Python (o CLI idb é necessário apenas para ferramentas de interação de UI).

Roadmap

  • v0.1 (atual): Ferramentas principais de build + simulator
  • v1.0: Navegação semântica de UI ("toque no botão Entrar"), diff visual, manipulação de arquivos de projeto Xcode, operações compostas, captura de preview do SwiftUI

Projetos Relacionados

ProjetoO que fazDiferença
XcodeBuildMCPApenas build + testeSem interação de UI no simulator
mobile-mcpUI de simulator multiplataformaSem suporte a build Xcode
ios-simulator-mcpSimulator via IDBSem build, depende do IDB para tudo

xcode-studio-mcp combina build e interação em um único servidor.

Contribuindo

PRs são bem-vindos. O código tem ~750 linhas de Swift organizadas em Tools, Services e Models.

Licença

MIT