Skip to main content
Glama
shaun-hutch

ios-simulator-mcp

by shaun-hutch

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
IDB_PATHNoWhere you installed fb-idb~/.local/idb-venv/bin/idb
XCRUN_PATHNoUsually identical everywhere. Also used to reach devicectl/usr/bin/xcrun
SIM_APP_URLNoOverrides the open_app deep link (skips port probing)
DEVICE_UI_APPNoApp name or absolute .app path opened after booting. Auto = Device Hub, then Simulator.app
SCREENSHOT_DIRNoWhere PNGs are saved
DEFAULT_SIMULATORNoFallback device name (Xcode-version dependent)iPhone 17
IDB_COMPANION_DIRNoIntel Mac → /usr/local/bin/opt/homebrew/bin
SIM_APP_BUNDLE_IDNoOverrides which app launch_app / terminate_app default to
SIM_STORYBOOK_URLNoOverrides the open_storybook deep link
DEVICE_HUB_BUNDLE_IDNoDevice Hub bundle id (Xcode 27+); only used if the name lookup failscom.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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 devicectl (the Device Hub toolchain) since simctl has no rotation support. Screenshots reflect the rotation, so tap coordinates change accordingly.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources