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
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.
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.
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
{
"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>"
}
}
}
}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.
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