Device & Status

Tools for connection status, device/app listing, deep links, GPS, app termination, screen orientation/size, and app state reset.

get_debugger_status

Check MCP connection status and list connected devices. Call this first to verify your setup.

Parameters

ParameterTypeRequiredDescription
deviceIdstringNoTarget device for topInsetDp override
topInsetDpnumberNoSet Android top inset override (dp). Overrides ADB auto-detect. Persists for the connection

Example

// Request
{ "tool": "get_debugger_status" }

// Response
{
  "appConnected": true,
  "devices": [
    { "deviceId": "emulator-5554", "platform": "android" }
  ]
}

Tips

  • Always call this first to confirm the app is connected before using other tools.
  • Use topInsetDp on Android if status bar offset is incorrect (e.g., notch devices).

list_devices

List connected simulators/emulators and physical devices.

Parameters

ParameterTypeRequiredDescription
platform"ios" | "android"Yesios: lists idb targets. android: lists adb devices

Example

// Request
{ "tool": "list_devices", "arguments": { "platform": "android" } }

// Response (summary text)
Found 1 Android device(s):
- emulator-5554 (device) model=Pixel_7_API_34

Tips

  • iOS requires idb to be installed.
  • Android requires adb in your PATH.

list_apps

List installed apps on the device/simulator. No app connection required.

Parameters

ParameterTypeRequiredDescription
platform"ios" | "android"YesTarget platform
deviceIdstringNoDevice ID. Auto if single

Example

// Request
{ "tool": "list_apps", "arguments": { "platform": "ios" } }

// Response (summary text)
Found 2 app(s). Use these IDs with terminate_app(platform, appId).
- com.example.app (My App)
- com.example.app2 (My App 2)

Tips

  • iOS: idb list-apps --json. Android: pm list packages -3 (third-party only).
  • Use returned id as appId in terminate_app.

Open a deep link URL on the simulator/device to navigate directly to a specific screen.

Parameters

ParameterTypeRequiredDescription
urlstringYesDeep link URL (e.g. myapp://product/123)
platform"ios" | "android"YesTarget platform
deviceIdstringNoDevice ID. Auto if single

Example

// Request
{
  "tool": "open_deeplink",
  "arguments": {
    "platform": "ios",
    "url": "myapp://settings/profile"
  }
}

Tips

  • Make sure your app has registered the URL scheme in its native configuration.
  • iOS: uses xcrun simctl openurl. Android: uses adb shell am start.

set_location

Set GPS coordinates on an iOS simulator or Android emulator.

Parameters

ParameterTypeRequiredDescription
platform"ios" | "android"YesTarget platform
latitudenumberYesLatitude (-90 to 90)
longitudenumberYesLongitude (-180 to 180)
deviceIdstringNoDevice ID. Auto if single

Example

// Request
{
  "tool": "set_location",
  "arguments": {
    "platform": "android",
    "latitude": 37.5665,
    "longitude": 126.978
  }
}

Tips

  • Android: Only works on emulators (AVD), not physical devices.
  • iOS: Uses xcrun simctl location set.

clear_state

Clear app data or reset permissions.

Parameters

ParameterTypeRequiredDescription
platform"ios" | "android"YesTarget platform
appIdstringYesBundle ID (iOS) or package name (Android)
deviceIdstringNoDevice ID. Auto if single

Example

// Request
{
  "tool": "clear_state",
  "arguments": {
    "platform": "android",
    "appId": "com.myapp"
  }
}

Tips

  • Android: Runs pm clear — wipes all app data (storage, databases, preferences).
  • iOS: Only resets privacy permissions (xcrun simctl privacy reset). For a full data reset on iOS, uninstall and reinstall the app.

terminate_app

Terminate an app by bundle ID or package name. No app connection required. For development and CI only; avoid terminating system or critical apps.

Parameters

ParameterTypeRequiredDescription
platform"ios" | "android"YesTarget platform
appIdstringYesiOS bundle ID or Android package. Use list_apps to find
deviceIdstringNoDevice ID. Auto if single

Example

// Request
{
  "tool": "terminate_app",
  "arguments": { "platform": "android", "appId": "com.example.app" }
}

Tips

  • iOS: simctl terminate. Android: am force-stop.
  • appId allows only letters, digits, dots, underscores, hyphens.

get_orientation

Get current screen orientation (portrait/landscape) and platform raw value. No app connection required.

Parameters

ParameterTypeRequiredDescription
platform"ios" | "android"YesTarget platform
deviceIdstringNoDevice ID. Auto if single

Example

// Request
{ "tool": "get_orientation", "arguments": { "platform": "ios" } }

// Response
{ "orientation": "portrait", "raw": 1 }

Tips

  • iOS: backboardd GraphicsOrientation (1–4). Android: user_rotation (0–3).

set_orientation

Set screen orientation to portrait or landscape.

Parameters

ParameterTypeRequiredDescription
platform"ios" | "android"YesTarget platform
orientation"portrait" | "landscape"YesDesired orientation
deviceIdstringNoDevice ID. Auto if single

Example

// Request
{
  "tool": "set_orientation",
  "arguments": { "platform": "android", "orientation": "landscape" }
}

Tips

  • Android: Sets user_rotation 0 (portrait) or 1 (landscape).
  • iOS: Simulator only; returns an error on physical device.

get_screen_size

Get screen dimensions (width and height in px).

Parameters

ParameterTypeRequiredDescription
platform"ios" | "android"YesTarget platform
deviceIdstringNoDevice ID. Auto if single

Example

// Request
{ "tool": "get_screen_size", "arguments": { "platform": "android" } }

// Response (summary text)
Screen size: 1920×1200 px

Tips

  • Android: Returns physical pixels from wm size. No app connection required.
  • iOS: Returns from getScreenInfo() only when app is connected; otherwise "not supported" error.