Installation
Requirements
| Requirement | What for | How to install it |
|---|---|---|
| macOS with Xcode | Everything. The server uses xcrun simctl. | App Store and xcode-select --install |
| Node.js 20 or later | Running the server. | brew install node |
| idb (optional) | Only the ui_* tools. | See Installing idb |
macOS only
The iOS Simulator does not exist on Windows or Linux. On those systems the server starts and publishes its tools, but every call returns [UNSUPPORTED_PLATFORM].
Download and build
git clone https://github.com/s-pl/ios-simulator-mcp.git
cd ios-simulator-mcp
npm installnpm install also builds the project into dist/.
Register the server
Claude Code
From the project folder:
claude mcp add ios-simulator -- node "$(pwd)/dist/index.js"Check that it is connected with claude mcp list, or with /mcp inside a session.
Claude Desktop and other clients
Add the server to the client's configuration file. For Claude Desktop that is ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ios-simulator": {
"command": "node",
"args": ["/absolute/path/to/ios-simulator-mcp/dist/index.js"]
}
}
}Installing idb
simctl cannot inject touches or read what is on screen, so the ui_* tools use idb, from Meta. The rest of the server works without it.
brew tap facebook/fb
brew install idb-companion
pipx install fb-idbIf Homebrew refuses the formula because it comes from an untrusted tap, run brew trust facebook/fb first.
The server talks to idb_companion directly, so the Python client (fb-idb) is optional: it is only used as a fallback when the direct connection cannot be established.
The client cannot find idb
Desktop applications do not inherit your terminal's PATH. If the ui_* tools answer [EXECUTABLE_NOT_FOUND], give the full path through the IOS_SIMULATOR_MCP_IDB_PATH variable. You get it with which idb. See Configuration.