list-available-simulatorsLABSCO SUMMARY
Two ways in: talk to a UDID directly, or track simulators under your own session IDs.
The direct UDID tools are the ones to reach for — list, boot, use, shut down, no state to keep straight. The session layer earns its place only when you need to refer to a simulator by a name you chose or carry metadata alongside it, and the project says as much.
What it is
A stdio server over appium-ios-simulator that manages simulator instances and drives what runs inside them.
What you get
- list-available-simulators and list-booted-simulators show what exists and what is running, with UDIDs
- boot-simulator-by-udid and shutdown-simulator-by-udid work directly on a device, no session bookkeeping
- install-app, launch-app and terminate-app put a build on the simulator and control it
- take-screenshot returns the simulator screen; tap-coordinate taps at a point
- A session layer for tracking simulators by your own IDs — create-simulator-session, create-and-boot-simulator, boot-simulator, shutdown-simulator, list-simulator-sessions and terminate-simulator-session
- Multiple simulator sessions at once, with logging written to file rather than stdout so the transport stays clean
Requirements
macOS with Xcode and its simulators installed — simulators do not run anywhere else. Node.js v16 or later; clone, npm install, npm run build, then point the client at dist/index.js. SIMULATOR_DEFAULT_DEVICE, SIMULATOR_DEFAULT_OS and SIMULATOR_TIMEOUT set the defaults. The Docker image can host the MCP process for portability but cannot drive a real simulator.
Setup effort
Build from source — git clone https://github.com/atom2ueki/mcp-server-ios-simulator.git
USE CASES
Booting the right simulator without hunting through Xcode
List what is available with UDIDs, then boot the one you want by ID.
Getting a build onto a simulator and running it
Install the app, launch it, and terminate it when you are done — all from the conversation.
Seeing what the app actually looks like right now
Take a screenshot of the simulator screen and read it back in the thread.
Walking through a flow by hand
Tap at coordinates and screenshot between steps to confirm the app went where you expected.
Cleaning up after a test run
List what is still booted and shut those devices down.
15 tools
Listed in project docs. Your client may show a different list.
boot-simulator-by-udidshutdown-simulator-by-udidlist-booted-simulatorslist-simulator-sessionscreate-simulator-sessionterminate-simulator-sessioncreate-and-boot-simulatorboot-simulatorshutdown-simulatorinstall-applaunch-appterminate-apptake-screenshottap-coordinateBEFORE YOU INSTALL
What to know first
Tools you get
15 tools named in the project's documentation.
Requires
- macOS with Xcode and its iOS simulators
- Node.js v16 or later
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/atom2ueki/mcp-server-ios-simulator.git
cd mcp-server-ios-simulator
npm install
npm run buildMCP Clients
Claude Desktop
{
"mcpServers": {
"simulator": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MCP_SERVER_IOS_SIMULATOR>/dist/index.js"
]
}
}
}<YOUR_PATH_TO_MCP_SERVER_IOS_SIMULATOR> is the full path of your clone, so the path points at dist/index.js inside it; npm run build creates that file.