ios-simulator-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IDB_PATH | No | Where you installed fb-idb | ~/.local/idb-venv/bin/idb |
| XCRUN_PATH | No | Usually identical everywhere. Also used to reach devicectl | /usr/bin/xcrun |
| SIM_APP_URL | No | Overrides the open_app deep link (skips port probing) | |
| DEVICE_UI_APP | No | App name or absolute .app path opened after booting. Auto = Device Hub, then Simulator.app | |
| SCREENSHOT_DIR | No | Where PNGs are saved | |
| DEFAULT_SIMULATOR | No | Fallback device name (Xcode-version dependent) | iPhone 17 |
| IDB_COMPANION_DIR | No | Intel Mac → /usr/local/bin | /opt/homebrew/bin |
| SIM_APP_BUNDLE_ID | No | Overrides which app launch_app / terminate_app default to | |
| SIM_STORYBOOK_URL | No | Overrides the open_storybook deep link | |
| DEVICE_HUB_BUNDLE_ID | No | Device Hub bundle id (Xcode 27+); only used if the name lookup fails | com.apple.dt.Devices |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| screenshotA | Capture the booted simulator screen as a PNG. Returns the image plus the saved file path, pixel dimensions, and logical (point) dimensions/scale so tap coordinates can be derived. |
| get_accessibility_treeA | Return the simulator accessibility tree (elements with labels, roles, frames and computed center points). Use this to find exact tap coordinates for an element. |
| list_devicesA | List available iOS simulators with udid, name and state. |
| boot_deviceA | Boot a simulator by name or udid (defaults to the configured device) and open the Simulator app. |
| shutdown_deviceA | Shut down a simulator by name or udid (defaults to the booted one). |
| launch_appA | Launch an app by bundle id on the booted simulator. Bundle id defaults to the only non-system app running in the simulator, else the only one installed; pass bundleId or set SIM_APP_BUNDLE_ID to override. |
| terminate_appA | Terminate an app by bundle id on the booted simulator. Bundle id defaults to the only non-system app running in the simulator, else the only one installed; pass bundleId or set SIM_APP_BUNDLE_ID to override. |
| open_urlA | Open a URL on the booted simulator (e.g. an exp:// deep link or custom scheme). |
| open_appA | Open the app on the booted simulator. For an Expo / React Native dev client this opens its dev-server URL, detected from a listening Metro server (port 8081) and the scheme the app registers. For a regular app, prefer launch_app. |
| open_storybookA | Open Storybook on the booted simulator, via a listening Metro server on port 8082 (unless SIM_STORYBOOK_URL is set). |
| tapA | Tap at (x, y) in POINTS (logical coordinates — the same space as accessibility-tree frames). |
| tap_normalizedA | Tap at a normalized position where (0,0) is the top-left and (1,1) the bottom-right of the screen. Useful when tapping from a screenshot without knowing the scale. |
| swipeA | Swipe from (x1, y1) to (x2, y2) in POINTS. |
| type_textA | Type text into the focused field on the simulator. |
| press_keyA | Press a single HID key code. Common codes: 40 = Return/Enter, 42 = Backspace/Delete, 43 = Tab, 44 = Space, 41 = Escape, 4-29 = a-z, 30-38 = 1-9, 39 = 0. |
| press_homeA | Press the device Home button. |
| set_orientationA | Rotate the simulator to portrait, portraitUpsideDown, landscapeLeft or landscapeRight. Uses |
| get_orientationB | Report the simulator's current physical orientation. |
| toggle_appearanceA | Set the simulator appearance to dark or light. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |