iOS simctl MCP server
A Model Context Protocol (MCP) server that provides structured access to iOS Simulator management via xcrun simctl commands.
Prerequisites:
curl -LsSf https://astral.sh/uv/install.sh | shRun directly with uvx:
uvx simctl-mcp-server
Prerequisites:
Clone and install:
git clone https://github.com/nzrsky/simctl-mcp-server
cd simctl-mcp-server
pip install .
Run the server:
simctl-mcp-server
python -m build --wheel
pip install dist/simctl_mcp_server-0.1.0-py3-none-any.whl
Add to your ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"simctl": {
"command": "simctl-mcp-server",
"args": [],
"env": {}
}
}
}
Or if using uvx:
{
"mcpServers": {
"simctl": {
"command": "uvx",
"args": ["simctl-mcp-server"],
"env": {}
}
}
}
settings.json):{
"mcp.servers": {
"simctl": {
"command": "simctl-mcp-server",
"args": [],
"env": {}
}
}
}
Or if using uvx:
{
"mcp.servers": {
"simctl": {
"command": "uvx",
"args": ["simctl-mcp-server"],
"env": {}
}
}
}
Cmd+Shift+P) and search for “MCP” commands to interact with the simulator toolsThe server runs on stdio, so you can invoke it directly:
With installed package:
simctl-mcp-server
With uvx:
uvx simctl-mcp-server
simctl_list_devices - List all simulators and their statessimctl_boot_device - Boot a simulatorsimctl_shutdown_device - Shutdown a simulatorsimctl_create_device - Create a new simulatorsimctl_delete_device - Delete simulatorssimctl_install_app - Install an app (.app bundle or .ipa)simctl_launch_app - Launch an app with optionssimctl_terminate_app - Terminate a running appsimctl_screenshot - Take screenshotssimctl_record_video - Record video (start recording)simctl_push_notification - Send push notificationssimctl_privacy_control - Manage app permissionssimctl_set_location - Set device location/GPSsimctl_status_bar_override - Override status bar appearancesimctl_ui_appearance - Control light/dark mode## 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"
## 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"
## 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"
## Set specific location
"Set the simulator location to Apple Park (37.334606, -122.009102)"
## Clear location
"Clear the simulated location on the booted device"
The server includes comprehensive error handling: