install_appLABSCO SUMMARY
The device becomes something the model can both see and touch.
Coordinates alone make for blind automation. Pairing gestures with a screen description means the agent can decide where to tap from what is actually rendered, and the shell call is there for everything the wrapper does not name.
What it is
A Go server that wraps ADB against one attached Android device. It covers app lifecycle, screen state, input and gestures, plus raw shell, and it can send a screenshot to a vision model such as qwen2.5-vl and return a description of the screen in words.
What you get
- Apps installed, uninstalled, launched, terminated and listed, and a check for whether a given package is there
- The screen unlocked or locked, and whether it is currently locked or awake
- Text typed and key presses sent, including long presses at a coordinate
- Swipes in all four directions
- A screenshot described in words by a vision model, when that model is enabled
- Screen size and DPI, and system information for the device
- Any adb shell command, for the things no dedicated call covers
Requirements
The device's id, which adb devices prints, goes in the environment. The screen-lock passcode is optional and only needed to unlock the screen. The description feature is off by default: switch it on, then supply an API key, a base URL and a model name for the vision provider you are using. Built from source with go build.
Setup effort
Build from source — git clone https://github.com/github-hewei/mcp-android-adb-server.git
USE CASES
Putting a build on a phone and opening it
Install the APK, confirm the package is really there, and launch it.
Getting past the lock screen before a test run
Check whether the screen is locked or asleep, then unlock it with the stored passcode.
Walking through a signup flow by hand
Type into the field, press the key that submits it, and long-press where a context menu is needed.
Reading a screen the agent cannot see
Take the screen description from the vision model and use it to decide the next swipe rather than guessing at coordinates.
Sizing a layout bug
Read the screen size and DPI, and the device's system information, before filing what you saw.
Cleaning the device between runs
Kill the running app and uninstall it, or drop to a shell command for the state a tool does not reach.
24 tools
Listed in project docs. Your client may show a different list.
uninstall_appterminate_applaunch_applist_appis_app_installedunlock_screenlock_screenis_screen_lockedis_screen_activeinput_textinput_keytaplong_tapbackswipe_upswipe_downswipe_leftswipe_rightscreen_sizescreen_dpiscreenshot_descriptionsystem_infoshell_commandBEFORE YOU INSTALL
What to know first
Tools you get
24 tools named in the project's documentation.
Requires
DEVICE_ID in your environment
Optional
VISUAL_MODEL_API_KEY in your environment
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
Build from source
# clone the repo and build
git clone https://github.com/github-hewei/mcp-android-adb-server.git
cd mcp-android-adb-server
go buildConfiguration file
{
"mcpServers": {
"mcp-android-adb-server": {
"command": "D:\\www\\golang\\mcp-android-adb-server\\mcp-android-adb-server.exe",
"env": {
"DEVICE_ID": "<YOUR_DEVICE_ID>",
"SCREEN_LOCK_PASSWORD": "123456",
"VISUAL_MODEL_ON": "true",
"VISUAL_MODEL_API_KEY": "<YOUR_VISUAL_MODEL_API_KEY>",
"VISUAL_MODEL_BASE_URL": "https://openrouter.ai/api/v1/",
"VISUAL_MODEL_NAME": "qwen/qwen2.5-vl-72b-instruct:free"
}
}
}
}