MCP server intelligence profile

iOS Simulator MCP Server

Enables interaction with iOS simulators by providing tools to inspect UI elements, control UI interactions, and manage simulators through natural language commands

Local Onlyjoshuayoes
Awaiting current scanNpm · 2.1.0

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

1Distribution channel
17Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.

Install and connect

Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.

Install ios-simulator-mcp from npm

Install exact version 2.1.0. No verified executable entrypoint is available, so use the package documentation to launch it.

npm install --save-exact ios-simulator-mcp@2.1.0

Identity

Canonical slugios-simulator-mcp-ecfe565eDeploymentLocal Only
Canonical packagenpm:ios-simulator-mcpRepositoryjoshuayoes/ios-simulator-mcp
First publishedAug 11, 2026Latest releaseAug 11, 2026
Last security verificationClassification confidence90%
PublicationDraftOfficial distributionNot verified

Distributions

ChannelIdentifierCurrent versionVersionsSource
npmios-simulator-mcp2.1.017Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
npmios-simulator-mcp2.1.0CurrentSep 5, 202617 toolsSucceeded · 0 resources · 0 promptsEvidence restricted
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

No public current-version evidence is available yet.

Current protocol inventory

2025-06-18Negotiated protocol
ios-simulatorServer-reported name
1Capability groups
Aug 16, 2026Observed

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 onlyOpen world
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
}
WritesOpen world
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
}
WritesOpen world
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 onlyOpen world
open_simulatorOpens the iOS Simulator application
Input schema
{
  "type": "object",
  "properties": {}
}
Annotations
{
  "title": "Open Simulator",
  "readOnlyHint": false,
  "openWorldHint": true
}
WritesOpen world
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
}
WritesOpen world
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
}
WritesOpen world
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
}
WritesOpen world
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
}
WritesOpen world
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
}
WritesOpen world
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 onlyOpen world
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 onlyOpen world
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 onlyOpen world
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
}
WritesOpen world
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
}
WritesOpen world
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
}
WritesOpen world
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 onlyOpen world

Resources 0

  • None observed.

Resource templates 0

  • None observed.

Prompts 0

  • None observed.

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

iOS Simulator MCP Server questions

How do I install iOS Simulator MCP Server?

Install the selected package version with: npm install --save-exact ios-simulator-mcp@2.1.0

What tools does iOS Simulator MCP Server provide?

iOS Simulator MCP Server exposed 17 tools during independent protocol observation, including get_booted_sim_id, install_app, launch_app, list_apps, open_simulator, open_url, record_video, screenshot, and others.

Is iOS Simulator MCP Server secure?

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

Official vs Community MCP Servers

Let’s talk about MCP security.

Share your details and our security team will contact you.