Practical overview
When it fits
Use it when an MCP client needs to observe Android UI state and perform ADB-backed interactions on a physical device or emulator.
Who it is for
- Developers connecting an MCP-capable AI client to Android devices.
- Teams building agent workflows for Android app interaction or UI testing.
Documented uses
- List and select an Android device or emulator.
- Inspect interactive screen elements and capture screenshots.
- Tap controls by coordinates or exact UI-element attributes.
- Automate touch gestures, text entry, navigation buttons and waits.
Requirements & limits
The repository specifies an MIT license. Running the documented server requires Python 3.13 and Android platform-tools’ adb.
- The server communicates with clients over MCP on stdio and connects to the device through ADB.
- Device selection supports USB, Wi-Fi, automatic selection or a specified serial or network address.
- UI-element inspection depends on the screen becoming idle; coordinate actions can still be used when element extraction fails.
- Text outside the documented printable ASCII and supported accented Latin range requires the separate ADBKeyboard app.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Configure the MCP server and select an Android device
Start the server in an MCP client and specify how it should find the Android device.
Before you start
- Python 3.13
- Android platform-tools with adb
- An MCP client that supports stdio servers
Steps
Run the command below from the project directory.
uv run android-mcp-betaAdd an MCP server entry to the client configuration using command
uvand arguments--directoryandrun android-mcp-beta.Optionally choose a device with
--device SERIAL,--usb [SERIAL],--wifi [HOST]or--connection auto|usb|wifi; corresponding documented environment variables are also available for device selection.
Expected outcome
The MCP client has a stdio server configured to connect to a selected Android device when its first tool is called.
Guide limitations
- The documented command and configuration use
uvand a project-directory path. - The device connection occurs on the first tool call, not when the server starts.
Inspect an Android screen and act on a UI element
Use the available screen-inspection and interaction tools to locate and act on a control.
Before you start
- The server configured in an MCP client
- An Android device reachable through ADB
Steps
Call Snapshot to retrieve interactive elements, labels and tap coordinates; request vision output if a screenshot with labels is useful.
Use ClickBySelector with an exact text, resource ID, class name or description match, or use Click with coordinates.
Use WaitForElement when the workflow needs to wait for an element to appear before proceeding.
Expected outcome
The client can inspect the returned screen information and invoke a documented tap or wait action.
Guide limitations
- The UI element dump can fail when a screen never becomes idle; Snapshot can then return only a screenshot, while coordinate-based input remains available.
- ClickBySelector uses exact matches.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 5 November 2026
- Original website title
- CursorTouch/Android-MCP · Official homepage title · retained in its source language

