get-devicesLABSCO SUMMARY
Device housekeeping — installs, permissions, files, screenshots — becomes something the client does without you switching to a terminal.
The tools map one to one onto the adb subcommands you would otherwise type, and they surface the switches instead of hiding them: list-packages carries the whole filter set down to installer and uninstalled packages, install-apk defaults to allowing reinstall, test packages and downgrade, and rm takes force and recursive. The vocabulary stops where the device shell's does — packages, files, permissions, text input and screenshots — so driving the UI of an app is not part of it.
What it is
An ADB front end for a connected Android device, with 12 tools covering packages, permissions, file transfer, APK installs, text input and screenshots.
What you get
- get-devices lists the connected Android devices, showing each one's full adb detail line unless you turn showDetails off.
- list-packages lists what is installed and filters it to third-party, system, enabled, disabled or uninstalled packages, optionally with each package's APK path and the installer that put it there.
- install-apk pushes an APK from a local path, allowing reinstall, test packages and downgrade by default and granting every permission up front when you ask for it; uninstall-apk removes a package, and keepData leaves its data and cache behind.
- clear-app-data wipes one package's data and cache, reset-permissions returns a package to its default permission state, and grant-permission hands it one named permission.
- pull and push move files between the device and local disk, rm deletes a path on the device with force and recursive available, and screencap saves a screenshot to a device path as PNG.
- input-text types a string into whatever currently has focus on the device.
Requirements
ADB from the Android SDK Platform Tools, on your PATH and answering adb version. USB debugging switched on for the device — tap the build number 7 times to unlock developer options first. The server is launched with the absolute path to your adb binary as an argument. No credentials and no keys.
Setup effort
Build from source — git clone https://github.com/jiantao88/android-mcp-server.git
USE CASES
Getting a build onto a connected phone
List the devices, then install the APK — reinstall, downgrade and test packages are allowed unless you turn them off.
Finding out what is installed on a device
Packages filtered to third-party, system, enabled or disabled, with the APK path when you want it.
Starting an app from a clean slate
Clear the app's data by package name, or uninstall it and choose whether the data goes with it.
Reproducing a permissions problem
Reset every permission the package holds, then grant back the one you want to test.
Moving files on and off the device
Pull a path down, push one back, and delete what you no longer need — recursively if you ask for it.
Driving the screen from the keyboard
Send text to the device, capture the screen to a path on it, then pull the image across.
12 tools
Listed in project docs. Your client may show a different list.
list-packagesinput-textinstall-apkuninstall-apkclear-app-datapullpushscreencaprmreset-permissionsgrant-permissionBEFORE YOU INSTALL
What to know first
Tools you get
12 tools named in the project's documentation.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/jiantao88/android-mcp-server.git
cd android-mcp-server
npm install
npm run build
MCP Clients
Any MCP client
{
"mcpServers": {
"adb": {
"command": "node",
"args": [
"<YOUR_PATH_TO_ANDROID_MCP_SERVER>/build/index.js",
"/usr/local/bin/adb"
]
}
}
}