MCP Hub
Back to servers

android-emulator-mcp

An MCP server for managing local Android Virtual Devices (AVDs) and their lifecycles using Android SDK tools. It enables users to create, start, and stop emulators, while providing control over virtual sensors like the accelerometer and gyroscope.

glama
Updated
Mar 8, 2026

android-emulator-mcp

MCP server for managing local Android emulators (AVDs). Companion to adb-mcp — this project handles emulator lifecycle, while adb-mcp handles device interaction.

How it works

Claude Code ←→ android-emulator-mcp ←→ Android SDK tools (emulator, avdmanager, sdkmanager)
                                              ↓
                                        Local Android Emulator
                                              ↓
                                     adb-mcp (device interaction)

Prerequisites

Install the Android command-line tools (requires Java):

brew install --cask temurin              # or any other JDK
brew install --cask android-commandlinetools
brew install --cask android-platform-tools

Homebrew installs platform-tools separately from the SDK root, but the emulator expects them together. Create a symlink:

ln -s /opt/homebrew/Caskroom/android-platform-tools/*/platform-tools \
      /opt/homebrew/share/android-commandlinetools/platform-tools

Set ANDROID_HOME in your shell:

export ANDROID_HOME="/opt/homebrew/share/android-commandlinetools"

Setup

Add to your Claude Code MCP settings (~/.claude/settings.json):

{
  "mcpServers": {
    "android-emulator": {
      "command": "uvx",
      "args": ["android-emulator-mcp"]
    }
  }
}

Or install locally for development:

{
  "mcpServers": {
    "android-emulator": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/android-emulator-mcp", "android-emulator-mcp"]
    }
  }
}

Tools

ToolDescription
list_avdsList all existing AVDs with their details
create_avdCreate a new AVD (auto-installs system image)
delete_avdDelete an existing AVD
start_emulatorStart an AVD and wait for boot
stop_emulatorStop a running emulator
emulator_statusCheck which emulators are running
list_system_imagesList available and installed system images
sensor_statusList all available sensors and their status
sensor_getGet current values for a sensor
sensor_setSet sensor values (acceleration, gyroscope, etc.)

Usage examples

  • "Create an Android emulator and start it"
  • "List my existing emulators"
  • "Start the test emulator headless"
  • "What system images do I have installed?"
  • "Stop all running emulators"
  • "Set the accelerometer to simulate the phone lying flat"
  • "What sensors are available on the emulator?"

Development

# Install dependencies
uv sync

# Run the server locally
uv run android-emulator-mcp

# Run tests
uv run pytest

License

MIT

Reviews

No reviews yet

Sign in to write a review