Control, inspect, test, and capture iOS Simulator sessions through MCP tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Ios Simulator MCP.
get_booted_sim_idGet the ID of the currently booted iOS simulator
open_simulatorOpens the iOS Simulator application
ui_describe_allDescribes accessibility information for the entire screen in the iOS Simulator
ui_tapTap on the screen in the iOS Simulator
ui_typeInput text into the iOS Simulator
ui_swipeSwipe on the screen in the iOS Simulator
The ios-simulator-mcp MCP server gives an MCP client tools for operating an iOS Simulator. It can open the Simulator application, identify the currently booted device, install .app or .ipa bundles, launch or terminate apps by bundle identifier, and list installed apps with their identifiers and display names.
For UI automation, it supports coordinate-based taps, text entry, and swipes. It can also inspect the accessibility hierarchy for the full screen, return the element at a coordinate, or search for elements by accessibility label or unique ID. These capabilities make it suitable for checking both visible behavior and accessibility metadata during development or testing.
The server belongs in the OS Automation category. It also handles URLs and deep links, including HTTPS links, custom schemes, and universal links, which can be used to exercise routing and OAuth redirect flows.
MCP clients call the server’s tools with parameters such as a simulator UDID, screen coordinates, bundle identifier, app path, or output path. Most simulator-facing tools accept an optional udid; when it is omitted, the client can first call get_booted_sim_id to identify the active simulator. The target UDID can also be supplied through the IDB_UDID environment variable for the UI-related operations that support it.
UI descriptions and element searches use the simulator’s accessibility information. Coordinate actions use x and y values, while swipes can specify start and end coordinates, duration, and step size. App launches can optionally terminate an already-running process and pass environment variables to the launched app through simctl’s SIMCTL_CHILD_ mechanism.
The ios-simulator-mcp MCP server uses simulator controls for screenshots and recordings. ui_view returns compressed image content for the current view, while screenshot saves an image in a selected format. record_video writes a simulator recording, and stop_recording ends it.
The repository publishes an npm package named ios-simulator-mcp. The Cursor installation configuration shown by the project runs it with npx -y ios-simulator-mcp, so an MCP client must be configured to start that stdio command. The provided material does not specify additional installation steps or a required environment variable.
Screenshot and video tools accept explicit output paths. If a path is omitted for video, or if a screenshot path is relative, output uses the directory named by IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR; when that variable is unset, the fallback directory is ~/Downloads.
Use version 1.3.3 or later. The project notes that command-injection vulnerabilities in versions before 1.3.3 were fixed in that release.
get_booted_sim_id and open_simulator.ui_describe_all, ui_describe_point, and ui_find_element.ui_tap, ui_type, and ui_swipe.ui_view, screenshot, record_video, and stop_recording.install_app, launch_app, terminate_app, and list_apps.open_url.The supplied tool definitions identify iOS Simulator as the target; they do not describe control of physical iOS devices. Text input is limited to printable ASCII characters. Coordinate-based actions depend on the simulator’s screen layout and display selection.
The server relies on simulator and simctl behavior, including the availability of a booted target for operations that require one. Video recording uses killall when stopped. App launch environment variables are passed using SIMCTL_CHILD_ because support for direct --env or --envs options varies across Xcode versions.
Screenshot and recording options include internal or external displays and mask handling for non-rectangular displays. The available material does not specify support for Android, physical-device deployment, or automated test-report generation.
Always refer to the official documentation for the most accurate and up-to-date information.
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ios-simulator-mcp)<a href="https://allmcps.com/mcp/ios-simulator-mcp"><img src="https://allmcps.com/api/badge/ios-simulator-mcp?style=directory" alt="Ios Simulator MCP on AllMCPs" /></a>