← iOS Simulator MCP

iOS Simulator MCP 2.1.0

npm · ios-simulator-mcp · current release

17
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-16T04:55:45.209Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools 17

ToolCategoryAnnotationsRisk
get_booted_sim_idGet the ID of the currently booted iOS simulator
Input schema
{
  "type": "object",
  "properties": {}
}
Annotations
{
  "title": "Get Booted Simulator ID",
  "readOnlyHint": true,
  "openWorldHint": true
}
Read only · —
install_appInstalls an app bundle (.app or .ipa) on the iOS Simulator
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "app_path": {
      "type": "string",
      "maxLength": 1024,
      "description": "Path to the app bundle (.app directory or .ipa file) to install"
    }
  },
  "required": [
    "app_path"
  ]
}
Annotations
{
  "title": "Install App",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
launch_appLaunches an app on the iOS Simulator by bundle identifier
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "bundle_id": {
      "type": "string",
      "maxLength": 256,
      "description": "Bundle identifier of the app to launch (e.g., com.apple.mobilesafari)"
    },
    "terminate_running": {
      "description": "Terminate the app if it is already running before launching",
      "type": "boolean"
    },
    "env": {
      "description": "Environment variables to pass to simctl launch",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "bundle_id"
  ]
}
Annotations
{
  "title": "Launch App",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
list_appsLists all installed apps on the iOS Simulator with their bundle identifiers and display names
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    }
  }
}
Annotations
{
  "title": "List Installed Apps",
  "readOnlyHint": true,
  "openWorldHint": true
}
Read only · —
open_simulatorOpens the iOS Simulator application
Input schema
{
  "type": "object",
  "properties": {}
}
Annotations
{
  "title": "Open Simulator",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
open_urlOpens a URL in the iOS Simulator, useful for testing deep links and universal links
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "url": {
      "type": "string",
      "maxLength": 2048,
      "description": "The URL or deep link to open (e.g., https://example.com or myapp://screen/detail)"
    }
  },
  "required": [
    "url"
  ]
}
Annotations
{
  "title": "Open URL",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
record_videoRecords a video of the iOS Simulator using simctl directly
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "output_path": {
      "description": "Optional output path. If not provided, a default name will be used. The file will be saved in the directory specified by `IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR` or in `~/Downloads` if the environment variable is not set.",
      "type": "string",
      "maxLength": 1024
    },
    "codec": {
      "description": "Specifies the codec type: \"h264\" or \"hevc\". Default is \"hevc\".",
      "type": "string",
      "enum": [
        "h264",
        "hevc"
      ]
    },
    "display": {
      "description": "Display to capture: \"internal\" or \"external\". Default depends on device type.",
      "type": "string",
      "enum": [
        "internal",
        "external"
      ]
    },
    "mask": {
      "description": "For non-rectangular displays, handle the mask by policy: \"ignored\", \"alpha\", or \"black\".",
      "type": "string",
      "enum": [
        "ignored",
        "alpha",
        "black"
      ]
    },
    "force": {
      "description": "Force the output file to be written to, even if the file already exists.",
      "type": "boolean"
    }
  }
}
Annotations
{
  "title": "Record Video",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
screenshotTakes a screenshot of the iOS Simulator
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "output_path": {
      "type": "string",
      "maxLength": 1024,
      "description": "File path where the screenshot will be saved. If relative, it uses the directory specified by the `IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR` env var, or `~/Downloads` if not set."
    },
    "type": {
      "description": "Image format (png, tiff, bmp, gif, or jpeg). Default is png.",
      "type": "string",
      "enum": [
        "png",
        "tiff",
        "bmp",
        "gif",
        "jpeg"
      ]
    },
    "display": {
      "description": "Display to capture (internal or external). Default depends on device type.",
      "type": "string",
      "enum": [
        "internal",
        "external"
      ]
    },
    "mask": {
      "description": "For non-rectangular displays, handle the mask by policy (ignored, alpha, or black)",
      "type": "string",
      "enum": [
        "ignored",
        "alpha",
        "black"
      ]
    }
  },
  "required": [
    "output_path"
  ]
}
Annotations
{
  "title": "Take Screenshot",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
stop_recordingStops the simulator video recording using killall
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
Annotations
{
  "title": "Stop Recording",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
terminate_appTerminates a running app on the iOS Simulator by bundle identifier
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "bundle_id": {
      "type": "string",
      "maxLength": 256,
      "description": "Bundle identifier of the app to terminate (e.g., com.apple.mobilesafari)"
    }
  },
  "required": [
    "bundle_id"
  ]
}
Annotations
{
  "title": "Terminate App",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
ui_describe_allDescribes accessibility information for the entire screen in the iOS Simulator
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    }
  }
}
Annotations
{
  "title": "Describe All UI Elements",
  "readOnlyHint": true,
  "openWorldHint": true
}
Read only · —
ui_describe_pointReturns the accessibility element at given co-ordinates on the iOS Simulator's screen
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "x": {
      "type": "number",
      "description": "The x-coordinate"
    },
    "y": {
      "type": "number",
      "description": "The y-coordinate"
    }
  },
  "required": [
    "x",
    "y"
  ]
}
Annotations
{
  "title": "Describe UI Point",
  "readOnlyHint": true,
  "openWorldHint": true
}
Read only · —
ui_find_elementSearches the accessibility tree and returns elements matching the given criteria
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "search": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "Array of search strings. An element matches if ANY string matches against its AXLabel or AXUniqueId"
    },
    "type": {
      "description": "Filter by element type (e.g. 'Button', 'StaticText', 'Group'). Case-insensitive exact match",
      "type": "string"
    },
    "matchMode": {
      "default": "substring",
      "description": "Match mode for search strings: 'substring' (default) or 'exact'",
      "type": "string",
      "enum": [
        "substring",
        "exact"
      ]
    },
    "caseSensitive": {
      "default": false,
      "description": "Whether search matching is case-sensitive (default: false)",
      "type": "boolean"
    }
  },
  "required": [
    "search"
  ]
}
Annotations
{
  "title": "Find UI Element",
  "readOnlyHint": true,
  "openWorldHint": true
}
Read only · —
ui_swipeSwipe on the screen in the iOS Simulator
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "duration": {
      "description": "Swipe duration in seconds (e.g., 0.1)",
      "type": "string",
      "pattern": "^\\d+(\\.\\d+)?$"
    },
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "x_start": {
      "type": "number",
      "description": "The starting x-coordinate"
    },
    "y_start": {
      "type": "number",
      "description": "The starting y-coordinate"
    },
    "x_end": {
      "type": "number",
      "description": "The ending x-coordinate"
    },
    "y_end": {
      "type": "number",
      "description": "The ending y-coordinate"
    },
    "delta": {
      "default": 1,
      "description": "The size of each step in the swipe (default is 1)",
      "type": "number"
    }
  },
  "required": [
    "x_start",
    "y_start",
    "x_end",
    "y_end"
  ]
}
Annotations
{
  "title": "UI Swipe",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
ui_tapTap on the screen in the iOS Simulator
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "duration": {
      "description": "Press duration",
      "type": "string",
      "pattern": "^\\d+(\\.\\d+)?$"
    },
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "x": {
      "type": "number",
      "description": "The x-coordinate"
    },
    "y": {
      "type": "number",
      "description": "The x-coordinate"
    }
  },
  "required": [
    "x",
    "y"
  ]
}
Annotations
{
  "title": "UI Tap",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
ui_typeInput text into the iOS Simulator
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    },
    "text": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[\\x20-\\x7E]+$",
      "description": "Text to input"
    }
  },
  "required": [
    "text"
  ]
}
Annotations
{
  "title": "UI Type",
  "readOnlyHint": false,
  "openWorldHint": true
}
Writes · —
ui_viewGet the image content of a compressed screenshot of the current simulator view
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "udid": {
      "description": "Udid of target, can also be set with the IDB_UDID env var",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
    }
  }
}
Annotations
{
  "title": "View Screenshot",
  "readOnlyHint": true,
  "openWorldHint": true
}
Read only · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.