android-mcp
Provides ADB-based tools for controlling Android devices — tap, swipe, text input, screenshot, UI dump, app management, and more. Enables AI agents to interact with Android devices programmatically.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@android-mcp take a screenshot of my device"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Android MCP — Hermes Agent Bridge
Android device automation MCP server for Hermes Agent. Provides ADB-based tools for controlling Android devices — tap, swipe, text input, screenshot, UI dump, app management, and more.
Built for AI agents that need to interact with Android devices programmatically.
Features
Device Management — list, connect, disconnect devices; check connection state
Gestures — tap, swipe, long press, pinch, multi-touch
Input — text typing, key events, clipboard
Screenshots — capture device screen as PNG
UI Analysis — dump view hierarchy via
uiautomatorApp Control — launch, stop, list installed apps
Password Manager — store and retrieve app credentials locally
System Actions — unlock, lock, volume, power, airplane mode
Related MCP server: autoglm-mcp-server
Prerequisites
Installation
# Clone the repository
git clone git@github.com:AsmanovLev/android-mcp.git
cd android-mcp
# Install dependencies
npm install
# Build
npm run buildConfiguration
Add to your ~/.hermes/config.yaml:
mcp_servers:
android:
command: node
args:
- /path/to/android-mcp/build/index.jsThen restart Hermes Agent. The tools will be available with the mcp_android_* prefix.
Usage
List connected devices
{
"tool": "mcp_android_list_devices"
}Take a screenshot
{
"tool": "mcp_android_screenshot",
"arguments": { "save_to": "/tmp/screen.png" }
}Tap on screen
{
"tool": "mcp_android_tap",
"arguments": { "x": 500, "y": 800 }
}Unlock device
{
"tool": "mcp_android_unlock",
"arguments": { "pin": "1234" }
}Tools
Tool | Description |
| List connected ADB devices |
| Capture device screen |
| Dump UI hierarchy via uiautomator |
| Tap at coordinates |
| Swipe from (x1,y1) to (x2,y2) |
| Type text via ADB |
| Send key event |
| Wake + swipe up + enter PIN |
| Launch app by package name |
| Force stop app |
| List installed packages |
| Store/retrieve app credentials |
Development
# Watch mode
npm run dev
# Run tests
npm testAuthor
Deepagent — AI agent by Hermes Agent
License
MIT
Available Tools
19 toolsfdroid_downloadC
Download an APK from F-Droid by package name.
Inputs: package_name (required), output_dir.
fdroid_searchB
Search for Android apps on F-Droid by query.
Inputs: query (required), limit.
mobile_activity_managerC
Start an Android activity by intent (package/class, action, data URI, extras).
Inputs: action, extras, serial, package, +2 more.
mobile_appA
Manage Android apps via ADB: install APK, start app by package, force-stop, uninstall, or list installed packages.
Inputs: action (required), file, serial, package, +1 more.
mobile_buttonA
Press a hardware/system button on the Android device: back, home, recent apps, menu, volume up/down, power, camera, or call.
Inputs: button (required), serial, return_screen.
mobile_device_listA
List connected Android devices and optionally select one as the active device for all mobile tools.
Inputs: select.
mobile_gestureC
Execute gestures on the Android device: tap, swipe, long-press, drag, or multi-step gesture sequences.
Inputs: action (required), x, y, x2, +6 more.
mobile_gesture_comboC
Execute a multi-step gesture sequence (array of steps). Each step can be tap, swipe, fastswipe, tap-hold, drag, press, move, release, hold, swipe-hold-start, swipe-hold-end, or swipe-hold-startend.
Inputs: steps (required), serial, return_screen.
mobile_gesture_macroB
Execute a named gesture macro (e.g., 'unlock', 'home', 'back', 'recents', 'notification_panel', 'quick_settings').
Inputs: macro (required), serial, return_screen.
mobile_powerB
Control device power state: turn screen on/off, check if awake, or reboot.
Inputs: action (required), serial.
mobile_restart_bridgeA
Restart the ADB server (kill + start). Useful when devices are not detected or ADB is stuck.
Inputs: no named parameters.
mobile_screenshotA
Capture a screenshot from the Android device. Returns the screenshot file path and UI hierarchy text.
Inputs: serial, return_screen.
mobile_stateA
Get device state: battery level, screen orientation, display info, foreground app, and network status.
Inputs: serial.
mobile_typeB
Type text into the currently focused input field on the Android device.
Inputs: text (required), serial, clear_first, return_screen.
mobile_unlock_screenB
Unlock the Android device screen. Wakes the screen, swipes up, and enters a PIN/password if provided.
Inputs: pin, serial.
mobile_waitB
Wait for a UI element to appear or disappear on the screen, with timeout.
Inputs: text, serial, timeout, className, +3 more.
password_managerC
Manage stored passwords for auto-login on Android apps. Store, retrieve, list, or delete credentials.
Inputs: action (required), app, password, username.
rustore_downloadB
Download an APK from RuStore by package name.
Inputs: package_name (required), output_dir.
rustore_searchB
Search for Android apps on RuStore by query.
Inputs: query (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 19 tools
Each tool targets a distinct function: gestures, buttons, app management, F-Droid/RuStore search/download, password management, device state, etc. Even gesture tools are differentiated by single, combo, and macro operations.
Naming is inconsistent: some tools have 'mobile_' prefix while others (fdroid_download, rustore_search) do not. Verb-noun combinations vary (e.g., 'mobile_power', 'mobile_activity_manager', 'mobile_device_list'), and some names are vague.
19 tools is on the higher side but justified given the breadth of Android device control. A few tools (e.g., three gesture tools) could potentially be consolidated, but overall count is reasonable.
Covers core device interaction, app lifecycle, and app store search/download. Missing advanced debugging (logcat), file operations, or notification management, but sufficient for common automation tasks.
Maintenance
Related MCP Connectors
Give your AI agent a real cloud Android phone: push APKs, drive it, get screenshots and logs.
Cloud Android phones for AI agents: create a phone, read the screen, tap, type, install APKs, park.
Let AI agents control Android and iOS devices on Mobilerun Cloud: screen, input, apps, workflows.
Disposable cloud Android emulators for coding agents: run an APK or PR build, tap, type, screenshot.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to control Android devices and emulators through direct UI interaction, allowing app navigation, automated testing, and real-world task execution via ADB without computer vision or scripts.182MIT
- AlicenseAqualityDmaintenanceEnables AI models to control Android devices via ADB through natural language commands, supporting screen analysis and automated actions.346 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to see and control Android devices through ADB and scrcpy, supporting screenshots, input, app management, UI automation, shell/file access, and audio/video streaming.374 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to see and control Android devices through ADB and screen mirroring, supporting screen capture, touch input, app management, UI element finding, file transfer, shell commands, clipboard access, and audio/video streaming.374 npmMIT