Data as of

iOS Simulator MCP Server for Claude Code: Setup & Config

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

What you can do with iOS Simulator in Claude Code

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

  • Check accessibility labels after an interface change.
  • Install and launch a simulator build and test deep links.

Before you start: iOS Simulator in Claude Code

  • 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 Claude Code configuration

  1. Choose Claude Code configuration scope

    For iOS Simulator MCP Server, open Project scope: .mcp.json at the repository root. Project JSON: merge into mcpServers; user scope: use the CLI.

  2. Add iOS Simulator MCP Server to Claude Code

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

  3. Check iOS Simulator MCP Server in Claude Code

    iOS Simulator MCP Server: Inspect claude mcp list and /mcp status.

Config file · Project scope: .mcp.json at the repository root

JSON
{
  "mcpServers": {
    "ios-simulator-mcp": {
      "type": "stdio",
      "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>"
      }
    }
  }
}

CLI (POSIX shell)
claude mcp add-json --scope project 'ios-simulator-mcp' '{"type":"stdio","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 Claude Code

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

get_booted_sim_id

For iOS Simulator's get_booted_sim_id, review the permission request and arguments in Claude Code before approval.

open_simulator

For iOS Simulator's open_simulator, review the permission request and arguments in Claude Code before approval.

ui_describe_all

For iOS Simulator's ui_describe_all, review the permission request and arguments in Claude Code before approval.

Read accessibility details for the visible simulator screen.

ui_tap

For iOS Simulator's ui_tap, review the permission request and arguments in Claude Code before approval.

Send a touch at specified screen coordinates.

ui_type

For iOS Simulator's ui_type, review the permission request and arguments in Claude Code before approval.

Enter printable ASCII text into the simulator.

ui_swipe

For iOS Simulator's ui_swipe, review the permission request and arguments in Claude Code before approval.

Perform a swipe between two screen positions.

ui_describe_point

For iOS Simulator's ui_describe_point, review the permission request and arguments in Claude Code before approval.

Inspect the accessibility element at a screen position.

ui_find_element

For iOS Simulator's ui_find_element, review the permission request and arguments in Claude Code before approval.

ui_view

For iOS Simulator's ui_view, review the permission request and arguments in Claude Code before approval.

screenshot

For iOS Simulator's screenshot, review the permission request and arguments in Claude Code before approval.

record_video

For iOS Simulator's record_video, review the permission request and arguments in Claude Code before approval.

stop_recording

For iOS Simulator's stop_recording, review the permission request and arguments in Claude Code before approval.

install_app

For iOS Simulator's install_app, review the permission request and arguments in Claude Code before approval.

launch_app

For iOS Simulator's launch_app, review the permission request and arguments in Claude Code before approval.

Start an installed app using its bundle identifier.

terminate_app

For iOS Simulator's terminate_app, review the permission request and arguments in Claude Code before approval.

Stop a running app identified by its bundle ID.

open_url

For iOS Simulator's open_url, review the permission request and arguments in Claude Code before approval.

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

list_apps

For iOS Simulator's list_apps, review the permission request and arguments in Claude Code before approval.

Enumerate installed apps with their names and bundle IDs.

iOS Simulator: full stored tool descriptions

Troubleshooting iOS Simulator in Claude Code

  • If iOS Simulator MCP Server fails to start, check npx ios-simulator-mcp (Node.js/npm), the working directory, and Claude Code's selected scope; inspect claude mcp list and /mcp.
  • iOS Simulator MCP Server: check IDB_UDID, IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR, IOS_SIMULATOR_MCP_FILTERED_TOOLS; keep credentials out of shared .mcp.json.
  • iOS Simulator MCP Server uses stdio here: Claude Code 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 Claude Code troubleshooting lives in the /clients/claude-code guide.

iOS Simulator MCP Server — details. Claude Code guide

Frequently asked questions

Register iOS Simulator MCP Server with the displayed claude mcp add-json --scope project command, or merge the JSON into .mcp.json at the repository root.

Claude Code's ios-simulator-mcp example uses stdio.

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

Claude Code'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 Claude Code's connected tool list; the stored list is not a live check.

The documented setup requires macOS because it operates Apple's iOS simulators.

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