Summary
The simulator chores, without remembering simctl's flags.
Booting a device, granting a location permission, faking the status bar for a screenshot — all one-line simctl invocations nobody remembers, asked for here in words.
What it is
An MCP server over xcrun simctl. Device lifecycle, app install and launch, media capture, and the simulator-only controls — location, privacy permissions, status bar contents, light or dark appearance, push notifications — are each exposed as a tool.
What you get
- Simulators listed with their states, and created, booted, shut down or deleted
- An app installed from a .app bundle or an .ipa, then launched and terminated
- A screenshot taken, or the screen recorded to video
- A simulated location set
- Privacy permissions granted or revoked without tapping through the alert
- The status bar overridden, and light or dark appearance switched
- A push notification delivered to the running simulator
Requirements
macOS with Xcode and the Command Line Tools, plus Python 3.13 or newer. Run it with uvx simctl-mcp-server, or install the package. No account, no key.
Setup effort
One command — simctl-mcp-server
