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.
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
| Ferramenta | Descrição |
|---|---|
xcode_build | Compila um projeto Xcode com saída de erros estruturada (arquivo, linha, coluna, gravidade, mensagem) |
xcode_run | Compila e inicia um aplicativo no iOS Simulator |
simulator_screenshot | Captura a tela do Simulator como uma imagem PNG |
simulator_tap | Toca nas coordenadas x,y na tela do Simulator |
simulator_type | Digita texto no campo atualmente focado |
simulator_describe | Obtém a árvore de acessibilidade da tela atual (JSON) |
Parâmetros das Ferramentas
xcode_build
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
project_path | Sim | Caminho para o diretório do projeto Xcode, .xcodeproj ou .xcworkspace |
scheme | Não | Esquema de build (detectado automaticamente se omitido) |
configuration | Não | Debug (padrão) ou Release |
destination | Não | Destino do build (padrão: simulator iniciado) |
xcode_run
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
project_path | Sim | Caminho para o projeto Xcode |
bundle_identifier | Sim | Bundle ID do aplicativo (ex.: com.example.MyApp) |
scheme | Não | Esquema de build (detectado automaticamente) |
simulator_udid | Não | Simulator de destino (padrão: iniciado) |
simulator_screenshot
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
simulator_udid | Não | Simulator de destino (padrão: iniciado) |
simulator_tap
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
x | Sim | Coordenada X |
y | Sim | Coordenada Y |
duration | Não | Duração do toque em segundos (para toque longo) |
simulator_udid | Não | Simulator de destino |
simulator_type
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
text | Sim | Texto a ser digitado |
simulator_udid | Não | Simulator de destino |
simulator_describe
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
simulator_udid | Não | Simulator 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
| Projeto | O que faz | Diferença |
|---|---|---|
| XcodeBuildMCP | Apenas build + teste | Sem interação de UI no simulator |
| mobile-mcp | UI de simulator multiplataforma | Sem suporte a build Xcode |
| ios-simulator-mcp | Simulator via IDB | Sem 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