Skip to content

ios-simulator-mcp

MCP Developer Tools

A Model Context Protocol server for controlling and inspecting iOS simulators via a set of JSON‑RPC style commands

JavaScript Latest 1.6.0 · 1mo ago Security brief →

Features

  • Retrieve the ID of the currently booted iOS simulator
  • Open the iOS Simulator application programmatically
  • Query full‑screen accessibility information (ui_describe_all)
  • Perform UI interactions such as tap, swipe, and text input
  • Capture screenshots or compressed view images on demand

Recent releases

View all 9 releases →
1.6.0 New feature
⚠ Upgrade required
  • SDK dependency alignment: upgraded `@modelcontextprotocol/sdk` to ^1.29.0 and `zod` to ^3.25.0
  • Documentation updates including CLAUDE.md references, README syntax correction, and record_video UDID docs
Notable features
  • `ui_find_element` tool for searchable accessibility tree with matching options
  • Optional `env` parameter in `launch_app` to pass environment variables at launch
  • `record_video` now accepts an optional `udid` parameter for targeted recording
Full changelog

iOS Simulator MCP 1.6.0

Features

  • ui_find_element Tool: New tool that searches the accessibility tree by label, unique identifier, and/or element type with configurable substring/exact matching and case sensitivity. Returns only matching elements instead of the full tree, dramatically reducing token usage in agent loops. Thanks @kattouf! (#51)

    https://github.com/user-attachments/assets/d108eefe-9784-4560-9048-aab67e9769a5

  • launch_app Environment Variables: Added an optional env parameter to launch_app that passes Record<string, string> entries to the target app via SIMCTL_CHILD_* environment variables at launch. Useful for feature flags, test fixtures, and dynamic configuration without rebuilding. Thanks @markgrover! (#47)

  • record_video UDID Support: The record_video tool now accepts an optional udid parameter instead of hardcoding "booted", enabling targeted recording when multiple simulators are running. Thanks @saen-ai! (#59)

Improvements

  • ui_view Robustness: Wrapped JSON.parse of idb output in error handling so the MCP server returns a clear error instead of crashing on malformed output. Added validation that screen frame dimensions are positive numbers.
  • ui_view Temp File Cleanup: Raw and compressed screenshot files are now deleted immediately after the image is read into memory instead of accumulating until process exit. Filenames include a random suffix to avoid collisions on rapid successive calls.
  • record_video Startup Detection: Added an exit listener so record_video rejects promptly with the captured stderr if the capture process dies during startup, instead of silently resolving after the timeout. Startup timeout bumped from 3s to 5s for slower machines.
  • SDK Dependency Alignment: Upgraded @modelcontextprotocol/sdk to ^1.29.0 and aligned zod to ^3.25.0 to match the SDK's peer dependency range.

Documentation

  • CLAUDE.md Doc References: Added a section pointing to README, CONTRIBUTING, QA, TROUBLESHOOTING, SECURITY, and CONTEXT files. (#48)
  • README claude mcp add Syntax: Corrected the claude mcp add command syntax in the README. Thanks @shmkane! (#45)
  • record_video UDID Docs: Documented the new udid parameter in the README tool reference.

Build

  • Version Bump: Updated the project version to 1.6.0.
1.5.2 New feature
Notable features
  • Added MCP tool annotations (`title`, `readOnlyHint`, `openWorldHint`) for client integration and discoverability.
  • Simplified npm publishing using GitHub trusted publishers, eliminating the need for `NPM_TOKEN` secret and provenance flags.
  • Upgraded workflow to use Node.js 24.x.
Full changelog

iOS Simulator MCP 1.5.2

Improvements

  • Tool Annotations: Added MCP tool annotations (title, readOnlyHint, openWorldHint) to all tools for better client integration and discoverability.
  • Simplified npm Publishing: Updated GitHub workflow to use npm trusted publishers, removing the need for NPM_TOKEN secret and provenance flags.
  • Node.js Version Update: Upgraded workflow to use Node.js 24.x for publishing.

Documentation

  • Troubleshooting Updates: Improved idb installation instructions with clearer asdf setup steps and corrected verification commands (idb -h instead of idb --version).
  • Cursor Commands: Migrated release automation from .cursor/rules to .cursor/commands format.

Build

  • Package.json Fixes: Corrected bin path format and repository URL format.
  • Version Bump: Updated the project version to 1.5.2.
v1.5.1 New feature
Notable features
  • Custom IDB Path Configuration via IOS_SIMULATOR_MCP_IDB_PATH
  • Enhanced IDB command handling with centralized idb() wrapper
Full changelog

iOS Simulator MCP v1.5.1

✨ Features

  • Custom IDB Path Configuration: Added support for custom IDB executable path via IOS_SIMULATOR_MCP_IDB_PATH environment variable, allowing users to specify a non-standard IDB installation location. Resolves #36

📈 Improvements

  • Enhanced IDB Command Handling: Centralized IDB command execution with the new idb() wrapper function
  • Path Validation: Added validation to ensure custom IDB path exists before use
  • Tilde Expansion: Added support for ~/ path expansion in the custom IDB path

📚 Documentation

  • Environment Variables: Added documentation for the new IOS_SIMULATOR_MCP_IDB_PATH environment variable with usage examples

📝 Internal Changes

  • Refactored all idb command invocations to use the centralized idb() function
  • Added getIdbPath() helper function for retrieving and validating the IDB executable path

🔧 Build

  • Version Bump: Updated the project version from 1.5.0 to 1.5.1
v1.5.0 New feature
Notable features
  • open_simulator: Opens the iOS Simulator application
  • install_app: Installs .app or .ipa bundles on the simulator
  • launch_app: Launches apps by bundle identifier with force termination support
Full changelog

iOS Simulator MCP v1.5.0

✨ Features

  • App Management Tools: Added three new tools for managing iOS apps on the simulator:
    • open_simulator - Opens the iOS Simulator application

      https://github.com/user-attachments/assets/b344e981-8a54-47aa-829b-9228b7ac9d51

    • install_app - Installs app bundles (.app or .ipa files) on the simulator

      https://github.com/user-attachments/assets/09d991f6-0457-4c1b-b367-9075ae84c2a5

    • launch_app - Launches apps by bundle identifier with support for force termination of currently running apps.

      https://github.com/user-attachments/assets/18d9b341-915d-444f-bec6-0eb56c4871b1

Thank you @webcoyote for this contribution in #39!

🔒 Security

  • Dependency Updates: Updated project dependencies:
    • @modelcontextprotocol/sdk upgraded from 1.6.0 to 1.18.2
    • zod upgraded from 3.24.2 to 3.25.76
    • @modelcontextprotocol/inspector upgraded from 0.4.1 to 0.16.8

📚 Documentation

  • Contributing Guidelines: Added detailed dependency management guidelines to CONTRIBUTING.md to ensure compatibility with MCP SDK during upgrades
  • QA Documentation: Updated test case for Photos app to include compatibility notes for different iOS versions

🔧 Build

  • Version Bump: Updated the project version from 1.4.3 to 1.5.0 in package.json and package-lock.json
v1.4.3 New feature
Notable features
  • Optional `duration` parameter in `ui_swipe` allowing decimal second values for swipe precision
Full changelog

iOS Simulator MCP v1.4.3

🌟 Features

  • Swipe Duration Parameter: Added optional duration parameter to the ui_swipe tool, allowing more precise control over swipe gestures with decimal second values (e.g., 0.1 for quick swipes). Thank you to @dennislysenko for your contribution!

https://github.com/user-attachments/assets/1fb630ed-208f-4521-a893-baa1f7ec7c6c

📚 Documentation

  • Featured Publications Section: Added a new section to README highlighting project mentions in various publications including Anthropic's engineering blog, React Native Newsletter, Mobile Automation Newsletter, and awesome-mcp-servers collection
  • Contributing Guidelines: Introduced comprehensive CONTRIBUTING.md file outlining contribution process, project philosophy, testing requirements, and development setup
  • Pull Request Template: Added standardized PR template to ensure consistent contribution quality and testing procedures

🔧 Build

  • Version Bump: Updated the project version to v1.4.3

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
2,027
Forks
92
Language
JavaScript
Downloads/week
3,476 ↑6%
NPM Maintainers
1
Contributors
15

Install & Platforms

Install via
npm

Beta — feedback welcome: [email protected]