← Back to search

Agent Droid Bridge

Neverlow512 Scanned 1d ago

MCP server giving AI agents eyes and hands inside Android devices via ADB

D
59.8 / 100

Versions

0.1.3latest
first seen Jun 5, 2026
0.6.1
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 23

get_screen_text
annotations: none low

Returns all visible text on the current Android screen, sorted top-to-bottom. Use this when you need to read what is on screen. Does not include coordinates or element info — for tapping or interacting, use `get_screen_elements`.

device_serial DeviceSerial
get_ui_hierarchy
annotations: none low

Returns the current Android screen as an XML UI hierarchy. Use this when you need to locate element coordinates, read text, or find resource IDs to interact with. Do not call this after every action — only call it when you actually need to read screen content. To check if the screen changed after an action, use snapshot_ui before the action and detect_ui_change after.

device_serial DeviceSerial
tap_screen
annotations: none low

A tap gesture at the given pixel coordinates on the Android screen.

x string y string device_serial DeviceSerial
swipe_screen
annotations: none low

A swipe gesture on the Android screen from (x1,y1) to (x2,y2) over the given duration.

x1 string x2 string y1 string y2 string duration_ms string device_serial DeviceSerial
type_text
annotations: none low

Text input into the currently focused Android input field. Spaces are encoded automatically.

text string device_serial DeviceSerial
press_key
annotations: none low

A key event sent to the Android device using the given keycode integer.

keycode string device_serial DeviceSerial
take_screenshot
annotations: none low

A PNG screenshot of the current Android device screen with width, height, and base64-encoded image data.

device_serial DeviceSerial
list_devices
annotations: none low

All Android devices currently visible to ADB, with their serial numbers, connection state, and model names.

launch_app
annotations: none low

An Android app launched by its component name (package/activity).

component string device_serial DeviceSerial
execute_adb_command
annotations: none low

The output of an ADB command. Parsed safely via shlex and never passed to a system shell.

command string use_shell string device_serial DeviceSerial
snapshot_ui
annotations: none low

Takes a lightweight snapshot of the current UI state and returns a short token. Use this before performing an action (tap, swipe, launch, key press) when you only need to confirm the screen changed afterward — not read its content. Pass the returned token to detect_ui_change as baseline_token. This avoids loading the full XML hierarchy into context unnecessarily. Do not use this when you need to read or interact with screen elements — use get_ui_hierarchy for that.

device_serial DeviceSerial
detect_ui_change
annotations: none low

Polls the UI hierarchy after an action and returns when the screen content changes or the timeout is reached. Returns changed status and elapsed time. By default, omits the XML hierarchy for efficiency — set return_hierarchy=True to receive the full hierarchy. For efficient change detection: call snapshot_ui before the action, perform the action, then call detect_ui_change with baseline_token. Only use without baseline_token when you need to wait for a slow transition (loading screens, animations). Do not use to read the current screen state — use get_ui_hierarchy for that.

device_serial DeviceSerial baseline_token string timeout_seconds string return_hierarchy string
get_screen_elements
annotations: none low

Structured list of UI elements currently visible on the Android screen. Returns elements filtered and shaped by the chosen mode. Prefer 'tappable' for navigation and 'interactive' when you need XPath or bounds for ADB commands. Only use 'all' as a last resort — it returns every node and can be large.

mode string device_serial DeviceSerial
check_device_capabilities
annotations: none low

Device capabilities and hardware profile for the connected Android device. Use 'identity' to establish what device you are working with before starting a session. Use 'security' when a task requires root permissions or you need to confirm privilege level. Use 'hardware' when you need screen dimensions or memory constraints for layout decisions. Use 'all' only when you need a complete profile and latency is not a concern.

mode string device_serial DeviceSerial
list_packages
annotations: none low

List installed packages on the device. Use search to narrow results before requesting detailed mode — detailed runs a separate dumpsys call per package and is expensive on large lists.

mode string limit string filter string search string device_serial DeviceSerial
get_app_info
annotations: none low

Full static metadata for a single installed app. Request only the sections you need. Use search to filter components or permissions by name.

search string package string sections string device_serial DeviceSerial
install_app
annotations: none low

Install an APK from a host path onto the device. Returns the package name and version if aapt is available, or None for those fields if not. Returns the package manager error string on failure.

apk_path string device_serial DeviceSerial
uninstall_app
annotations: none low

Remove an installed app by package name.

package string keep_data string device_serial DeviceSerial
pull_apk
annotations: none low

Extract the installed APK from the device by package name. Returns the written file path(s) and sizes.

split string package string destination string device_serial DeviceSerial
manage_permission
annotations: none low

Grant, revoke, check, or list runtime permissions for an app. Use list to see all permissions without specifying one. Use check to verify grant status before acting.

action string package string permission string device_serial DeviceSerial
launch_app_extra
annotations: none low

Launch an app by package name without requiring a component name. Resolves the launcher activity automatically using pm resolve-activity. Returns the resolved component, app name, and PID when available. PID is best-effort — it may be None on success if the process had not registered by the time of the check. If resolution fails, the error message will suggest using get_app_info with sections=['components'] followed by launch_app with the explicit component.

package string device_serial DeviceSerial
manage_app
annotations: none low

Control app runtime state. Clear_data is irreversible — it permanently removes all user data for the app. Clear_cache requires root and reports requires_root=true when unavailable.

action string package string device_serial DeviceSerial
inject_intent
annotations: none low

Fire an intent at a component. Requires intent_type: 'activity', 'broadcast', or 'service'. Broadcasts can produce verbose output — use filter to extract relevant lines. Returns success, exit code, filtered or full output lines, and error if any. For advanced intent flags not covered here, use execute_adb_command directly.

uri string action string extras string filter string package string component string mime_type string intent_type string device_serial DeviceSerial

Permissions 2

filesystem low
Server uses filesystem capabilities via: open(), os, pathlib, shutil
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 72

low
Tool 'get_ui_hierarchy' has no annotations annotation_checker · 100%
low
Tool 'tap_screen' has no annotations annotation_checker · 100%
low
Tool 'swipe_screen' has no annotations annotation_checker · 100%
medium
Vulnerable dependency: pydantic@2.0.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
low
Tool 'type_text' has no annotations annotation_checker · 100%
low
Tool 'press_key' has no annotations annotation_checker · 100%
low
Tool 'take_screenshot' has no annotations annotation_checker · 100%
low
Tool 'list_devices' has no annotations annotation_checker · 100%
low
Tool 'launch_app' has no annotations annotation_checker · 100%
low
Tool 'execute_adb_command' has no annotations annotation_checker · 100%
low
Tool 'snapshot_ui' has no annotations annotation_checker · 100%
low
Tool 'detect_ui_change' has no annotations annotation_checker · 100%
low
Tool 'get_screen_elements' has no annotations annotation_checker · 100%
low
Tool 'get_screen_text' has no annotations annotation_checker · 100%
low
Tool 'check_device_capabilities' has no annotations annotation_checker · 100%
low
Tool 'list_packages' has no annotations annotation_checker · 100%
low
Tool 'get_app_info' has no annotations annotation_checker · 100%
low
Tool 'install_app' has no annotations annotation_checker · 100%
low
Tool 'uninstall_app' has no annotations annotation_checker · 100%
low
Tool 'pull_apk' has no annotations annotation_checker · 100%
low
Tool 'manage_permission' has no annotations annotation_checker · 100%
low
Tool 'launch_app_extra' has no annotations annotation_checker · 100%
low
Tool 'manage_app' has no annotations annotation_checker · 100%
low
Tool 'inject_intent' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: pydantic@2.0.0 (PYSEC-2026-1812) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (GHSA-5h2m-4q8j-pqpj) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (GHSA-c2jp-c369-7pvx) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (GHSA-m8x7-r2rg-vh5g) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (GHSA-mxxr-jv3v-6pgc) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (GHSA-rcfx-77hg-w2wv) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (GHSA-rj5c-58rq-j5g5) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (GHSA-rww4-4w9c-7733) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (GHSA-vv7q-7jx5-f767) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (PYSEC-2026-1364) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (PYSEC-2026-1365) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (PYSEC-2026-2474) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (PYSEC-2026-2475) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (PYSEC-2026-2476) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.1.0,<4.0.0 (PYSEC-2026-338) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: get_ui_hierarchy manifest_parser · 90%
info
Tool: tap_screen manifest_parser · 90%
info
Required env vars (12) manifest_parser · 80%
info
Tool: swipe_screen manifest_parser · 90%
info
Tool: type_text manifest_parser · 90%
info
Tool: press_key manifest_parser · 90%
info
Tool: take_screenshot manifest_parser · 90%
info
Tool: list_devices manifest_parser · 90%
info
Tool: launch_app manifest_parser · 90%
info
Tool: execute_adb_command manifest_parser · 90%
info
Tool: snapshot_ui manifest_parser · 90%
info
Tool: detect_ui_change manifest_parser · 90%
info
Tool: get_screen_elements manifest_parser · 90%
info
Tool: get_screen_text manifest_parser · 90%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
info
Tool: check_device_capabilities manifest_parser · 90%
info
Tool: list_packages manifest_parser · 90%
info
Tool: get_app_info manifest_parser · 90%
info
Tool: install_app manifest_parser · 90%
info
Tool: uninstall_app manifest_parser · 90%
info
Tool: pull_apk manifest_parser · 90%
info
Tool: manage_permission manifest_parser · 90%
info
Tool: launch_app_extra manifest_parser · 90%
info
Tool: manage_app manifest_parser · 90%
info
Tool: inject_intent manifest_parser · 90%
low
Permission: filesystem access detected permission_analyzer · 90%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Tool poisoning in 'get_ui_hierarchy': Cross-tool sequencing directive poisoning · 85%
critical
Tool poisoning in 'detect_ui_change': Cross-tool sequencing directive poisoning · 85%
info
SBOM generated: 5 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%