Coordinate-driven phone automation breaks the moment a dialog moves. Here the agent reads a structured description of the screen, finds an element by its text or description, waits for one to appear, and only then acts. Launching by package and activity is the reliable path when launching by app name does not work on a given device.
A bridge from an MCP client to a USB-connected Android device through ADB. Alongside the raw gestures it exposes a structured read of the current screen, so an agent can decide what to touch instead of guessing at coordinates.
- A structured analysis of the current screen and its UI elements, with an optional screenshot
- One interaction entry point covering tap, swipe, key press, text input, find, wait and scroll - by coordinates, by element text, or by content description
- Calls and SMS: place and end a call, send a message, read received and sent messages
- Contacts, including creating a new one by driving the contacts UI
- Apps: launch by name, by package, or by package and activity, list what is installed, and close an app
- Screenshots, screen recording, media control, app shortcuts and opening a URL in the device browser
Python 3.7+, ADB installed and configured, USB debugging enabled on the device, and the phone connected by USB. Run it with uvx phone-mcp. Nothing else to sign up for - the credential is physical access to an unlocked phone.
One command — uvx phone-mcp
