# adb-mcp: Android emulator and device control over adb

Controls Android emulators and physical devices over adb. It captures screenshots, inspects UI hierarchies, and runs Gradle builds.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 11
- Author: iksnerd
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/iksnerd/adb-mcp
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/adb-mcp-android-emulator-and-device-control-over-adb

## What it does

This server provides 80 tools via stdio to interact with Android hardware and virtual devices. An agent can boot AVD instances, execute Gradle test suites, stream `logcat` logs, and trigger touch events like taps or swipes.

Element centers are reported in real device pixels by `describe_ui`. Because of this, the agent never has to estimate touch targets from scaled images. Screen capture runs via `exec-out screencap` to eliminate CRLF byte corruption, automatically resizing output for vision models.

Your system must have the Android SDK with `platform-tools` and `emulator` present. If `$ANDROID_HOME` is missing from the environment, pass the folder path using `--sdk` so the server can locate `adb`.

## Requirements
- Needs: Docker

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add adb-mcp-android-emulator-and-device-control-over-adb -- docker run -i --rm ghcr.io/iksnerd/adb-mcp:0.24.3
```

### Codex

**Platform CLI**
```bash
codex mcp add adb-mcp-android-emulator-and-device-control-over-adb -- docker run -i --rm ghcr.io/iksnerd/adb-mcp:0.24.3
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "adb-mcp-android-emulator-and-device-control-over-adb": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/iksnerd/adb-mcp:0.24.3"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "adb-mcp-android-emulator-and-device-control-over-adb": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/iksnerd/adb-mcp:0.24.3"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add adb-mcp-android-emulator-and-device-control-over-adb docker run -i --rm ghcr.io/iksnerd/adb-mcp:0.24.3
```

## When to use it
- capture clean Android screenshots without CRLF corruption
- find exact UI element coordinates using describe_ui
- dispatch taps, swipes, and text input to an emulator
- execute Gradle builds and run automated test suites
- inspect logcat output to triage application crashes

## Example prompts
- Start the Android emulator and capture a screenshot of the home screen
- Inspect the current UI with describe_ui and tap the login button
- Run Gradle test tasks and check logcat for runtime exceptions

## Similar
- [orca-emulator-android](https://affpapa.org/en/nevibecode/skills/orca-emulator-android.md) — skill · 5600 installs
- [android-emulator-qa](https://affpapa.org/en/nevibecode/skills/android-emulator-qa.md) — skill · 308 installs
- [limrun-android-emulator](https://affpapa.org/en/nevibecode/skills/limrun-android-emulator.md) — skill · 38700 installs
- [android](https://affpapa.org/en/nevibecode/mcp/us-all-android.md) — MCP server · ★ 14
- [test-android-apps](https://affpapa.org/en/nevibecode/plugins/test-android-apps.md) — plugin · ★ 7604
- [android-adb](https://affpapa.org/en/nevibecode/skills/android-adb.md) — skill · 956 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
