Waiting for elements and scrolling are what make it usable rather than a demo: the assistant can follow a flow through an app the way a tester would, instead of firing blind taps at fixed coordinates.
An Android automation server built on UIAutomator2 and FastMCP. It exposes the device itself: the UI actions you would perform by hand, the app lifecycle around them, and the ADB layer underneath when you need to drop down to it.
- UI actions — tapping an element, entering text, swiping the screen, waiting for an element to appear, and scrolling a page
- Apps — starting and stopping an application, reading which app is currently in front, and managing the UIAutomator2 service on the device
- Device management — running ADB commands, package management, and taking a screenshot
Python 3.10+, the ADB tools on your PATH, and an Android device or emulator connected. Clone the repository and `pip install -e .`, then point your client at `uv --directory /path/to/uiautomator2-mcp run src/server.py`, substituting your own project path. Because the server drives a real device, whatever is on screen is what it acts on — connect the device you mean before starting a session.
One command — uvx uiautomator2-mcp
