LabscoMCP early access ↗
nim444MCP SERVER

MCP Android Agent

Drive a real Android device from an agent — tap, type, swipe, screenshot, and read the UI tree.

by nim444 ↗Mobile & App Store ReleaseCommunity

LABSCO SUMMARY

Elements are addressed by text and resource id, not pixel coordinates.

That is what makes an automation survive a layout change — clicking by resource id and waiting for an element to appear beats replaying tap positions from a recording. Pair dump_hierarchy with the toast capture when a step silently fails: the XML tells you what the screen actually contains, and the toast usually tells you why the app refused.

What it is

A Python MCP server that automates Android devices through uiautomator2 over ADB. Tools are grouped by job — device, apps, screen, input, inspection and a few advanced ones — and it runs either as a stdio server for AI clients or as an HTTP API.

What you get

  • Device: connect_device, get_device_info, get_device_status, check_adb_and_list_devices
  • Apps: get_installed_apps, get_current_app, start_app, stop_app, stop_all_apps, clear_app_data
  • Screen: screen_on, screen_off, unlock_screen, wait_for_screen_on
  • Input: click and long_click by text, resource id or description, plus send_text, swipe, drag and press_key
  • Inspection: get_element_info, wait_for_element, scroll_to, screenshot, and dump_hierarchy for the whole screen as XML
  • Advanced: get_toast to capture the last toast message, and wait_activity to block until a named activity appears

Requirements

Python 3.13 or higher, Android Debug Bridge on your PATH, and a connected device with USB debugging enabled and uiautomator2 support. Install dependencies with uv. The server ships configured for HTTP on port 8080; for AI clients you switch the entry point to stdio transport before wiring it into Claude Desktop or VS Code.

Setup effort

Build from source — git clone https://github.com/nim444/mcp-android.git