Overview
What is simctl-mcp?
simctl-mcp is a Model Context Protocol (MCP) server implementation that provides programmatic control over iOS Simulators. It enables AI assistants and automation tools to manage devices, apps, permissions, media, and system settings within the iOS Simulator environment.
How to use simctl-mcp?
Run npx -y simctl-mcp (STDIO mode) or npx simctl-mcp --http (HTTP mode, default port 8081). Add the JSON configuration to .cursor/mcp.json or .vscode/mcp.json to register the server with compatible clients.
Key features of simctl-mcp
- Device management: create, delete, boot, shutdown, and list devices, types, and runtimes
- App management: install, uninstall, launch, terminate, and inspect apps
- App permissions: grant, revoke, and reset permissions for installed apps
- System features: open URLs, add media, manage environment variables and appearance
- Certificate & security: add root/regular certificates, reset keychain
- Media & content: take screenshots, get/set pasteboard content, send simulated push notifications
Use cases of simctl-mcp
- Automate simulator provisioning and testing in CI/CD pipelines
- Quickly open URLs or deep links in a specific simulator from an AI assistant
- Install, launch, and manage app permissions for UI automation flows
- Inject push notifications or set clipboard content for end‑to‑end testing
- Capture screenshots and manage certificates for security‑related tests
FAQ from simctl-mcp
How do I start simctl-mcp in HTTP mode?
Add the --http flag: npx simctl-mcp --http. Optionally set a custom port with --port <number> or the PORT environment variable.
How do I configure simctl-mcp for Cursor or VS Code?
Add the following JSON to .cursor/mcp.json or .vscode/mcp.json: {"mcpServers":{"simctl-mcp":{"command":"npx","args":["-y","simctl-mcp"]}}}.
What operations does simctl-mcp support?
It provides tools for device management, app management, app permissions, system features (e.g., open URLs, push notifications), certificate management, and media/content actions.
Does simctl-mcp require any dependencies?
No explicit dependencies beyond Node.js (via npx). The server is run directly with npx -y simctl-mcp.
What transport modes does simctl-mcp support?
Two modes: STDIO (default) and HTTP (with --http flag). No authentication or other transports are mentioned.