
Android-MCP by CursorTouch: Control an Android Phone from Claude, Cursor and Other Apps
Lets your assistant look at an Android screen and tap, swipe and type to use apps.
Android-MCP lets Claude and other assistants use an Android phone or emulator through ADB. The assistant can read the screen, tap, swipe, type and press buttons, which lets it open apps and test them. It runs on your computer and talks to the device over USB or Wi-Fi. There is no read-only mode, and the project says to use emulators or test devices for untrusted prompts.
Good for
- Developers who want an assistant to run through app flows on an emulator
- QA testers who want to describe checks in plain language
- People who want hands-free phone tasks on a spare device
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Android MCP
Claude Code
- 1
Copy this prompt.
Add the Android MCP server to Claude Code. Run this command: claude mcp add android -- uvx --python 3.13 android-mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires uv (Python 3.13), adb (Android platform-tools).
Needs Python 3.13 and adb on your PATH, and a device ADB can see. Adapted from the README's uvx command for this app; the README does not name it.
Built from the package data we hold. Not yet tested by us.
Tools
Reads the phone screen: what is on it and where to tap
Returns the interactive elements on the current screen with their labels and tap coordinates. With the vision option it adds a screenshot, with boxes drawn on it unless you turn that off.
Try: “What is on my phone screen right now?”
Read ·
SnapshotLists the phones and emulators connected over ADB
Shows each device ADB can see and its state.
Try: “Which Android devices are connected?”
Read ·
ListDevicesConnects to one device by its serial number
Opens a connection to the ADB device with the serial you give.
Try: “Connect to emulator-5554.”
Write ·
ConnectDeviceLists, connects or disconnects a device
One tool with three actions: list the devices, connect to one, or disconnect the current one. Wi-Fi targets get port 5555 added when it is missing.
Try: “Disconnect from the phone.”
Write ·
DeviceTaps the screen at given coordinates
Sends a tap at the x and y position you give.
Try: “Tap the middle of the screen.”
Write ·
ClickTaps a button or field found by its text or id
Finds an element by text, resource id, class or description and taps it. It is more reliable than coordinates when the layout shifts, and an index picks the nth match.
Try: “Tap the button labelled Sign in.”
Write ·
ClickBySelectorPresses and holds at given coordinates
Sends a long press at the x and y position you give.
Try: “Long-press the app icon at the top left.”
Write ·
LongClickSwipes from one point to another
Drags a finger from the first position to the second, for scrolling or paging.
Try: “Scroll down the list.”
Write ·
SwipeDrags something from one spot and drops it on another
Picks up at the first position and drops at the second.
Try: “Drag the slider all the way to the right.”
Write ·
DragTypes text into a field
Types the text at the position you give, and can clear the field first.
Try: “Type hello into the search box.”
Write ·
TypePresses a device button such as Back or Home
Presses a named key on the device, for example back or volume up.
Try: “Go back to the home screen.”
Write ·
PressPulls down the notification shade
Opens the notification bar so the assistant can read what is shown there with the next snapshot.
Try: “Show me my notifications.”
Write ·
NotificationPauses for a number of seconds
Sleeps for the number of seconds you give, then returns. It changes nothing on the phone, but the source marks it destructive like the touch tools, so it is not counted as read-only.
Try: “Wait three seconds, then look again.”
Write ·
WaitWaits until a button or text appears
Waits for an element to show up on screen and returns it, or an error on timeout. Better than a fixed wait when content loads slowly.
Try: “Wait until the Continue button appears.”
Read ·
WaitForElement
Read from the source code
Permissions
high risk · 3 things to watch
High risk
The assistant can do anything you can do by touch on the connected phone, including opening apps, typing and tapping, and nothing asks it to confirm first. Use an emulator or a spare test device with no real accounts signed in.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can tap and type in any app on the device
Click, Swipe, Drag, Type and Press act on whatever is on screen, such as messages, banking apps or settings. Use an emulator or a test device without real accounts. github.com
Screen contents go to your AI assistant
Snapshot returns on-screen text and, with the vision option, a screenshot. Anything visible on the phone, including private messages, reaches the model. github.com
The README warns about untrusted prompts
It says to use controlled environments such as emulators or test devices when running untrusted prompts or agents. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only mode. The source marks only Snapshot, ListDevices and WaitForElement as read-only; every touch, typing, Notification and Wait tool is marked destructive. |
|---|---|
| Sign-in and keys | No account or key. It connects to a device that ADB already trusts. |
Questions
Is Android-MCP official?
No. CursorTouch makes it as an independent open source project, and it is not from Google.
What do I need to run it?
Python 3.13 and ADB, plus an Android 10 or newer phone or emulator that ADB can see. Turn on USB debugging on a real phone.
Does it work over Wi-Fi?
Yes. Connect the device with adb connect first, then set the Wi-Fi host in the settings or pass the Wi-Fi flag. Port 5555 is added when you leave it out.
Can it run read-only?
No. There is no read-only mode. Only Snapshot, ListDevices and WaitForElement are marked read-only; the tap, swipe, type, press and Notification tools change what the phone shows.
Can it run shell commands on the phone?
No, not in release 0.2.0. The README lists a Shell-Tool, but the release code registers no shell tool. It also lists State-Tool and Press-Tool, which are named Snapshot and Press in the code.
Can it work with more than one phone?
It uses one device at a time. With nothing set it picks the first device ADB lists, or you name one by serial.
Is it free?
Yes. It is open source under the MIT license.
Which AI apps can use it?
The README shows Claude Desktop setup and says it works with any language model. Other apps can use the same uvx command from the install box.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
android-mcp- Registry
- PyPI
- Transport
- stdio
- Auth
- None
- Version
- 0.2.0
- License
- MIT
- Last commit
- Oct 27, 2026
- Open issues
- 4
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com