Labsco
MCP SERVER

Android ADB Server

by github-hewei

Drive a real Android device over ADB — install, launch, tap, type, swipe — and have a vision model describe what is on the screen.

Mobile & App Store Release
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.