io.github.dev-jackson/androidbuild-mcp
NPM · @ASJACKSON/ANDROIDBUILD-MCP · SCANNED SEP 30
Build, deploy, drive and debug Android apps: Gradle, emulators, adb, logcat, UI automation
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 42 of 118 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 63 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability80
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 4101 tokens (~77/item across 53 items; 53 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "uninstall_app" implies "uninstall" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 53 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.dev-jackson/androidbuild-mcp server?
io.github.dev-jackson/androidbuild-mcp runs locally as an npm package, launched with npx -y @asjackson/androidbuild-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @asjackson/androidbuild-mcp
claude mcp add dev-jackson-androidbuild-mcp -- npx -y @asjackson/androidbuild-mcp
{
"mcpServers": {
"dev-jackson-androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
} {
"servers": {
"dev-jackson-androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
} codex mcp add dev-jackson-androidbuild-mcp -- npx -y @asjackson/androidbuild-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dev-jackson-androidbuild-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@asjackson/androidbuild-mcp"
],
"enabled": true
}
}
} openclaw mcp add dev-jackson-androidbuild-mcp --command npx --arg -y --arg @asjackson/androidbuild-mcp
mcp_servers:
dev-jackson-androidbuild-mcp:
command: "npx"
args: ["-y", "@asjackson/androidbuild-mcp"] {
"McpServers": {
"dev-jackson-androidbuild-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
} assistant mcp add dev-jackson-androidbuild-mcp -t stdio -c npx -a -y @asjackson/androidbuild-mcp
{
"mcpServers": {
"dev-jackson-androidbuild-mcp": {
"command": "npx",
"args": [
"-y",
"@asjackson/androidbuild-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 30 Sept 26 0
- Stability: 0.97 → pass security
- 29 Sept 26 +1
- Security disclosure: unverified → fail ▼ functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Sept 26 −2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 0
- Stability: 0.97 → pass security
- 23 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 30 Sept 2026 · Analysed npm/@asjackson/androidbuild-mcp@0.1.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 118 packages
| Packages resolved | 118 |
|---|---|
| Stale | 42 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
boot_emulator Boot emulator ~89
Boot an AVD in the background and wait until Android finishes booting. Returns the adb serial. Set wipeData to factory-reset the AVD on boot.
| Name | Type | Req | Description |
|---|---|---|---|
| avdName | string | yes | AVD name from list_avds |
| timeoutSeconds | integer | – | Boot timeout (default 180) |
| wipeData | boolean | – | Factory-reset the AVD (erases all data) |
No output schema declared.
No examples provided.
build_app Build app ~92
Build an APK with Gradle (assemble<Variant>). On failure returns compact compiler errors with file:line. On success returns the APK path.
| Name | Type | Req | Description |
|---|---|---|---|
| module | string | – | Gradle module, e.g. 'app' (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
| variant | string | – | Build variant, e.g. 'debug' (defaults to session) |
No output schema declared.
No examples provided.
build_run Build, install and run ~130
Build the APK, install it on a device/emulator (adb install -r), and launch the app. Needs appId (session default or argument) to launch.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | Application id to launch (defaults to session) |
| module | string | – | Gradle module, e.g. 'app' (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
| serial | string | – | Device serial (defaults to session or the only device) |
| variant | string | – | Build variant, e.g. 'debug' (defaults to session) |
No output schema declared.
No examples provided.
clean Clean build ~29
Run gradle clean for the project.
| Name | Type | Req | Description |
|---|---|---|---|
| projectDir | string | – | Project root (defaults to session) |
No output schema declared.
No examples provided.
clear_app_data Clear app data ~59
Clear all data of an app (pm clear) — resets it to a fresh-install state.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | Application id (defaults to session) |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
create_avd Create AVD ~102
Create an AVD from an installed system image (e.g. 'system-images;android-35;google_apis;arm64-v8a'). If systemImage is omitted, lists the installed images to choose from.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Device profile, e.g. 'pixel_7' (default: generic) |
| name | string | yes | Name for the new AVD |
| systemImage | string | – | Installed system-images package id |
No output schema declared.
No examples provided.
delete_avd Delete AVD ~27
Delete an AVD permanently.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | AVD name to delete |
No output schema declared.
No examples provided.
discover_projects Discover Gradle projects ~65
Find Android/Gradle projects (directories with settings.gradle[.kts]) under a path. Use the result to session_set_defaults projectDir.
| Name | Type | Req | Description |
|---|---|---|---|
| maxDepth | integer | – | Max directory depth (default 3) |
| searchPath | string | yes | Directory to search from |
No output schema declared.
No examples provided.
doctor Doctor ~45
Check the Android development environment: SDK location, adb, emulator, avdmanager, Java, and connected devices. Run this first if any other tool fails with a missing-binary error.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
drag Drag and drop ~203
Drag an element from one point to another (input draganddrop). Instead of pixels you can pass screen percentages (0-1): safer when estimating positions from a screenshot image.
| Name | Type | Req | Description |
|---|---|---|---|
| durationMs | integer | – | Drag duration (default 800ms) |
| serial | string | – | Device serial (defaults to session or the only device) |
| x1 | integer | – | Start X in device pixels |
| x1Pct | number | – | Start X as fraction of width (0-1) |
| x2 | integer | – | End X in device pixels |
| x2Pct | number | – | End X as fraction of width (0-1) |
| y1 | integer | – | Start Y in device pixels |
| y1Pct | number | – | Start Y as fraction of height (0-1) |
| y2 | integer | – | End Y in device pixels |
| y2Pct | number | – | End Y as fraction of height (0-1) |
No output schema declared.
No examples provided.
get_apk_path Get APK path ~79
Locate the most recent built APK for a module/variant without building.
| Name | Type | Req | Description |
|---|---|---|---|
| module | string | – | Gradle module, e.g. 'app' (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
| variant | string | – | Build variant, e.g. 'debug' (defaults to session) |
No output schema declared.
No examples provided.
get_app_id Get application id ~81
Get the applicationId (package name) of a module, parsed from its build.gradle(.kts). Needed by install/launch/log tools.
| Name | Type | Req | Description |
|---|---|---|---|
| module | string | – | Module name (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
| variant | string | – | Variant, used to warn about applicationIdSuffix |
No output schema declared.
No examples provided.
get_app_info Get app info ~60
Get installed-app info from the device: version, target/min SDK, install path, running PID.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | Application id (defaults to session) |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
get_coverage_report Get coverage report ~131
Run a coverage Gradle task (Kover or Jacoco) and summarize line coverage per package. Tries koverXmlReport<Variant> by default; pass 'task' for a custom one (e.g. jacocoTestReport). The project must apply a coverage plugin.
| Name | Type | Req | Description |
|---|---|---|---|
| module | string | – | Module (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
| skipRun | boolean | – | Only parse an existing report without running Gradle |
| task | string | – | Coverage task to run, e.g. 'koverXmlReportDebug' |
No output schema declared.
No examples provided.
get_crash_logs Get crash logs ~55
Dump the crash log buffer (Java exceptions, native crashes, ANRs).
| Name | Type | Req | Description |
|---|---|---|---|
| lines | integer | – | Max lines (default 300) |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
get_file_coverage Get file coverage ~77
Show covered/uncovered line numbers of one source file from the latest coverage report (run get_coverage_report first).
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | Source file name, e.g. 'BookRepository.kt' |
| module | string | – | Module (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
No output schema declared.
No examples provided.
get_logs Get recent logs ~92
One-shot dump of recent logcat lines, optionally filtered by app (must be running) and/or tag.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | Filter to this app (defaults to session appId if running) |
| lines | integer | – | Max lines (default 200) |
| serial | string | – | Device serial (defaults to session or the only device) |
| tag | string | – | Filter to this log tag |
No output schema declared.
No examples provided.
install_app Install app ~60
Install an APK on a device/emulator (adb install -r).
| Name | Type | Req | Description |
|---|---|---|---|
| apkPath | string | yes | Path to the APK (from build_app / get_apk_path) |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
key_press Press key ~69
Press a hardware/navigation key: BACK, HOME, ENTER, TAB, DELETE, ESCAPE, MENU, APP_SWITCH, DPAD_*, or any KEYCODE_ name.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Key name |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
key_sequence Press key sequence ~48
Press several keys in order (same names as key_press).
| Name | Type | Req | Description |
|---|---|---|---|
| keys | array | yes | Keys in press order |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
kill_emulator Kill emulator ~37
Shut down a running emulator (adb emu kill).
| Name | Type | Req | Description |
|---|---|---|---|
| serial | string | – | Emulator serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
launch_app Launch app ~53
Launch an app by application id (resolves the launcher activity automatically).
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | Application id (defaults to session) |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
lint Run Android Lint ~78
Run Android Lint (lint<Variant>) and return the textual report summary.
| Name | Type | Req | Description |
|---|---|---|---|
| module | string | – | Gradle module, e.g. 'app' (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
| variant | string | – | Build variant, e.g. 'debug' (defaults to session) |
No output schema declared.
No examples provided.
list_avds List AVDs ~21
List available Android Virtual Devices and which ones are currently running.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_devices List devices ~27
List connected devices and emulators with serial, state, model, Android version and API level.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_modules List Gradle modules ~36
List modules declared in settings.gradle(.kts) of the project.
| Name | Type | Req | Description |
|---|---|---|---|
| projectDir | string | – | Project root (defaults to session) |
No output schema declared.
No examples provided.
list_variants List build variants ~66
List build variants of a module by inspecting its Gradle assemble tasks (runs './gradlew <module>:tasks').
| Name | Type | Req | Description |
|---|---|---|---|
| module | string | – | Module name, e.g. 'app' (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
No output schema declared.
No examples provided.
long_press Long press ~135
Long-press the screen at coordinates. Instead of pixels you can pass screen percentages (0-1): safer when estimating positions from a screenshot image.
| Name | Type | Req | Description |
|---|---|---|---|
| durationMs | integer | – | Press duration (default 1000ms — launchers ignore shorter holds) |
| serial | string | – | Device serial (defaults to session or the only device) |
| x | integer | – | X in device pixels |
| xPct | number | – | X as fraction of screen width (0-1) |
| y | integer | – | Y in device pixels |
| yPct | number | – | Y as fraction of screen height (0-1) |
No output schema declared.
No examples provided.
record_video_start Start screen recording ~66
Start recording the device screen (adb screenrecord, max 3 minutes). Returns a recordingId for record_video_stop.
| Name | Type | Req | Description |
|---|---|---|---|
| serial | string | – | Emulator serial (defaults to session or the only device) |
| timeLimitSeconds | integer | – | Auto-stop after (default 180) |
No output schema declared.
No examples provided.
record_video_stop Stop screen recording ~36
Stop a screen recording and pull the MP4 to the local machine.
| Name | Type | Req | Description |
|---|---|---|---|
| recordingId | string | yes | Id from record_video_start |
No output schema declared.
No examples provided.
scaffold_android_project Scaffold Android project ~94
Create a new minimal Jetpack Compose app project (single module, version catalog, Gradle wrapper included) ready to build with build_app.
| Name | Type | Req | Description |
|---|---|---|---|
| appName | string | yes | App name, e.g. 'My Notes' |
| directory | string | yes | Directory to create the project in (must not exist or be empty) |
| packageName | string | yes | Application id, e.g. 'com.example.mynotes' |
No output schema declared.
No examples provided.
screenshot Screenshot ~87
Take a screenshot of the device/emulator screen and return it as an image. With annotate: true (needs the Google android CLI), UI elements get numbered bounding boxes — including text inside images/WebViews that snapshot_ui cannot see.
| Name | Type | Req | Description |
|---|---|---|---|
| annotate | boolean | – | Draw labeled bounding boxes around UI elements (vision-based) |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
scroll Scroll ~101
Scroll the screen in a direction (computes a safe swipe in the middle of the screen, avoiding the status bar and navigation areas). Prefer this over raw swipe for scrolling.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | – | Fraction of screen to scroll (default 0.5) |
| direction | string | yes | 'down' reveals content below (finger moves up), 'up' reveals content above |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
session_clear_defaults Clear session defaults ~35
Clear all session defaults, or only the listed keys.
| Name | Type | Req | Description |
|---|---|---|---|
| keys | array | – | Keys to clear; omit to clear everything |
No output schema declared.
No examples provided.
session_set_defaults Set session defaults ~117
Set default projectDir/module/variant/serial/appId used by other tools when the corresponding argument is omitted. Set these once after discovering the project.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | Application id (package name) |
| module | string | – | Gradle module, e.g. 'app' |
| projectDir | string | – | Absolute path to the Gradle project root |
| serial | string | – | adb device serial, e.g. emulator-5554 |
| variant | string | – | Build variant, e.g. 'debug' |
No output schema declared.
No examples provided.
session_show_defaults Show session defaults ~15
Show the current session defaults.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
set_appearance Set dark/light mode ~52
Switch a device/emulator between dark and light mode (cmd uimode night).
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | yes | Appearance to set |
| serial | string | – | Emulator serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
set_emulator_location Set emulator location ~58
Set the GPS location of a running emulator.
| Name | Type | Req | Description |
|---|---|---|---|
| latitude | number | yes | Latitude in decimal degrees |
| longitude | number | yes | Longitude in decimal degrees |
| serial | string | – | Emulator serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
show_gradle_config Show Gradle config ~52
Show toolchain versions: Gradle (from wrapper properties) and everything in the version catalog (AGP, Kotlin, Compose, ...).
| Name | Type | Req | Description |
|---|---|---|---|
| projectDir | string | – | Project root (defaults to session) |
No output schema declared.
No examples provided.
snapshot_ui Snapshot UI hierarchy ~96
Dump the current UI as a compact list of actionable elements (text, id, content-desc, tap coordinates). Use the @(x,y) centers with tap/long_press. Text-heavy screens are capped; pass 'filter' to search within them.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | – | Only include elements whose text/desc/id contains this (case-insensitive) |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
start_log_capture Start log capture ~130
Start capturing logcat to a file in the background. Filter by app (via its pid) and/or tag. Returns a sessionId for stop_log_capture. The app must be running to filter by appId.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | Only capture logs of this app (defaults to session appId; must be running) |
| clear | boolean | – | Clear the log buffer first (default true) |
| serial | string | – | Device serial (defaults to session or the only device) |
| tag | string | – | Only capture this log tag (logcat '<tag>:V *:S') |
No output schema declared.
No examples provided.
statusbar_demo_mode Status bar demo mode ~87
Enable clean status bar for screenshots (fixed clock, full battery, full signal) or disable it.
| Name | Type | Req | Description |
|---|---|---|---|
| clock | string | – | Clock as hhmm, e.g. '1200' (default 1200) |
| enabled | boolean | yes | true to enter demo mode, false to exit |
| serial | string | – | Emulator serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
stop_app Stop app ~49
Force-stop a running app (am force-stop).
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | Application id (defaults to session) |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
stop_gradle Stop Gradle daemons ~41
Stop the project's Gradle daemons (use when a build hangs or to free memory).
| Name | Type | Req | Description |
|---|---|---|---|
| projectDir | string | – | Project root (defaults to session) |
No output schema declared.
No examples provided.
stop_log_capture Stop log capture ~55
Stop a log capture session and return the file path plus the last lines.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session id from start_log_capture |
| tailLines | integer | – | Lines of tail to inline (default 60) |
No output schema declared.
No examples provided.
swipe Swipe ~210
Swipe from one point to another (scrolling, dismissing). For drag-and-drop use drag instead. Instead of pixels you can pass screen percentages (0-1): safer when estimating positions from a screenshot image.
| Name | Type | Req | Description |
|---|---|---|---|
| durationMs | integer | – | Swipe duration (default 300ms) |
| serial | string | – | Device serial (defaults to session or the only device) |
| x1 | integer | – | Start X in device pixels |
| x1Pct | number | – | Start X as fraction of width (0-1) |
| x2 | integer | – | End X in device pixels |
| x2Pct | number | – | End X as fraction of width (0-1) |
| y1 | integer | – | Start Y in device pixels |
| y1Pct | number | – | Start Y as fraction of height (0-1) |
| y2 | integer | – | End Y in device pixels |
| y2Pct | number | – | End Y as fraction of height (0-1) |
No output schema declared.
No examples provided.
tap Tap ~129
Tap the screen. Coordinates from snapshot_ui are exact device pixels — prefer them over estimating positions by looking at a screenshot image. Instead of pixels you can pass screen percentages (0-1): safer when estimating positions from a screenshot image.
| Name | Type | Req | Description |
|---|---|---|---|
| serial | string | – | Device serial (defaults to session or the only device) |
| x | integer | – | X in device pixels |
| xPct | number | – | X as fraction of screen width (0-1) |
| y | integer | – | Y in device pixels |
| yPct | number | – | Y as fraction of screen height (0-1) |
No output schema declared.
No examples provided.
tap_element Tap annotated element ~85
Tap element #N from the most recent screenshot { annotate: true } capture — no coordinate math needed. The mapping is exact even if your client displays the image scaled. Re-capture after the UI changes: element numbers go stale.
| Name | Type | Req | Description |
|---|---|---|---|
| element | integer | yes | Element number from the annotated screenshot |
| serial | string | – | Device serial (defaults to session or the only device) |
No output schema declared.
No examples provided.
test_app Run unit tests ~115
Run local JVM unit tests (test<Variant>UnitTest) and return a parsed pass/fail summary with failure messages.
| Name | Type | Req | Description |
|---|---|---|---|
| module | string | – | Gradle module, e.g. 'app' (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
| tests | string | – | Filter passed to --tests, e.g. 'com.foo.MyTest' or '*MyTest*' |
| variant | string | – | Build variant, e.g. 'debug' (defaults to session) |
No output schema declared.
No examples provided.
test_instrumented Run instrumented tests ~95
Run instrumented tests on a connected device/emulator (connected<Variant>AndroidTest) and return a parsed summary. Requires a booted device.
| Name | Type | Req | Description |
|---|---|---|---|
| module | string | – | Gradle module, e.g. 'app' (defaults to session) |
| projectDir | string | – | Project root (defaults to session) |
| variant | string | – | Build variant, e.g. 'debug' (defaults to session) |
No output schema declared.
No examples provided.
What is the io.github.dev-jackson/androidbuild-mcp server?
io.github.dev-jackson/androidbuild-mcp is listed in the public MCP registry as io.github.dev-jackson/androidbuild-mcp. Build, deploy, drive and debug Android apps: Gradle, emulators, adb, logcat, UI automation. This page covers its npm package (@asjackson/androidbuild-mcp).
Is the io.github.dev-jackson/androidbuild-mcp server safe to use?
io.github.dev-jackson/androidbuild-mcp scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 30 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.dev-jackson/androidbuild-mcp server expose?
io.github.dev-jackson/androidbuild-mcp exposes 53 tools: doctor, session_set_defaults, session_show_defaults, session_clear_defaults, discover_projects, and 48 more. Their descriptions and schemas cost roughly 4,101 tokens of context every time the server is loaded.
Is the io.github.dev-jackson/androidbuild-mcp server still maintained?
io.github.dev-jackson/androidbuild-mcp is still listed as active in the MCP registry. We last reached this channel on 30 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.dev-jackson/androidbuild-mcp server under?
io.github.dev-jackson/androidbuild-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.