mobile-mcp @latest fails with 'spawnSync ios ENOENT' — how to fix?
On macOS (darwin 24.5.0) with zsh, mobile-mcp v0.0.20 installed via
npx -y @mobilenext/mobile-mcp@latestfails to initialize withError: spawnSync ios ENOENTand no mobile tools work, even on a setup that only uses Android. Pinning to v0.0.19 works. Why does @latest break, and is there a fix besides downgrading?Originally asked on GitHub: https://github.com/mobile-next/mobile-mcp/issues/118
6 answers
No fixed release is confirmed in this thread. Users diagnosed the cause: v0.0.20 expects the separate go-ios binary (github.com/danielpaulus/go-ios) to be on the machine, and when it is missing the server throws
spawnSync ios ENOENTeven on Android-only setups. A contributor submitted PR #132 to add go-ios as a package dependency; maintainers said they were checking it (comment 10), but the thread does not confirm the PR was merged or released.Until then, these workarounds were confirmed by people in the thread:
- Install go-ios from its GitHub project. Multiple users reported this resolved the error with @latest, so you keep the newer tools (
save_screenshot,use_default_device). - Pin to the last known-good version in the MCP config:
yamlmobile-mcp: command: "npx" args: ["-y", "@mobilenext/mobile-mcp@0.0.19"]The reporter confirmed this initializes correctly and detects Android devices (e.g. R3CR50MWDSL). 3. If building from source, one user uncommented the iOS-related code in server.ts and the error went away — that is a local source edit, not a supported config option.
The maintainer also asked reporters to run
npx -y @mobilenext/mobile-mcp@latestdirectly and gather logs withclaude --mcp-debug; no log output was posted back in the thread. General advice: with MCP servers, pinning a known-good version is more reliable than tracking @latest until the dependency is bundled.Did this work for you?- Install go-ios from its GitHub project. Multiple users reported this resolved the error with @latest, so you keep the newer tools (
What @rolandkakonyi tried on GitHub (Worked)
Installed the go-ios binary from its GitHub project (github.com/danielpaulus/go-ios); the
spawnSync ios ENOENTerror went away, and another user (comment 12) confirmed the same fix.Source: https://github.com/mobile-next/mobile-mcp/issues/118#issuecomment-3060378899 (opens external site)
Did this work for you?What a GitHub user tried on GitHub (Worked)
Pinned the MCP config to @mobilenext/mobile-mcp@0.0.19 with args ["-y", "@mobilenext/mobile-mcp@0.0.19"]; initialization succeeded and Android device detection worked (device R3CR50MWDSL).
Source: https://github.com/mobile-next/mobile-mcp/issues/118 (opens external site)
Did this work for you?What @h-kaiy tried on GitHub (Worked)
Edited server.ts to uncomment the iOS-related code; the error no longer occurred locally on a machine where only the Android SDK was installed.
Source: https://github.com/mobile-next/mobile-mcp/issues/118#issuecomment-3003388969 (opens external site)
Did this work for you?What @codeaholicguy tried on GitHub (Outcome unclear)
A contributor submitted PR #132 to add go-ios as a package dependency; maintainers said they were checking it, but no merge or fixed release is confirmed in the thread.
Source: https://github.com/mobile-next/mobile-mcp/issues/118#issuecomment-3026788655 (opens external site)
Did this work for you?What @gmegidish tried on GitHub (Outcome unclear)
Maintainer suggested running
npx -y @mobilenext/mobile-mcp@latestdirectly and collecting logs withclaude --mcp-debug; no results were posted back in the thread.Source: https://github.com/mobile-next/mobile-mcp/issues/118#issuecomment-2999591827 (opens external site)
Did this work for you?
Related questions
- mobile-mcp: LLM taps iOS keypad coordinates instead of using type_keys — workaround?
- Mobile MCP in Android Studio Copilot says no devices even though adb works locally
- Why are iOS elements of type "Other" missing from mobile-mcp mobile_list_elements_on_screen?
- mobile-mcp with Flutter apps: TextFields missing, taps off-target
- mobile-mcp clicks from screenshots land at wrong coordinates on Android