PlugWiki
ios-simulator-mcp logo

iOS Simulator MCP Server: Setup for Claude, Cursor and Other Apps

CommunityLocal
Getnpmios-simulator-mcpjoshuayoes/ios-simulator-mcp

Lets Claude, Cursor and other assistants tap, type, swipe, screenshot and record the iOS Simulator on your Mac, so they can test your app.

This is a community server by Joshua Yoes, not made by Apple. It runs on your Mac, needs Xcode and the Facebook IDB tool, and has no account or key to set up.

The assistant can see the screen and act on it. Start your simulator first, and check what you ask it to install or open.

Good for

  • iOS and React Native developers who want the assistant to check a feature on screen
  • QA testers who want deep links and flows tried step by step
  • Developers who want screenshots and videos of an app saved while they work

Works in

12 should work

Tap an app to see how to set it up and any known problems.

Install ios-simulator MCP

Claude Code

  1. 1

    Copy this prompt.

    Add the ios-simulator MCP server to Claude Code. Run this command:
    
    claude mcp add ios-simulator -- npx -y ios-simulator-mcp
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Node.js, macOS, Xcode with iOS simulators, Facebook IDB (idb_companion + fb-idb).

Only works on a Mac. Before the first run, install Xcode with at least one iOS simulator, then the Facebook IDB tool: the idb_companion program and the fb-idb Python package (the README links its IDB install steps). Start a simulator, then ask your assistant to use it. Needs Node.js 20 or newer. No account or API key is needed.

Built from the package data we hold. Not yet tested by us.

Tools

  • Finds the simulator that is running

    Returns the ID of the iOS simulator that is currently booted, so other tools know which one to control.

    Try: “Which simulator is running right now?”

    Read · get_booted_sim_id

  • Opens the Simulator app

    Launches the iOS Simulator application on your Mac.

    Try: “Open the iOS Simulator.”

    Runs code · open_simulator

  • Reads out everything on the simulator screen

    Returns accessibility information for the whole screen, such as each element, its label and where it sits.

    Try: “What is on the simulator screen right now?”

    Read · ui_describe_all

  • Taps a spot on the screen

    Taps at the x and y position you give, and can hold the press for a set time.

    Try: “Tap the Sign In button.”

    Write · ui_tap

  • Types text into the focused field

    Enters up to 500 characters. The default method presses US keyboard keys, and a paste method handles other keyboard layouts and non-ASCII text.

    Try: “Type my test email into the login field.”

    Write · ui_type

  • Swipes across the screen

    Swipes from one point to another, with a set duration and step size.

    Try: “Swipe up to scroll the list.”

    Write · ui_swipe

  • Tells what element is at a point

    Returns the accessibility element at the x and y position you give.

    Try: “What is at position 200, 400?”

    Read · ui_describe_point

  • Finds screen elements by label or ID

    Searches the accessibility tree for elements whose label or ID matches your search, and can filter by type such as Button.

    Try: “Find the Settings button on screen.”

    Read · ui_find_element

  • Takes a compressed look at the screen

    Returns a compressed screenshot of the current simulator view as an image.

    Try: “Show me what the simulator looks like now.”

    Read · ui_view

  • Saves a screenshot to a file

    Takes a screenshot of the simulator and saves it to a path you name, as png, jpeg, tiff, bmp or gif.

    Try: “Take a screenshot and save it to my Downloads folder.”

    Files · screenshot

  • Starts recording the simulator screen

    Records the simulator display to a video file with h264 or hevc. Without a path it uses the default output folder, which is Downloads unless you change it.

    Try: “Start recording a video of this flow.”

    Write · record_video

  • Stops the screen recording

    Ends the video recording that is running.

    Try: “Stop recording.”

    Runs code · stop_recording

Read from the source code

Permissions

medium risk · 4 things to watch · 1 advisory

Medium risk

It can control the simulator like a person would, install apps from paths on your Mac, and save screenshots and videos to your disk. Keep sensitive apps and logins out of the simulator, and leave approval prompts on.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • It acts on the simulator like a user

    It can tap, type and swipe in whatever app is on screen, including any account you are signed in to there. Use a test account. github.com

  • It writes screenshots and videos to disk

    Output goes to the path you give, or to Downloads unless you set a default folder. Check paths before approving. github.com

  • It installs apps from paths you give

    The install tool takes an app bundle or .ipa from your Mac. Only point it at builds you trust. github.com

  • Older versions had a command injection bug

    The README says versions before 1.3.3 had command injection flaws, fixed since. Run the current version. github.com

Security advisories

Technical details
Turning on read-onlyNo read-only mode. The IOS_SIMULATOR_MCP_FILTERED_TOOLS setting lists tools to leave out, such as screenshot or record_video.
Sign-in and keysNo account or key. Files you ask for are written to the path you give, or to the Downloads folder.

Questions

Is this an official Apple server?

No. It is a community project by Joshua Yoes. Apple does not publish an MCP server for the iOS Simulator.

What do I need to run it?

A Mac with Node.js 20 or newer, Xcode with iOS simulators, and the Facebook IDB tool (the idb_companion program plus the fb-idb Python package). Follow the install box for the config.

Does it work on Windows or Linux?

No. The README lists macOS as required, because iOS simulators only run on Macs.

Can I switch off screenshots and video?

Yes. List tool names such as screenshot, record_video and stop_recording in the IOS_SIMULATOR_MCP_FILTERED_TOOLS setting, and the server will not register them.

Why does typing come out wrong on my keyboard?

The default typing method presses keys as on a US keyboard, so other layouts type the wrong characters. Ask for the paste method, which also handles non-ASCII text but is slower.

Where do screenshots and videos go?

To the path you name. If you give none, they go to your Downloads folder, or to the folder set in IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR.

Information

updated Nov 2, 2026

Publisher
Community
Package
ios-simulator-mcp
Registry
npm
Transport
stdio
Auth
None
Version
2.2.0
License
MIT
Last commit
Oct 27, 2026
Open issues
14

GitHubnpmChangelogIssues

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 3
  1. README.md · github.com
  2. TROUBLESHOOTING.md · github.com
  3. ios-simulator-mcp · npmjs.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 2, 2026.