← Back to directory
I

iOS Simulator MCP Server

Community
Interact with and inspect iOS simulators through MCP.
Category
Dev Tools #176 of 438
Stars
★ 2.2k Very popular
Transport
stdio (local process)
Runtime
Node.js · Prebuilt binary
Credentials
No credential needed
License
MIT
Last commit
Tools
14
56FMRS · C

The source describes a server focused on iOS Simulator interaction on macOS, including UI automation, accessibility inspection, screenshots, video recording, and app installation and launch. The README provides stdio configuration examples for Cursor and Claude Code. Topics, a server manifest, authentication, and other transport methods are not provided.

Strongest · Documentation 15/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
10/20
Maintenance
10/20
Documentation
15/20
Setup experience
13/20
Why each score
Reliability 8/20
The README lists the tools, parameters, and dependencies, making the normal path plausible. However, the manifest is not cached, and there is no reviewable evidence of the initialization handshake, tool-list consistency, tests, CI, or robust error handling. The macOS, Xcode, and IDB dependencies may also cause startup or runtime failures, so points are deducted.
Security and permissions 10/20
The described functionality is primarily scoped to local iOS Simulator interaction, app installation, screenshots, and video recording, with no shown credential handling or external network transfer; UDID and output paths are configurable. The security notice says command-injection issues existed before 1.3.3, but installation examples do not pin a safe version, and there is no evidence of permission boundaries, path validation, or confirmation for consequential operations, so points are deducted.
Maintenance 10/20
The repository is not archived, uses the MIT license, and references a security notice, providing evidence of basic maintenance and licensing. However, the supplied material contains no release history, commit activity, issue-response evidence, dependency-update policy, or clear security response channel; 31 open issues are also reported, so a high score is not justified.
Documentation 15/20
The README covers tool purposes, parameters, environment variables, prerequisites, Cursor and Claude Code installation, examples, and platform limitations. It lacks the server manifest, verifiable execution evidence, systematic troubleshooting, error semantics, version pinning, and fuller security/data-boundary disclosure, so points are deducted.
Setup experience 13/20
NPX and local-build paths are provided with configuration examples for Cursor and Claude Code, making the basic setup reasonably clear. However, it requires macOS, Xcode/iOS simulators, and Facebook IDB, involves manual configuration and restarts, and provides no file-level execution verification or version pinning, so points are deducted.

Static review · not runListed 2026-07-29

Read the FMRS scoring method →

Fit and risk

What it can accessWrites / deletes local filesRuns commands or codeControls a browser

Best for

  • Teams developing or performing QA with macOS, Xcode, and iOS simulators
  • Users who want an AI assistant to perform mobile UI validation through MCP
  • Developers checking the iOS accessibility tree and UI responses

Not for

  • Environments without macOS, Xcode, or iOS simulators
  • Testing scenarios that require a physical iOS device
  • Tasks that do not need simulator control, inspection, or app installation

Required permissions

  • Requires access to the iOS Simulator and Xcode tools on macOS.
  • Requires Facebook IDB; by default, idb is resolved from PATH, or IOS_SIMULATOR_MCP_IDB_PATH can specify a custom path.
  • Screenshot and video features need write access to the output directory; the default is ~/Downloads, configurable with IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR.
  • App installation and launch require an application path or bundle identifier.

Risks and side effects

  • ui_tap, ui_type, ui_swipe, install_app, and launch_app can change simulator or application state.
  • Screenshots and videos may save simulator screen content to local files.
  • Versions below 1.3.3 have command injection vulnerabilities; the README states this is fixed and recommends version 1.3.3 or later.
  • Text input supports ASCII printable characters only.

Setup

Before you start

Runtime:Node.js · Prebuilt binary

Other optional settings (4)
IOS_SIMULATOR_MCP_FILTERED_TOOLS optional Optional, comma-separated list of tool names to exclude from registration.
IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR optional Optional, sets the default output directory for screenshots and recordings; defaults to ~/Downloads.
IOS_SIMULATOR_MCP_IDB_PATH optional Optional, custom path to the IDB executable; defaults to `idb` on your PATH.
IDB_UDID optional Optional, environment-variable alternative to each tool's udid parameter for specifying the target simulator.

Prerequisites are Node.js, macOS, Xcode with iOS simulators installed, and Facebook IDB. For npx installation, add the provided mcpServers configuration to Cursor's ~/.cursor/mcp.json and restart Cursor, or run claude mcp add ios-simulator npx ios-simulator-mcp. For local development, clone the repository, run npm install and npm run build, then configure the local build/index.js path.

.cursor/mcp.json
{"mcpServers":{"ios-simulator":{"command":"npx","args":["-y","ios-simulator-mcp"]}}}

Shown for Cursor. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "ios-simulator": {
      "command": "npx",
      "args": [
        "-y",
        "ios-simulator-mcp"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add ios-simulator -- npx -y ios-simulator-mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After restarting the client, tools from the ios-simulator server (e.g. get_booted_sim_id, ui_tap, screenshot) should appear in the client's tool list, or calling get_booted_sim_id should return the ID of the booted simulator.

Troubleshooting

  1. Confirm that the environment is macOS and that Xcode and the required iOS simulators are installed.
  2. Confirm that IDB is installed and executable; if it is not in PATH, check IOS_SIMULATOR_MCP_IDB_PATH.
  3. Use get_booted_sim_id to confirm a booted simulator, and provide udid when a specific target is needed.
  4. Check that IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR points to a writable directory.
  5. If tools are not registered, check whether IOS_SIMULATOR_MCP_FILTERED_TOOLS filtered them out, then restart the MCP client.
  6. Confirm that the npm package version is at least 1.3.3.

Things to try

Once connected, you can ask your AI assistant things like:

  • Verify all accessibility elements on the current screen
  • Tap on coordinates x=250, y=400 and verify the expected element is triggered
  • Take a screenshot of the current simulator screen and save it to my_screenshot.png
  • Launch the Safari app (com.apple.mobilesafari) on the simulator

Tools 14

get_booted_sim_id read-only
Gets the ID of the currently booted iOS simulator.
open_simulator writes
Opens the iOS Simulator application.
ui_describe_all read-only
Describes accessibility information for the entire iOS Simulator screen.
ui_tap writes
Taps a specified coordinate on the iOS Simulator screen.
ui_type writes
Inputs text into the iOS Simulator.
ui_swipe writes
Performs a swipe on the iOS Simulator screen.
ui_describe_point read-only
Returns the accessibility element at a specified screen coordinate.
ui_find_element read-only
Searches the accessibility tree for elements matching specified criteria.
Show 6 more tools
ui_view read-only
Gets compressed screenshot image content of the current simulator view.
screenshot writes
Captures the iOS Simulator screen and saves it to a specified path.
record_video writes
Records an iOS Simulator video using simctl.
stop_recording writes
Stops the current simulator video recording.
install_app writes
Installs an .app or .ipa application on the iOS Simulator.
launch_app writes
Launches an application on the iOS Simulator by bundle identifier.

Use cases

Validating UI consistency and behavior after implementing features
Checking accessibility elements on the current simulator screen
Performing tap, text input, and swipe operations
Viewing or saving simulator screenshots
Recording simulator video
Installing and launching applications on the simulator

Supported clients

Cursor
Claude Code

Listed from the project's documentation, not tested by this site.

Overview

iOS Simulator MCP Server is an MCP server for interacting with iOS simulators. It supports simulator information, UI control, accessibility inspection, screen viewing and capture, video recording, and app installation and launch. The server path is the repository root, and the license is MIT.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

Source revision a32f7f836393 Data synced 2026-10-19 Read the FMRS scoring method