AndroidBuildMCP MCP server
✓ 인증됨AI 에이전트가 Android 애플리케이션을 빌드, 배포, 에뮬레이터 관리 및 UI 자동화를 수행할 수 있도록 지원합니다.
다른 이름 dev-jackson/androidbuild-mcp, @asjackson/androidbuild-mcp
- 스타
- 1
- Tools
- 53
- 다운로드, 30일
- 275
- 최신 버전
- 0.1.1
- 마지막 커밋
- 2026년 7월 28일
- 라이선스
- MIT
AndroidBuildMCP MCP란?
AndroidBuildMCP은(는) MCP server입니다. AI 에이전트가 Android 애플리케이션을 빌드, 배포, 에뮬레이터 관리 및 UI 자동화를 수행할 수 있도록 지원합니다. 53개 도구를 제공합니다. 예: doctor, discover_projects, list_modules.
프로젝트 README에서 생성된 요약
AndroidBuildMCP MCP server 정보
AI 클라이언트 내에서 Android 애플리케이션 개발 및 테스트를 자동화하는 것이 이 MCP server의 주요 기능입니다. 개발자와 AI 에이전트가 APK 빌드, 유닛 및 인스트루먼트 테스트 실행, 에뮬레이터 관리 등 Android 프로젝트의 전체 라이프사이클을 관리할 수 있는 기능을 제공합니다. Claude Code 또는 Cursor와 같은 MCP client에 연결하면 에이전트가 Android SDK 및 adb와 직접 상호작용하여 복잡한 작업을 수행할 수 있습니다.
이 도구들을 사용하려면 로컬 머신에 Node 18+ 이상, JDK 17+ 이상, 그리고 Android SDK가 설치되어 있어야 합니다. 서버는 ANDROID_HOME 경로를 통해 Android 환경에 접근해야 합니다. 인터페이스 스냅샷을 찍어 요소 좌표를 찾거나, 주석이 달린 스크린샷을 캡처하고, 스와이프, 드래그, 타이핑과 같은 사용자 상호작용을 시뮬레이션하는 UI 자동화 전용 도구가 포함되어 있습니다. 또한 필터링된 logcat 캡처와 크래시 버퍼를 제공하여 빌드 또는 런타임 오류 해결을 돕는 디버깅 기능도 지원합니다.
활용 사례
- 1자동 UI 테스트AI 에이전트가 특정 요소를 탭하거나 화면 백분율을 사용하여 앱을 탐색함으로써 UI 안정성을 확보할 수 있습니다.
- 2빌드 실패 디버깅개발자는 에이전트를 사용하여 코드를 컴파일하고, 긴 Gradle 로그 대신 간결한 오류 메시지를 받을 수 있습니다.
- 3에뮬레이터 라이프사이클 관리에이전트가 가상 기기를 생성하고 부팅하여 테스트 환경을 자동으로 준비할 수 있습니다.
- 4프로젝트 스캐폴딩AI에게 즉시 개발 가능한 새로운 Android 프로젝트 구조를 생성하도록 지시할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
AndroidBuildMCP MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 AndroidBuildMCP MCP 설치
$ claude mcp add androidbuild-mcp -- npx -y @asjackson/androidbuild-mcpCursor에 AndroidBuildMCP MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
}VS Code에 AndroidBuildMCP MCP 설치
.vscode/mcp.json
{
"servers": {
"androidbuild-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
}VS Code CLI에 AndroidBuildMCP MCP 설치
$ code --add-mcp '{"name":"androidbuild-mcp","type":"stdio","command":"npx","args":["-y","@asjackson/androidbuild-mcp"]}'Claude Desktop에 AndroidBuildMCP MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
}Codex에 AndroidBuildMCP MCP 설치
$ codex mcp add androidbuild-mcp -- npx -y @asjackson/androidbuild-mcpCodex config.toml에 AndroidBuildMCP MCP 설치
~/.codex/config.toml
[mcp_servers.androidbuild-mcp] command = "npx" args = ["-y", "@asjackson/androidbuild-mcp"]
Gemini CLI에 AndroidBuildMCP MCP 설치
$ gemini mcp add -s user androidbuild-mcp npx -- -y @asjackson/androidbuild-mcpGemini settings.json에 AndroidBuildMCP MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
}AndroidBuildMCP MCP 도구 53
README에서 감지됨doctordiscover_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 | — |
도구 53개 모두 보기도구 수 줄이기
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 | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능dev-jackson/androidbuild-mcp is public and reachablegithub.com/dev-jackson/androidbuild-mcp ↗통과
- 패키지가 이 저장소를 소스로 명시@asjackson/androidbuild-mcp names dev-jackson/androidbuild-mcp as sourcenpmjs.com/package/@asjackson/androidbuild-mcp ↗통과
- 빌드 출처(Sigstore 증명)No build attestation published for this release검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-07-28github.com/dev-jackson/androidbuild-mcp ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from @asjackson/androidbuild-mcp통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음124 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음53 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기AndroidBuildMCP
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.
AndroidBuildMCP MCP 질문
AndroidBuildMCP MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add androidbuild-mcp -- npx -y @asjackson/androidbuild-mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
AndroidBuildMCP MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
AndroidBuildMCP MCP는 어떤 도구를 제공하나요?
53개 도구를 제공합니다. 예: doctor, discover_projects, list_modules, list_variants, get_app_id.
AndroidBuildMCP의 시스템 요구 사항은 무엇인가요?
Node 18+ 이상, Android SDK(ANDROID_HOME 또는 기본 설치 경로 설정 필요), 그리고 Gradle 빌드를 위한 JDK 17+ 이상이 필요합니다.
환경 설정이 올바르게 되었는지 어떻게 확인하나요?
doctor 도구를 실행하면 SDK, adb, 에뮬레이터, Java 및 연결된 기기를 점검하여 누락된 구성 요소를 알려줍니다.
정확한 탭 동작을 위해 서버에서 UI 자동화를 어떻게 처리하나요?
서버는 세 가지 안전한 방법을 제공합니다. snapshot_ui를 사용하여 정확한 픽셀 중심을 찾거나, tap_element를 사용하여 주석이 달린 스크린샷을 활용하거나, tap { xPct, yPct }를 통해 화면 백분율을 사용합니다.