# AndroidBuildMCP MCP server

> Lets an AI agent build, deploy, manage emulators, and perform UI automation on Android applications.

- Repository: https://github.com/dev-jackson/androidbuild-mcp
- Page: https://hostedmcp.org/servers/dev-jackson/androidbuild-mcp
- Transport: stdio
- Stars: 1
- License: MIT
- Latest version: 0.1.1

## Install

### Claude Code

```sh
claude mcp add androidbuild-mcp -- npx -y @asjackson/androidbuild-mcp
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "androidbuild-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@asjackson/androidbuild-mcp"
      ]
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "androidbuild-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@asjackson/androidbuild-mcp"
      ]
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"androidbuild-mcp","type":"stdio","command":"npx","args":["-y","@asjackson/androidbuild-mcp"]}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "androidbuild-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@asjackson/androidbuild-mcp"
      ]
    }
  }
}
```

### Codex

```sh
codex mcp add androidbuild-mcp -- npx -y @asjackson/androidbuild-mcp
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.androidbuild-mcp]
command = "npx"
args = ["-y", "@asjackson/androidbuild-mcp"]
```

### Gemini CLI

```sh
gemini mcp add -s user androidbuild-mcp npx -- -y @asjackson/androidbuild-mcp
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "androidbuild-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@asjackson/androidbuild-mcp"
      ]
    }
  }
}
```

## Tools (53)

- `doctor`
- `discover_projects`
- `list_modules`
- `list_variants`
- `get_app_id`
- `show_gradle_config`
- `session_set_defaults`
- `session_show_defaults`
- `session_clear_defaults`
- `build_app`
- `build_run`
- `test_app`
- `test_instrumented`
- `lint`
- `clean`
- `get_apk_path`
- `stop_gradle`
- `get_coverage_report`
- `get_file_coverage`
- `list_devices`
- `list_avds`
- `boot_emulator`
- `kill_emulator`
- `create_avd`
- `delete_avd`
- `set_emulator_location`
- `set_appearance`
- `statusbar_demo_mode`
- `install_app`
- `launch_app`
- `stop_app`
- `uninstall_app`
- `clear_app_data`
- `get_app_info`
- `snapshot_ui`
- `screenshot`
- `tap_element`
- `tap`
- `scroll`
- `swipe`
- `drag`
- `long_press`
- `type_text`
- `key_press`
- `key_sequence`
- `wait_for_ui`
- `get_logs`
- `get_crash_logs`
- `start_log_capture`
- `stop_log_capture`
- `record_video_start`
- `record_video_stop`
- `scaffold_android_project`

## FAQ

### What are the system requirements for AndroidBuildMCP?

You need Node 18+, the Android SDK (configured via ANDROID_HOME or a default install), and JDK 17+ for Gradle builds.

### How can I check if my environment is set up correctly?

You can run the `doctor` tool, which checks your SDK, adb, emulator, Java, and connected devices to report any missing components.

### How does the server handle UI automation to ensure accurate taps?

The server provides three safe methods: using `snapshot_ui` for exact pixel centers, using annotated screenshots with `tap_element`, or using screen percentages via `tap { xPct, yPct }`.
