
How to add iOS Simulator MCP Server to Cursor
Control and inspect iOS simulators — UI taps, swipes, text input, screenshots, video, and app install/launch. Paste the config into ~/.cursor/mcp.json and restart Cursor.
Last updated June 14, 2026 · 2.1k★ · stdio · no auth
Cursor 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
- 1Open Cursor → Settings → MCP → Add new MCP server (or edit ~/.cursor/mcp.json directly).
- 2Paste the iOS Simulator MCP Server config below into the "mcpServers" object.
- 3Fill in placeholder secrets, then save.
- 4Cursor reloads MCP servers automatically — check Settings → MCP for a green status dot.
- 5Ask Cursor to use one of iOS Simulator MCP Server's tools to confirm it's connected.
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 Cursor
get_booted_sim_idGet the ID of the currently booted iOS simulator. No parameters.
open_simulatorOpens the iOS Simulator application. No parameters.
ui_describe_allDescribes accessibility information for the entire screen in the iOS Simulator. Optional udid (can also be set via IDB_UDID env var).
ui_tapTap on the screen at given x/y coordinates. Optional press duration (seconds) and udid.
ui_typeInput text into the iOS Simulator (ASCII printable characters only). Optional udid.
ui_swipeSwipe 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_pointReturns the accessibility element at given x/y coordinates on the simulator's screen. Optional udid.
ui_find_elementSearches 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 + Cursor FAQ
Where is the Cursor config file?
Cursor reads MCP servers from ~/.cursor/mcp.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 Cursor?
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`.