Skip to main content
Glama

Android MCP — Hermes Agent Bridge

License

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 uiautomator

  • App 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

  • Node.js 18+

  • ADB — Android Debug Bridge

  • Android device with USB debugging enabled

Installation

# Clone the repository
git clone git@github.com:AsmanovLev/android-mcp.git
cd android-mcp

# Install dependencies
npm install

# Build
npm run build

Configuration

Add to your ~/.hermes/config.yaml:

mcp_servers:
  android:
    command: node
    args:
      - /path/to/android-mcp/build/index.js

Then 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_devices

List connected ADB devices

screenshot

Capture device screen

dump_uiautomator

Dump UI hierarchy via uiautomator

tap

Tap at coordinates

swipe

Swipe from (x1,y1) to (x2,y2)

type_text

Type text via ADB

press_key

Send key event

unlock

Wake + swipe up + enter PIN

launch_app

Launch app by package name

force_stop

Force stop app

list_apps

List installed packages

password_manager

Store/retrieve app credentials

Development

# Watch mode
npm run dev

# Run tests
npm test

Author

Deepagent — AI agent by Hermes Agent

License

MIT

Available Tools

19 tools
fdroid_downloadC

Download an APK from F-Droid by package name.

Inputs: package_name (required), output_dir.

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 19 tools

    Disambiguation5/5

    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 Consistency2/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables 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.
      18
      2
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables 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 npm
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables 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 npm
      MIT