AndroidBuildMCP MCP server
✓ VerifiedMemungkinkan AI agent untuk membangun, men-deploy, mengelola emulator, dan melakukan UI automation pada aplikasi Android.
Juga dikenal sebagai dev-jackson/androidbuild-mcp, @asjackson/androidbuild-mcp
- Stars
- 1
- Tools
- 53
- Unduhan, 30 hari
- 275
- Versi terbaru
- 0.1.1
- Commit terakhir
- 28 Jul 2026
- Lisensi
- MIT
Apa itu AndroidBuildMCP MCP?
AndroidBuildMCP adalah MCP server. Memungkinkan AI agent untuk membangun, men-deploy, mengelola emulator, dan melakukan UI automation pada aplikasi Android. Server ini menyediakan 53 tool, seperti doctor, discover_projects, list_modules.
Ringkasan dibuat dari README proyek
Tentang AndroidBuildMCP MCP server
Fungsi utama dari server ini adalah mengotomatisasi pengembangan dan pengujian aplikasi Android langsung dari dalam AI client. Server ini memberikan kemampuan bagi developer dan AI agent untuk mengelola seluruh siklus hidup proyek Android, termasuk build APK, menjalankan unit dan instrumented tests, serta mengelola emulator. Dengan terhubung ke MCP client seperti Claude Code atau Cursor, agent dapat berinteraksi langsung dengan Android SDK dan adb untuk melakukan tugas-tugas kompleks.
Pengguna harus memiliki Node 18+, JDK 17+, dan Android SDK yang terinstal di mesin lokal untuk menggunakan tool ini. Server memerlukan akses ke environment Android melalui path ANDROID_HOME. Server ini menyertakan tool khusus untuk UI automation, seperti mengambil snapshot interface untuk menemukan koordinat elemen, menangkap screenshot dengan anotasi, dan mensimulasikan interaksi pengguna seperti swiping, dragging, atau mengetik. Server ini juga menangani debugging dengan menyediakan capture logcat yang terfilter dan crash buffers untuk membantu menyelesaikan error saat build atau runtime.
Apa yang bisa Anda lakukan dengannya
- 1Automated UI testingAI agent dapat menavigasi aplikasi dengan melakukan tap pada elemen tertentu atau menggunakan persentase layar untuk memastikan stabilitas UI.
- 2Debugging build failuresDeveloper dapat menggunakan agent untuk mengompilasi kode dan menerima pesan error yang ringkas alih-alih log Gradle yang panjang.
- 3Emulator lifecycle managementAgent dapat menyiapkan environment pengujian secara otomatis dengan membuat dan menjalankan virtual devices.
- 4Project scaffoldingAnda dapat menginstruksikan AI untuk menghasilkan struktur proyek Android baru yang siap untuk langsung dikembangkan.
Ditulis berdasarkan README proyek. Setiap use case diperiksa terhadap kutipan dari README tersebut.
Cara menginstal AndroidBuildMCP MCP
Format diverifikasi 10 Nov 2026Tambahkan ke CursorTambahkan ke GooseInstal AndroidBuildMCP MCP di Claude Code
$ claude mcp add androidbuild-mcp -- npx -y @asjackson/androidbuild-mcpInstal AndroidBuildMCP MCP di Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
}Instal AndroidBuildMCP MCP di VS Code
.vscode/mcp.json
{
"servers": {
"androidbuild-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
}Instal AndroidBuildMCP MCP di VS Code CLI
$ code --add-mcp '{"name":"androidbuild-mcp","type":"stdio","command":"npx","args":["-y","@asjackson/androidbuild-mcp"]}'Instal AndroidBuildMCP MCP di Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
}Instal AndroidBuildMCP MCP di Codex
$ codex mcp add androidbuild-mcp -- npx -y @asjackson/androidbuild-mcpInstal AndroidBuildMCP MCP di Codex config.toml
~/.codex/config.toml
[mcp_servers.androidbuild-mcp] command = "npx" args = ["-y", "@asjackson/androidbuild-mcp"]
Instal AndroidBuildMCP MCP di Gemini CLI
$ gemini mcp add -s user androidbuild-mcp npx -- -y @asjackson/androidbuild-mcpInstal AndroidBuildMCP MCP di Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
}Tool AndroidBuildMCP MCP 53
Terdeteksi dari READMEdoctordiscover_projectslist_moduleslist_variantsget_app_idshow_gradle_configsession_set_defaultssession_show_defaultssession_clear_defaultsbuild_appbuild_runtest_app
| 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 | — |
Tampilkan semua 53 toolTampilkan lebih sedikit tool
test_instrumentedlintcleanget_apk_pathstop_gradleget_coverage_reportget_file_coveragelist_deviceslist_avdsboot_emulatorkill_emulatorcreate_avddelete_avdset_emulator_locationset_appearancestatusbar_demo_modeinstall_applaunch_appstop_appuninstall_appclear_app_dataget_app_infosnapshot_uiscreenshottap_elementtapscrollswipedraglong_presstype_textkey_presskey_sequencewait_for_uiget_logsget_crash_logsstart_log_capturestop_log_capturerecord_video_startrecord_video_stopscaffold_android_project
| 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 | — |
Pengecekan otomatis
Berjalan 14 Nov 2026Laporan lengkap →Lolos checks otomatis kami. Ini bukan audit keamanan: baca kodenya dan berikan server akses paling terbatas yang dibutuhkannya. Cara kerja checks
- Source repository terhubung dan dapat dijangkaudev-jackson/androidbuild-mcp is public and reachablegithub.com/dev-jackson/androidbuild-mcp ↗Lolos
- Nama paket mencantumkan repositori ini sebagai sumbernya@asjackson/androidbuild-mcp names dev-jackson/androidbuild-mcp as sourcenpmjs.com/package/@asjackson/androidbuild-mcp ↗Lolos
- Provenance build (atestasi Sigstore)No build attestation published for this releaseTidak diperiksa
- Lisensi open source (OSI)MITspdx.org/licenses/MIT.html ↗Lolos
- Ada commit atau release dalam satu tahun terakhirLast commit or release 2026-07-28github.com/dev-jackson/androidbuild-mcp ↗Lolos
- OpenSSF ScorecardTidak diperiksa
- Nama package tidak mirip dengan package populerNo popular package one edit away from @asjackson/androidbuild-mcpLolos
- Tidak ada advisory kritis pada paket atau dependensinya124 resolved dependencies checked; no critical advisoryosv.dev ↗Lolos
- Tidak ada instruksi tersembunyi untuk model53 tool descriptions and the README read; no override phrases, credential paths or hidden charactersLolos
- Tools yang bersifat destruktif telah diberi labelTidak diperiksa
- Endpoint remote merespons handshake MCPTidak diperiksa
README
Lihat di GitHubAndroidBuildMCP
Give your AI agent hands on Android. AndroidBuildMCP is an MCP server that lets any MCP client (Claude Code, Cursor, ...) build, deploy, drive and debug real Android apps: Gradle builds with readable errors, emulator management, adb deployment, logcat capture and full UI automation.
Quick start
Requirements: Node 18+, the Android SDK (ANDROID_HOME or a default install), and a JDK 17+ for Gradle builds.
No install step — npx fetches the server on first run.
Claude Code
claude mcp add androidbuild -- npx -y @asjackson/androidbuild-mcp
Any other MCP client
{
"mcpServers": {
"androidbuild": {
"command": "npx",
"args": ["-y", "@asjackson/androidbuild-mcp"]
}
}
}
git clone https://github.com/dev-jackson/androidbuild-mcp.git
cd androidbuild-mcp
npm install && npm run build
claude mcp add androidbuild -- node /absolute/path/to/androidbuild-mcp/dist/index.js
Then ask your agent to run doctor — it checks the SDK, adb, emulator, Java and connected devices, and tells you exactly what is missing.
What your agent can do
- Build and test —
build_appcompiles and returns compactfile:linecompiler errors instead of a thousand lines of Gradle noise.test_app/test_instrumentedreturn parsed pass/fail summaries. Lint, clean, coverage (Kover/Jacoco) included. - Manage emulators — list, create, boot (waits for full boot, returns the serial), wipe, and kill AVDs. Set GPS location, dark mode, and a clean demo status bar for screenshots.
- Deploy —
build_runcompiles, installs and launches in one call. Install/uninstall/clear-data/app-info via adb, with the right device auto-selected when only one is connected. - See the screen —
snapshot_uireturns the UI as a compact list of named elements with tap coordinates (Compose semantics merged, noise filtered).screenshotreturns an image; withannotate: trueit draws numbered boxes using vision, catching text inside images and WebViews. - Touch the screen — tap, scroll, swipe, drag, long-press, type (keyboard-aware, with clear/submit), hardware keys, and
wait_for_uito poll until an element appears. - Read the logs — background logcat capture filtered to your app, one-shot dumps, and the crash buffer for stack traces.
- Start new apps —
scaffold_android_projectgenerates a minimal Compose project that builds out of the box.
Session defaults (session_set_defaults) mean you configure project, module, variant and device once — every other call then works without arguments.
Tool reference
53 tools over stdio. Every tool takes plain arguments and returns text (or an image, for screenshot).
Environment and project
| Tool | Description |
|---|---|
doctor |
Check SDK, adb, emulator, avdmanager, Java and connected devices; reports what is missing |
discover_projects |
Find Android/Gradle projects under a path |
list_modules |
List modules declared in settings.gradle(.kts) |
list_variants |
List build variants of a module |
get_app_id |
Read the applicationId of a module |
show_gradle_config |
Show Gradle, AGP, Kotlin and version-catalog entries |
Session defaults
| Tool | Description |
|---|---|
session_set_defaults |
Set default project, module, variant, serial and appId for all later calls |
session_show_defaults |
Show the current defaults |
session_clear_defaults |
Clear all defaults, or only the listed keys |
Build, test and quality
| Tool | Description |
|---|---|
build_app |
Build an APK; returns compact file:line compiler errors |
build_run |
Build, install and launch in one call |
test_app |
Run JVM unit tests with a parsed pass/fail summary |
test_instrumented |
Run instrumented tests on a device |
lint |
Run Android Lint and summarize the report |
clean |
Run gradle clean |
get_apk_path |
Locate the most recent APK without building |
stop_gradle |
Stop the project's Gradle daemons |
get_coverage_report |
Run Kover/Jacoco and summarize line coverage per package |
get_file_coverage |
Show covered/uncovered lines of one source file |
Devices and emulators
| Tool | Description |
|---|---|
list_devices |
List devices with serial, state, model, Android version, API level |
list_avds |
List AVDs and which are running |
boot_emulator |
Boot an AVD and wait for full boot; returns the serial |
kill_emulator |
Shut down a running emulator |
create_avd |
Create an AVD from an installed system image |
delete_avd |
Delete an AVD |
set_emulator_location |
Set GPS location |
set_appearance |
Switch dark/light mode |
statusbar_demo_mode |
Clean status bar for screenshots |
App lifecycle
| Tool | Description |
|---|---|
install_app |
Install an APK (adb install -r) |
launch_app |
Launch by application id, resolving the launcher activity |
stop_app |
Force-stop a running app |
uninstall_app |
Uninstall an app |
clear_app_data |
Reset an app to fresh-install state |
get_app_info |
Version, target/min SDK, install path, running PID |
UI automation
| Tool | Description |
|---|---|
snapshot_ui |
Dump the UI as named elements with exact tap coordinates |
screenshot |
Capture the screen; annotate: true draws numbered boxes |
tap_element |
Tap element #N from the last annotated screenshot |
tap |
Tap at pixels or screen percentages |
scroll |
Scroll in a direction with a safe computed swipe |
swipe |
Swipe between two points |
drag |
Drag from one point to another |
long_press |
Long-press, holding 1000 ms |
type_text |
Type into the focused field, waiting for the keyboard |
key_press |
Press BACK, HOME, ENTER, DPAD_*, or any keycode |
key_sequence |
Press several keys in order |
wait_for_ui |
Poll until an element appears |
Logs and recording
| Tool | Description |
|---|---|
get_logs |
One-shot logcat dump, filterable by app and tag |
get_crash_logs |
Crash buffer: Java exceptions, native crashes, ANRs |
start_log_capture |
Start background logcat capture to a file |
stop_log_capture |
Stop capture and return the file plus the last lines |
record_video_start |
Start screen recording (max 3 minutes) |
record_video_stop |
Stop recording and pull the MP4 |
Scaffolding
| Tool | Description |
|---|---|
scaffold_android_project |
Create a minimal Compose app that builds out of the box |
Tapping accurately
Everything adb-side shares one coordinate space (device pixels), but MCP clients often display screenshots scaled — estimating pixel positions by eye from the image sends taps to the wrong place. Three safe ways to hit the target:
snapshot_ui— returns exact device-pixel centers for every named element. Preferred.screenshot { annotate: true }+tap_element { element: N }— tap by the number drawn on the image; the mapping is resolved on the original PNG, so client-side scaling cannot distort it.tap { xPct, yPct }— screen percentages (0-1), also available on long_press/swipe/drag. Resolution-independent.
Raw tap { x, y } still works when you have real pixel coordinates.
Reliability
Every tool was exercised against real emulators and real projects — happy paths and corner cases — before release; the scenario-by-scenario evidence is in qa-results.md. Some of the details that keep agent flows from misfiring:
type_textwaits for the soft keyboard before injecting (typing right after focusing a field silently drops the first characters otherwise).scrollcomputes a long, slow swipe from the screen size — short fast swipes get ignored by some lists.long_pressholds 1000 ms, which launchers require.- Taps outside the screen are rejected with the actual screen size instead of silently doing nothing.
- Text-heavy screens (e-book WebViews and the like) are capped and searchable with
snapshot_ui { filter }instead of flooding the context. - Build/test/device failures come back as short, actionable messages with the next tool to call.
Optional extras
- Google's Android CLI enables
screenshot { annotate: true }.doctorprints the one-line installer for your OS. - The ADBKeyboard IME enables non-ASCII
type_text(adb alone is ASCII-only). Install its APK once; the server uses it automatically.
Development
npm install
npm test # unit tests (no real processes spawned)
npm run dev # run the server from source
npm run build # compile to dist/
License
MIT — see LICENSE.
Conceptually inspired by XcodeBuildMCP; independent implementation built around the Android toolchain.
Pertanyaan tentang AndroidBuildMCP MCP
Bagaimana cara menambahkan AndroidBuildMCP MCP ke Claude Code?
Jalankan claude mcp add androidbuild-mcp -- npx -y @asjackson/androidbuild-mcp di terminal Anda. Tambahkan --scope user agar tersedia di semua proyek.
Bagaimana cara menambahkan AndroidBuildMCP MCP ke Cursor?
Buka ~/.cursor/mcp.json dan tambahkan server di bawah mcpServers, menggunakan config Cursor yang ditunjukkan di bagian instalasi di atas.
Tool apa yang disediakan AndroidBuildMCP MCP?
Server ini menyediakan 53 tool, termasuk doctor, discover_projects, list_modules, list_variants, get_app_id.
Apa saja persyaratan sistem untuk AndroidBuildMCP?
Anda memerlukan Node 18+, Android SDK (yang dikonfigurasi melalui ANDROID_HOME atau instalasi default), dan JDK 17+ untuk build Gradle.
Bagaimana cara mengecek apakah environment saya sudah terkonfigurasi dengan benar?
Anda dapat menjalankan tool doctor, yang akan memeriksa SDK, adb, emulator, Java, dan perangkat yang terhubung untuk melaporkan komponen yang kurang.
Bagaimana server menangani UI automation untuk memastikan tap yang akurat?
Server menyediakan tiga metode aman: menggunakan snapshot_ui untuk titik tengah pixel yang presisi, menggunakan screenshot dengan anotasi melalui tap_element, atau menggunakan persentase layar via tap { xPct, yPct }.