Android MCP Server logo

Android MCP Server

by martingeidobler

Controls Android devices and emulators through ADB for UI inspection, interaction, app testing, screenshots, and log analysis.

Install Android MCP Server

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "martingeidobler-android-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "android-mcp-server"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 25 tools correctly (1mo ago).

Overview

The martingeidobler/android-mcp-server MCP server exposes Android device and emulator control through ADB. It lets an MCP client inspect UI trees, capture screenshots, perform gestures, launch or install apps, retrieve device details, and read logcat output. Use it for interactive UI testing, smoke checks, bug reproduction, and app diagnostics when Android SDK platform-tools are available locally. It supports multiple devices by allowing a target device ID and does not require changes to the tested application.

Use cases

  • Test Android login and navigation flows
  • Reproduce app bugs and inspect filtered logcat output
  • Install APKs and run smoke checks on an emulator
  • Capture screenshots and UI trees for visual verification
  • Automate repetitive Android gestures and input sequences

Key features

  • ADB-based Android device and emulator control
  • Screenshot capture and UI hierarchy inspection
  • Element targeting by text, resource ID, or content description
  • Compound gestures and wait-for-element workflows
  • APK installation, app launching, and activity inspection
  • Logcat diagnostics and device information

Tools25

What Android MCP Server lets your agent do. Expand a tool for its parameters.

Verified live~3.0k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

20/23 checks healthy over the last 79d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 9d ago via OSV.dev · android-mcp-server (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars68Stargazers on the source repository.
npm downloads750Package downloads in the last 30 days.
Last commit7mo agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed25Callable tools this server registers over MCP.
Directory activity10 viewsConfig copies, upvotes, and views on AllMCPs.

How Android MCP Server works

What martingeidobler/android-mcp-server MCP server does

The martingeidobler/android-mcp-server MCP server connects an MCP-compatible assistant to Android devices and emulators through ADB. It covers both device management and application interaction, so an agent can discover connected targets, start an available Android Virtual Device, inspect the current screen, and operate the device without an SDK integration inside the application.

Screen analysis includes screenshots returned for visual inspection and UI hierarchy data containing element bounds, text, resource IDs, and state. Interaction tools support coordinate-based taps, element-based taps, typing into the focused field, key presses, swipes, long presses, double taps, repeated taps, scrolling, and waits for elements to appear. The tap_and_wait operation combines an element tap, UI settling delay, and updated tree retrieval.

How it works

The server invokes ADB against a connected Android device or emulator. Agents can use list_devices and list_avds to identify targets, then use device-specific operations for multi-device workflows. start_emulator waits up to 60 seconds for the selected emulator to become available.

Application workflows can install an APK, launch an app by package name, inspect the foreground activity, and pull files from the device. adb_shell provides access to arbitrary ADB shell commands. For troubleshooting, an agent can clear the logcat buffer before reproducing a problem, then retrieve logs filtered by package, severity, or time. The server also reuses an ADB shell session and caches device information during a session, according to the project documentation.

Setup and configuration

Install the martingeidobler/android-mcp-server MCP server with Node.js 18 or later and configure it as a local stdio MCP server:

config.json
{
  "command": "npx",
  "args": ["-y", "android-mcp-server"]
}

The machine must have the Android SDK, ADB platform-tools, and the Android emulator available. A running emulator or connected Android device is also required for device operations. The server looks for the SDK in the default macOS location or through ANDROID_HOME; set that variable in the MCP client configuration when the SDK is installed elsewhere.

The README provides configurations for Claude Desktop, Cursor, and Windsurf, as well as a build-from-source path using npm install, npm run build, and the generated dist/index.js entry point. No application-side SDK changes are needed because interaction occurs through ADB.

Tools and capabilities

  • Discover connected devices and configured AVDs.
  • Start an emulator and wait for it to connect.
  • Capture compressed screenshots, optionally saving them locally.
  • Read UI trees and target elements by resource ID, text, or content description.
  • Automate taps, gestures, text entry, key presses, scrolling, waits, and action sequences.
  • Install APKs, launch packages, inspect activities, and pull device files.
  • Read and clear logcat output, including filtered diagnostic logs.
  • Query model, manufacturer, Android version, API level, display size, and DPI.
  • Run arbitrary ADB shell commands.

Limitations and notes

This tool depends on a working local Android development environment and ADB connectivity. Element-based actions depend on the target UI exposing matching text, resource IDs, or content descriptions; coordinate actions require suitable screen coordinates.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Android MCP Server

Run it through npx with `npx -y android-mcp-server`, then add that command to your MCP client configuration.

It requires Node.js 18 or later, Android SDK platform-tools with ADB, the Android emulator when using emulators, and a connected device or running emulator for device operations.

Yes. The README provides a Claude Desktop configuration using `npx -y android-mcp-server`; it also documents Cursor and Windsurf configurations.

Yes. Its UI tree tool returns element bounds, text, resource IDs, and state, and element actions can match resource IDs, text, or content descriptions.

Set `ANDROID_HOME` in the MCP server environment when the SDK is not in the default discovered location.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewAndroid MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/martingeidobler-android-mcp-server?style=directory)](https://allmcps.com/mcp/martingeidobler-android-mcp-server)
HTML Embed
<a href="https://allmcps.com/mcp/martingeidobler-android-mcp-server"><img src="https://allmcps.com/api/badge/martingeidobler-android-mcp-server?style=directory" alt="Android MCP Server on AllMCPs" /></a>