ios_create_sessionLABSCO SUMMARY
Use the MCP path; the bundled CLI has known breakage.
The README is unusually candid about its own state: several CLI subcommands are listed as broken, with cli status, cli device list and cli session list working and cli ui screenshot and cli app list not. The MCP server and the Python API are the paths it recommends, and they are the ones worth wiring up. Everything here is macOS-only by nature — it is driving Xcode's simulator.
What it is
A control layer over iOS simulators, and optionally real devices, exposed as an MCP server. Work is organised into sessions: create one against a device, then install and launch apps, drive the UI, capture screenshots and video, and set location or permissions.
What you get
- Sessions —
ios_create_session,ios_list_sessions,ios_terminate_session - Devices —
ios_list_devices,ios_boot_device,ios_shutdown_device - Apps —
ios_install_app,ios_launch_app,ios_terminate_app,ios_uninstall_app,ios_list_apps - UI —
ios_tap,ios_double_tap,ios_long_press,ios_swipe,ios_swipe_direction,ios_input_text,ios_press_button - Capture —
ios_screenshot,ios_record_video,ios_get_screen_info - Environment —
ios_set_location,ios_set_location_by_name,ios_add_media,ios_set_status_bar,ios_set_appearance,ios_set_permission - Utilities —
ios_open_url,ios_get_logs,ios_clear_keychain,ios_focus_simulator
Requirements
macOS with Xcode, the Xcode Command Line Tools (xcode-select --install), and at least one iOS Simulator runtime. Published on PyPI as chuk-mcp-ios (latest release 0.1.5); the client entry runs it with uvx chuk-mcp-ios mcp, so nothing needs installing first. Real devices are optional and need more: Developer Mode enabled, an Apple Developer account for app installation, and one of idb, devicectl (Xcode 15+) or instruments.
Setup effort
Add the configuration to your client
USE CASES
Seeing what a screen actually looks like
Create a session against a simulator and take a screenshot the model can look at.
Walking through a flow without touching the mouse
Launch the app, tap and type your way through, and capture each step.
Testing location-dependent behaviour
Set the simulator's location by coordinates or by place name before opening the app.
Checking dark mode and permission states
Flip appearance and grant or deny a permission, then screenshot the result.
Finding out why the app misbehaved
Pull device logs after reproducing the problem rather than watching a console.
31 tools
Listed in project docs. Your client may show a different list.
ios_list_sessionsios_terminate_sessionios_list_devicesios_boot_deviceios_shutdown_deviceios_install_appios_launch_appios_terminate_appios_uninstall_appios_list_appsios_tapios_double_tapios_long_pressios_swipeios_swipe_directionios_input_textios_press_buttonios_screenshotios_record_videoios_get_screen_infoios_set_locationios_set_location_by_nameios_add_mediaios_open_urlios_set_status_barios_set_appearanceios_clear_keychainios_get_logsios_set_permissionios_focus_simulatorBEFORE YOU INSTALL
What to know first
Tools you get
31 tools named in the project's documentation.
Requires
- macOS with Xcode and the Xcode Command Line Tools (xcode-select --install)
- At least one iOS Simulator runtime
- uvx on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
MCP Clients
Claude Desktop
{
"mcpServers": {
"ios-control": {
"command": "uvx",
"args": [
"chuk-mcp-ios",
"mcp"
],
"env": {
"LOG_LEVEL": "INFO"
}
}
}
}