MCP Directory

How to add iOS Simulator MCP Server to Claude Desktop

Control and inspect iOS simulators — UI taps, swipes, text input, screenshots, video, and app install/launch. Paste the config into ~/Library/Application Support/Claude/claude_desktop_config.json and restart Claude Desktop.

Last updated June 14, 2026 · 2.1k · stdio · no auth

Claude Desktop config for iOS Simulator MCP Server

npx -y ios-simulator-mcp
{
  "mcpServers": {
    "ios-simulator-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "ios-simulator-mcp"
      ]
    }
  }
}

Setup steps

  1. 1Open Claude Desktop → Settings → Developer → Edit Config (this opens ~/Library/Application Support/Claude/claude_desktop_config.json).
  2. 2Paste the iOS Simulator MCP Server config below under the top-level "mcpServers" key.
  3. 3Fill in any placeholder secrets (API keys, paths) in the snippet.
  4. 4Save the file, then fully quit and reopen Claude Desktop.
  5. 5Open a chat and confirm iOS Simulator MCP Server's tools appear under the 🔌 tools menu.

Before you start

  • Node.js
  • macOS (iOS simulators are only available on macOS)
  • Xcode and iOS simulators installed
  • Facebook IDB tool (see install guide at fbidb.io)

What iOS Simulator MCP Server can do in Claude Desktop

get_booted_sim_id

Get the ID of the currently booted iOS simulator. No parameters.

open_simulator

Opens the iOS Simulator application. No parameters.

ui_describe_all

Describes accessibility information for the entire screen in the iOS Simulator. Optional udid (can also be set via IDB_UDID env var).

ui_tap

Tap on the screen at given x/y coordinates. Optional press duration (seconds) and udid.

ui_type

Input text into the iOS Simulator (ASCII printable characters only). Optional udid.

ui_swipe

Swipe on the screen from a start (x_start, y_start) to an end (x_end, y_end) point. Optional duration, step delta, and udid.

ui_describe_point

Returns the accessibility element at given x/y coordinates on the simulator's screen. Optional udid.

ui_find_element

Searches the accessibility tree and returns elements matching the given criteria. Accepts an array of search strings (matched against AXLabel or AXUniqueId), optional element type filter, matchMode ('substring' or 'exact'), caseSensitive flag, and udid.

Security

Command injection vulnerabilities present in versions < 1.3.3 have been fixed; update to v1.3.3 or later (see SECURITY.md). The server executes UI automation and app install/launch against local iOS simulators via IDB and simctl, so it can interact with anything running in the simulator and write screenshots/recordings to the local filesystem (default ~/Downloads, configurable via IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR). Tools can be filtered out via IOS_SIMULATOR_MCP_FILTERED_TOOLS.

iOS Simulator MCP Server + Claude Desktop FAQ

Where is the Claude Desktop config file?

Claude Desktop reads MCP servers from ~/Library/Application Support/Claude/claude_desktop_config.json. Paste the iOS Simulator MCP Server config there under the "mcpServers" key and restart the client.

Is iOS Simulator MCP Server safe to use with Claude Desktop?

Command injection vulnerabilities present in versions < 1.3.3 have been fixed; update to v1.3.3 or later (see SECURITY.md). The server executes UI automation and app install/launch against local iOS simulators via IDB and simctl, so it can interact with anything running in the simulator and write screenshots/recordings to the local filesystem (default ~/Downloads, configurable via IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR). Tools can be filtered out via IOS_SIMULATOR_MCP_FILTERED_TOOLS.

Which MCP clients are documented?

The README provides setup instructions for Cursor (via ~/.cursor/mcp.json) and Claude Code (via the `claude mcp add` command), with both NPX and local-development options.

How do I run it without a global install?

Use NPX: configure the command as `npx` with args `["-y", "ios-simulator-mcp"]`, or for Claude Code run `claude mcp add ios-simulator npx ios-simulator-mcp`.

Can I disable specific tools?

Yes. Set the IOS_SIMULATOR_MCP_FILTERED_TOOLS environment variable to a comma-separated list of tool names to filter out, e.g. `screenshot,record_video,stop_recording`.

View repo Full iOS Simulator MCP Server page