Data as of

iOS Simulator MCP Server for Cursor: Setup & Config

Cursor: Let an MCP assistant inspect and operate an iOS simulator on macOS.

What you can do with iOS Simulator in Cursor

Choose it for assistant-led simulator QA using accessibility data, gestures, and visual captures.

  • Capture screenshots or videos for QA evidence.
  • Install and launch a simulator build and test deep links.

Before you start: iOS Simulator in Cursor

  • Node.js
  • macOS
  • Xcode and installed iOS simulators
  • Facebook IDB

Use release 1.3.3 or later according to the README security notice. The default capture directory is ~/Downloads when no output directory is configured.

iOS Simulator Cursor configuration

  1. Choose Cursor configuration scope

    For iOS Simulator MCP Server, open Project: .cursor/mcp.json User: ~/.cursor/mcp.json. Merge into mcpServers at project or user scope.

  2. Add iOS Simulator MCP Server to Cursor

    Use the ios-simulator-mcp entry below in mcpServers. Keep iOS Simulator MCP Server's documented stdio connection fields and your other Cursor entries.

  3. Check iOS Simulator MCP Server in Cursor

    iOS Simulator MCP Server: Enable in Cursor’s MCP settings; inspect tools.

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

JSON
{
  "mcpServers": {
    "ios-simulator-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ios-simulator-mcp"
      ],
      "env": {
        "IDB_UDID": "<optional target simulator UUID>",
        "IOS_SIMULATOR_MCP_FILTERED_TOOLS": "<optional comma-separated tool names to exclude>",
        "IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR": "<optional directory for screenshots and recordings>"
      }
    }
  }
}

iOS Simulator tools available to Cursor

iOS Simulator's stored tool list documents 17 tools; compare it with Cursor's connected tool list, because the stored list is not a live check.

get_booted_sim_id

Find get_booted_sim_id under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Identify the simulator that is currently running.

open_simulator

Find open_simulator under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

ui_describe_all

Find ui_describe_all under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

ui_tap

Find ui_tap under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

ui_type

Find ui_type under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

ui_swipe

Find ui_swipe under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

ui_describe_point

Find ui_describe_point under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

ui_find_element

Find ui_find_element under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

ui_view

Find ui_view under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

screenshot

Find screenshot under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Save a simulator screen capture to a file.

record_video

Find record_video under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Begin a simulator screen recording through simctl.

stop_recording

Find stop_recording under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

End the active simulator video capture.

install_app

Find install_app under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Load a local .app bundle or .ipa package into the simulator.

launch_app

Find launch_app under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Start an installed app using its bundle identifier.

terminate_app

Find terminate_app under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Stop a running app identified by its bundle ID.

open_url

Find open_url under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Open a URL in the simulator for navigation or link testing.

list_apps

Find list_apps under iOS Simulator in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Enumerate installed apps with their names and bundle IDs.

iOS Simulator: full stored tool descriptions

Troubleshooting iOS Simulator in Cursor

  • Cursor must find npx ios-simulator-mcp (Node.js/npm) for iOS Simulator MCP Server. Enable the project/user entry in MCP settings and inspect its tools.
  • Review IDB_UDID, IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR, IOS_SIMULATOR_MCP_FILTERED_TOOLS for iOS Simulator MCP Server before sharing project .cursor/mcp.json; project scope travels with the repository.
  • iOS Simulator MCP Server uses stdio here: Cursor must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Requires macOS, Xcode simulators, and IDB.
  • Known limitation: The typing tool accepts printable ASCII only.
  • Known limitation: Versions before 1.3.3 have a documented command injection issue.
  • General Cursor troubleshooting lives in the /clients/cursor guide.

iOS Simulator MCP Server — details. Cursor guide

Frequently asked questions

Cursor's iOS Simulator MCP Server entry belongs under mcpServers in .cursor/mcp.json (project) or ~/.cursor/mcp.json (user). Confirm the active scope in MCP settings.

Cursor's ios-simulator-mcp example uses stdio.

iOS Simulator MCP Server's Cursor configuration invokes npx ios-simulator-mcp (Node.js/npm).

Cursor's iOS Simulator MCP Server example references IDB_UDID, IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR, IOS_SIMULATOR_MCP_FILTERED_TOOLS. Check these names if startup or authentication fails; the example alone does not distinguish required from optional values.

iOS Simulator MCP Server's stored list contains 17 tools, including get_booted_sim_id, open_simulator, ui_describe_all. Compare those names with Cursor's connected tool list; the stored list is not a live check.

The README uses ~/Downloads unless IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR is configured.

The security notice says the issue is fixed in version 1.3.3 and recommends that version or newer.