Skip to content

v2.1.0 - App Lifecycle Tools 📱

Latest

Choose a tag to compare

@joshuayoes joshuayoes released this 13 Aug 16:39
a32f7f8

iOS Simulator MCP 2.1.0

Features

  • terminate_app Tool: Terminates a running app by bundle identifier — useful for cold-start vs warm-start testing, resetting app state between runs, and crash-recovery flows. Returns a graceful error (surfacing simctl's "found nothing to terminate") when the app isn't running. Thanks @saen-ai! (#61, #83)
  • open_url Tool: Opens any URL or deep link in the simulator — https:// pages, custom URL schemes (e.g. myapp://profile/123), universal links, and OAuth redirect flows. Thanks @saen-ai! (#61, #83)
  • list_apps Tool: Lists all installed apps as sorted name — bundleId lines, so agents can discover bundle identifiers before calling launch_app or terminate_app. Parses simctl listapps plist output via plutil -convert json, which is resilient to formatting differences across Xcode versions. Thanks @saen-ai! (#61, #83)

Improvements

  • Shared run() stdin Support: The command helper gained an optional input option (piping data to a child's stdin without a shell), used by list_apps for the plutil conversion. Keeps all command execution on the same execFile pathway with bounded output and uniform error handling. (#83)

Documentation

  • Testing & Verification Harness Guide: New TESTING.md documenting how the project is actually verified — the per-PR review harness (--strict-mcp-config isolation, one empirical check per claim), the post-publish smoke test, and known hazards. QA.md rewritten as a version-agnostic release scenario targeting the Settings app. (#81)
  • App Lifecycle QA Scenario: QA.md gained a scripted scenario exercising the three new tools end-to-end. (#83)
  • New Tool Reference: README documents terminate_app, open_url, and list_apps parameters. (#83)

Build

  • Version Bump: Updated the project version to 2.1.0.