-
Notifications
You must be signed in to change notification settings - Fork 374
Multi-device commands ignore device parameter on iOS 17+ physical devices #253
Copy link
Copy link
Open
Description
Bug Description
When using multiple physical iOS 17+ devices, all MCP tool calls ignore the device parameter and route commands to the first device in the list instead of the specified device.
Environment
- mobile-mcp version: 0.0.39 and 0.0.40 (both affected)
- iOS version: 26.1 / 26.2 (iOS 17+ devices requiring go-ios tunnel)
- go-ios: Installed at
/Users/matt/go/bin/ios - Platform: macOS Darwin 24.6.0
- MCP SDK: @modelcontextprotocol/sdk
Steps to Reproduce
- Connect multiple physical iOS 17+ devices
- Verify devices are listed correctly:
mobile_list_available_devices
// Returns: iPad (00008132-...), iPad (2) (00008130-001202...), Cobra (00008130-001E0D...)
- Send command to specific device:
mobile_open_url({ device: "00008130-001202823CC0001C", url: "https://example.com" })
- Expected: URL opens on iPad (2)
- Actual: URL opens on iPad (first device in list)
Evidence
When go-ios executes, it logs:
"no udid specified using first device in list"
This indicates mobile-mcp is NOT passing the device ID to go-ios when executing commands on physical iOS 17+ devices.
Tested Scenarios
| Tool | Device Param | Expected Device | Actual Device |
|---|---|---|---|
| mobile_open_url | 00008130-001202823CC0001C | iPad (2) | iPad |
| mobile_open_url | 00008132-0012694E0EF9001C | iPad | iPad |
| mobile_open_url | 00008130-001E0D802E42001C | Cobra | iPad |
| mobile_take_screenshot | 00008130-001202823CC0001C | iPad (2) | iPad |
| mobile_list_elements_on_screen | 00008130-001202823CC0001C | iPad (2) | iPad |
All commands route to the same device regardless of the device parameter.
Workaround Attempted
- Pinning to version 0.0.39 (same issue)
- Adding explicit device selection via
mobile_use_devicetool (tool doesn't exist) - Restarting go-ios tunnels (no effect)
Expected Behavior
The device parameter should be passed to go-ios so commands execute on the correct physical device.
Additional Context
- This was working on Jan 15, 2026 around 3:49 AM PST with @latest (which was 0.0.39 at the time)
- v0.0.40 was released Jan 15 at 7:18 PM PST
- Multi-device support may have regressed, or there's an intermittent issue with device session management
Suggested Fix
Ensure the device UDID is passed to go-ios when executing commands. The go-ios CLI accepts -u or --udid flag:
ios <command> --udid=<device-id>
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels