Skip to content

JanJetze/android-emulator-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Tool Description
list_avds List all existing AVDs with their details
create_avd Create a new AVD (auto-installs system image)
delete_avd Delete an existing AVD
start_emulator Start an AVD and wait for boot
stop_emulator Stop a running emulator
emulator_status Check which emulators are running
list_system_images List available and installed system images
sensor_status List all available sensors and their status
sensor_get Get current values for a sensor
sensor_set Set 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

About

MCP server for managing local Android emulators

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages