xcsimctl
Gerenciar simuladores do Xcode.
GitHub
1
Experimente este MCPPatrocinadoDocumentação
Servidor MCP SimCtl
Um servidor Model Context Protocol (MCP) que fornece acesso estruturado ao gerenciamento do Simulador iOS por meio de comandos xcrun simctl.
Instalação
Método 1: Usando uvx
-
Pré-requisitos:
- Python 3.13+
- Xcode com Command Line Tools instalado
- uvx:
curl -LsSf https://astral.sh/uv/install.sh | sh
-
Execute diretamente com uvx:
uvx simctl-mcp-server
Método 2: Instalação para Desenvolvimento Local
-
Pré-requisitos:
- Python 3.13+
- Xcode com Command Line Tools instalado
-
Clone e instale:
git clone https://github.com/nzrsky/simctl-mcp-server cd simctl-mcp-server pip install . -
Execute o servidor:
simctl-mcp-server
Método 3: Compilar a partir do Código Fonte
- Compile o wheel:
python -m build --wheel pip install dist/simctl_mcp_server-0.1.0-py3-none-any.whl
Configuração
Para Claude Desktop
Adicione ao seu ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"simctl": {
"command": "simctl-mcp-server",
"args": [],
"env": {}
}
}
}
Ou se estiver usando uvx:
{
"mcpServers": {
"simctl": {
"command": "uvx",
"args": ["simctl-mcp-server"],
"env": {}
}
}
}
Para VS Code com Extensão MCP
- Instale a Extensão MCP no marketplace do VS Code
- Adicione a configuração do servidor às configurações do VS Code (
settings.json):
{
"mcp.servers": {
"simctl": {
"command": "simctl-mcp-server",
"args": [],
"env": {}
}
}
}
Ou se estiver usando uvx:
{
"mcp.servers": {
"simctl": {
"command": "uvx",
"args": ["simctl-mcp-server"],
"env": {}
}
}
}
- Reinicie o VS Code para carregar o servidor MCP
- Use a Paleta de Comandos (
Cmd+Shift+P) e pesquise por comandos "MCP" para interagir com as ferramentas do simulador
Para Outros Clientes MCP
O servidor executa em stdio, então você pode invocá-lo diretamente:
Com o pacote instalado:
simctl-mcp-server
Com uvx:
uvx simctl-mcp-server
Ferramentas Disponíveis
Gerenciamento de Dispositivos
simctl_list_devices- Lista todos os simuladores e seus estadossimctl_boot_device- Inicializa um simuladorsimctl_shutdown_device- Desliga um simuladorsimctl_create_device- Cria um novo simuladorsimctl_delete_device- Exclui simuladores
Gerenciamento de Aplicativos
simctl_install_app- Instala um aplicativo (pacote .app ou .ipa)simctl_launch_app- Inicia um aplicativo com opçõessimctl_terminate_app- Encerra um aplicativo em execução
Mídia e Capturas de Tela
simctl_screenshot- Tira capturas de telasimctl_record_video- Grava vídeo (inicia a gravação)
Testes e Desenvolvimento
simctl_push_notification- Envia notificações pushsimctl_privacy_control- Gerencia permissões de aplicativossimctl_set_location- Define localização/GPS do dispositivosimctl_status_bar_override- Substitui a aparência da barra de statussimctl_ui_appearance- Controla o modo claro/escuro
Exemplos de Uso
Operações Básicas de Dispositivo
# List all devices
"List all available iOS simulators"
# Boot a specific device
"Boot the iPhone 15 Pro simulator"
# Create a new simulator
"Create a new iPhone 14 simulator named 'Test Device' with iOS 17.0"
Testes de Aplicativos
# Install and launch an app
"Install MyApp.app on the booted simulator and launch it"
# Take a screenshot
"Take a screenshot of the current simulator and save it to ~/Desktop/screenshot.png"
# Send a push notification
"Send a push notification with title 'Hello' and body 'Test message' to com.example.myapp"
Configuração de Testes de UI
# Set up a controlled testing environment
"Set the simulator to dark mode, override the status bar to show full battery and strong WiFi, and set the time to 9:41 AM"
# Grant permissions for testing
"Grant photo library access to com.example.myapp on the booted simulator"
Testes de Localização
# Set specific location
"Set the simulator location to Apple Park (37.334606, -122.009102)"
# Clear location
"Clear the simulated location on the booted device"
Tratamento de Erros
O servidor inclui tratamento abrangente de erros:
- Falhas de comando: Retorna mensagens de erro detalhadas do simctl
- Xcode ausente: Detecta quando xcrun simctl não está disponível
- Parâmetros inválidos: Valida os parâmetros de entrada antes da execução
- Operações de arquivo: Gerencia arquivos temporários para notificações push com segurança
Considerações de Segurança
- O servidor expõe apenas operações de leitura e gerenciamento do simulador
- Sem acesso ao sistema de arquivos do host além dos caminhos de aplicativos especificados
- Os payloads de notificações push são validados quanto à estrutura
- As alterações de permissões de privacidade são explícitas e registradas
Notas de Desenvolvimento
- Construído especificamente para fluxos de trabalho de desenvolvimento iOS
- Otimizado para tarefas comuns de gerenciamento de simuladores
- Análise de saída estruturada para respostas JSON
- Suporte para operações individuais e em lote
- Compatível com recursos do simulador do Xcode 15+