@deepsyte/mobile-mcp
v1.2.1
Published
DeepSyte Mobile MCP server — automate Android/iOS via Appium from Claude, Cursor, or Windsurf
Downloads
261
Maintainers
Readme
@deepsyte/mobile-mcp
Mobile automation MCP server — 78 tools for automating Android and iOS apps from Claude, Cursor, Windsurf, or any MCP client.
Quick start
Add to your MCP client config:
{
"mcpServers": {
"deepsyte-mobile": {
"command": "npx",
"args": ["-y", "@deepsyte/mobile-mcp"]
}
}
}Restart your client, then run mobile_devices to confirm.
Requirements
- ADB (Android SDK Platform Tools) in PATH
- Appium 3.x running locally for session-based tools (
appium server) - iOS: macOS + Xcode + WebDriverAgent
Tools
Device & Session
| Tool | Description |
|---|---|
| mobile_devices | List connected devices |
| mobile_screenshot | Fast ADB screenshot |
| mobile_uitree | Dump accessibility XML via ADB. Android only. |
| mobile_record_start / mobile_record_stop | Screen recording |
| mobile_session_start | Start Appium session (Android or iOS) |
| mobile_session_stop / mobile_session_status | Manage session |
App Management
| Tool | Description |
|---|---|
| mobile_app_launch / mobile_app_stop | Launch or stop app. Android only. |
| mobile_install_app | Install APK/IPA from local path |
| mobile_uninstall_app | Remove app from device |
| mobile_activate_app | Bring app to foreground (cross-platform) |
| mobile_clear_app_data | Clear storage/cache without uninstalling |
Interaction
| Tool | Description |
|---|---|
| mobile_tap | Tap at coordinates |
| mobile_swipe | Swipe between two points |
| mobile_type | Type text (keyboard-driven) |
| mobile_key | Press hardware key (HOME, BACK, ENTER…) |
| mobile_double_tap | Double-tap at coordinates |
| mobile_drag | Drag with hold (triggers drag-and-drop) |
| mobile_long_press | Long press at coordinates |
| mobile_hide_keyboard | Dismiss soft keyboard |
| mobile_press_home | Home button. Android only. |
| mobile_press_back | Back button. Android only. |
| mobile_set_orientation / mobile_get_orientation | Rotate device |
Element Ops
| Tool | Description |
|---|---|
| mobile_tap_text | Find element by text and tap |
| mobile_find_element | Find element by selector |
| mobile_element_text | Get element text |
| mobile_fill_field | Clear + type into field |
| mobile_set_value | Set field value (bypasses keyboard) |
| mobile_wait_for_element | Wait until element appears |
| mobile_element_exists | Check if element is on screen |
| mobile_find_all_elements | Find all matching elements |
| mobile_scroll_to_text | Scroll until text is visible |
| mobile_screenshot_element | Screenshot cropped to element bounds |
Alerts, Context & State
| Tool | Description |
|---|---|
| mobile_handle_alert | Accept or dismiss alert/dialog |
| mobile_get_contexts | List Native/WebView contexts |
| mobile_switch_context | Switch context |
| mobile_app_state | App state (foreground/background/not running) |
| mobile_pinch / mobile_zoom | Pinch gestures |
Device Control
| Tool | Description |
|---|---|
| mobile_grant_permission / mobile_revoke_permission | ADB permission management. Android only. |
| mobile_deep_link | Open URL scheme or universal link |
| mobile_clipboard | Get or set clipboard |
| mobile_push_file / mobile_pull_file | File transfer to/from device |
| mobile_geolocation | Mock GPS coordinates |
AI-First
| Tool | Description |
|---|---|
| mobile_source | Raw accessibility XML |
| mobile_describe_screen | Human-readable element list (faster for AI) |
| mobile_assert_text | Assert text visible — throws if not |
| mobile_wait_for_screen_change | Wait until screen content changes |
| mobile_execute | Raw mobile: script escape hatch |
Screenshot opt-in
9 interaction tools accept screenshot: true to return a confirmation screenshot:
mobile_tap, mobile_tap_text, mobile_swipe, mobile_type, mobile_fill_field, mobile_long_press, mobile_double_tap, mobile_drag, mobile_scroll_to_text
Browser / WebView (CDP)
20 tools for automating Chrome on the device: navigate, tap, type, evaluate JS, cookies, localStorage, network throttle, geolocation, user agent, and more. Call mobile_get_contexts to find the WebView, mobile_switch_context to enter it, then use mobile_browser_* tools.
Appium 3 note
All mobile: scripts use /execute/sync. Upgrade from Appium 2 if you see 404 errors.
DeepSyte integration
npx -y @deepsyte/cli loginScreenshots and recordings upload to deepsyte.com automatically.
Changelog
- v1.2.0 — iOS support, 26 new tools (app lifecycle, gestures, device control, AI-first), screenshot opt-in on 9 tools
- v1.1.1 — Fix:
/execute→/execute/syncfor Appium 3 - v1.1.0 — Native app automation: element finding, gestures, alerts, app state
- v1.0.0 — Initial release: ADB tools + CDP browser automation
