2025-04-01: Added support for obtaining screen description content using visual models like `qwen2.5-vl`.
Mcp android adb server mcp server lets Claude, Cursor and other MCP clients work with MCP Android Adb Server directly. 2025-04-01: Added support for obtaining screen description content using visual models like qwen2.5-vl.
2025-04-01: Added support for obtaining screen description content using visual models like qwen2.5-vl.
Once connected, the assistant can call these 14 tools directly:
install_app — Install an application on the Android deviceuninstall_app — Uninstall an application from the Android deviceterminate_app — Terminate a running application on the Android devicelaunch_app — Launch an application on the Android devicelist_app — List all installed applications on the Android deviceis_app_installed — Check if a specific application is installedunlock_screen — Unlock the Android device screenlock_screen — Lock the Android device screenis_screen_locked — Check if the Android device screen is lockedis_screen_active — Check if the Android device screen is activeinput_text — Input text on the Android deviceinput_key — Input key press on the Android devicetap — Perform a tap operation on the screen at a specified positionlong_tap — Perform a long press operation on the screen at a specified positionSetup follows the standard MCP pattern: clone or install the server, then register it in your client's configuration file and restart the client. The configuration snippets on this page cover Claude Desktop, Claude Code and Cursor.
Before the server will start you need to supply 6 environment variables: DEVICE_ID, SCREEN_LOCK_PASSWORD, VISUAL_MODEL_ON, VISUAL_MODEL_API_KEY, VISUAL_MODEL_BASE_URL, VISUAL_MODEL_NAME. Keep credentials in your client's env block or a secrets manager rather than committing them.
Developer-tool servers are usually the first ones people connect, because they turn "help me with this code" into an assistant that can actually read the repo and act on it. MCP Android Adb Server sits in that group, and the shape of its toolset — install_app, uninstall_app, terminate_app among others — tells you what it is really for. Worth comparing against the other developer tools servers in this directory before you commit to one, since several overlap in scope but differ sharply in setup cost and permissions.
| Tool | What it does |
|---|---|
| install_app | Install an application on the Android device |
| uninstall_app | Uninstall an application from the Android device |
| terminate_app | Terminate a running application on the Android device |
| launch_app | Launch an application on the Android device |
| list_app | List all installed applications on the Android device |
| is_app_installed | Check if a specific application is installed |
| unlock_screen | Unlock the Android device screen |
| lock_screen | Lock the Android device screen |
| is_screen_locked | Check if the Android device screen is locked |
| is_screen_active | Check if the Android device screen is active |
| input_text | Input text on the Android device |
| input_key | Input key press on the Android device |
| tap | Perform a tap operation on the screen at a specified position |
| long_tap | Perform a long press operation on the screen at a specified position |
### Configuration
```json
{
"mcpServers": {
"mcp-android-adb-server": {
"command": "D:\\www\\golang\\mcp-android-adb-server\\mcp-android-adb-server.exe",
"env": {
"DEVICE_ID": "xxxxx",
"SCREEN_LOCK_PASSWORD": "123456",
"VISUAL_MODEL_ON": "true",
"VISUAL_MODEL_API_KEY": "sk-or-xxxxxxxxxxxxxxxxxxx",
"VISUAL_MODEL_BASE_URL": "https://openrouter.ai/api/v1/",
"VISUAL_MODEL_NAME": "qwen/qwen2.5-vl-72b-instruct:free"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| DEVICE_ID | Configuration value read at startup. | Optional |
| SCREEN_LOCK_PASSWORD | Configuration value read at startup. | Optional |
| VISUAL_MODEL_ON | Configuration value read at startup. | Optional |
| VISUAL_MODEL_API_KEY | Credential the server authenticates with. | Yes |
| VISUAL_MODEL_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| VISUAL_MODEL_NAME | Configuration value read at startup. | Optional |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.