Deepadb MCP Server

DeepADB — full-featured Android Debug Bridge MCP server. 204 tools across 45 modules for device inspection from UI to baseband.

Local serverstdio

What is the Deepadb MCP Server?

DeepADB — full-featured Android Debug Bridge MCP server. 204 tools across 45 modules for device inspection from UI to baseband.

What you get

MCP (Model Context Protocol) server providing full Android Debug Bridge (ADB) integration for AI agents. Enables MCP clients to directly interact with connected Android devices — inspecting state, running commands, managing apps, capturing logs, controlling device settings, analyzing UI hierarchies, recording screens, managing emulators, running structured test sessions, orchestrating multi-device operations, capturing network traffic, running CI pipelines, auditing accessibility, detecting performance regressions, executing cloud device farm tests, debugging over WiFi, building projects, and managing community

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
adb_health_checkComprehensive toolchain validation: ADB binary, server, device connection, authorization, root access, and storage writability
adb_runtime_auditUnified read-only readiness audit for transport, Android userspace, root, SELinux, storage, command capabilities, UI/network diagnostics, SQLite, modem nodes, a
adb_devicesList all connected devices with state, model, and product info
adb_device_infoDetailed device properties (model, OS, SDK, build, security patch, ABI)
adb_getpropRead a specific system property or dump all properties
adb_shellExecute arbitrary shell commands with configurable timeout (security-checked)
adb_root_shellExecute commands as root via su (requires rooted device, security-checked)
adb_installInstall APK with replace/downgrade options
adb_uninstallRemove package with optional data retention
adb_list_packagesList packages filtered by name or type (all/system/third-party)
adb_package_infoDetailed package info (version, permissions, paths)
adb_clear_dataClear all app data and cache
adb_grant_permissionGrant a runtime permission to a package
adb_revoke_permissionRevoke a runtime permission from a package (reset permission state for testing denial flows)
adb_list_permissionsList all declared and granted permissions for a package, filterable by granted/denied
adb_force_stopForce-stop an app immediately
adb_start_appLaunch an app by package name (resolves launcher activity)
adb_restart_appForce-stop then re-launch in one call (configurable delay)
adb_resolve_intentsDiscover registered activities, services, and receivers with intent filters
adb_sqlite_inspectPackage-scoped database listing, schema inspection, and validated read-only SQL with hard row/output caps. Prefers run-as, falls back to root, rejects symbolic-
adb_pushPush local file to device (hard-blocked kernel paths, fs-type awareness, storage reporting)
adb_pullPull file from device to local filesystem
adb_lsList device directory contents (simple or detailed)
adb_catRead text file from device with optional line limit
adb_file_writeCreate or overwrite text files via heredoc (buffer limit warning, fs-aware, post-verify)
adb_findSearch for files by name/pattern with depth control and result capping
adb_file_statFile metadata: size, permissions, timestamps, ownership, SELinux context
adb_file_checksumSHA-256/SHA-1/MD5 hash with size-based timeout estimation
adb_mkdirCreate directories with parent creation (-p), hard-blocked kernel paths
adb_rmDelete files/directories with depth-based recursive protection and symlink resolution
adb_file_moveMove/rename with source depth protection and post-verify
adb_file_copyCopy with pre-flight size+space check and post-verify size match
adb_file_chmodChange permissions (Zod-validated octal mode, depth-based recursive protection)
adb_file_touchCreate empty files or update timestamps (explicit timestamp support)
adb_file_fsinfoFilesystem report: type, mount, capacity, capabilities, SELinux, limitations
adb_file_chownChange ownership (root required, depth-based recursive protection)
adb_grepSearch file contents with fixed-string default, recursive depth control, result capping
adb_file_replaceFind/replace text in files (sed-backed, proper escaping, backup option)
adb_logcatFiltered logcat snapshot with tag, priority, grep, and buffer selection
adb_logcat_clearClear all logcat buffers
adb_logcat_crashCrash buffer log snapshot
adb_logcat_startStart a background logcat watcher with ring buffer accumulation
adb_logcat_pollRetrieve new lines since last poll from a running watcher
adb_logcat_stopStop a watcher session (or all sessions)
adb_logcat_sessionsList all active watcher sessions with stats
adb_dumpsysRun dumpsys for any service (or list all services)
adb_telephonyCell info, signal strength, and network registration (parallel query)
adb_batteryBattery status, level, temperature, and charging info
adb_networkWiFi, cellular, and IP connectivity (parallel query)
adb_topCPU and memory usage snapshot
adb_perf_snapshotParallel memory, frame stats, and CPU profiling for a package
adb_bugreportFull bug report zip capture (device state, logs, system info)
adb_crash_logsANR traces and tombstone crash dumps from /data/anr/ and /data/tombstones/
adb_heap_dumpCapture heap dump (.hprof) from a running process for memory analysis
adb_app_route_contextResolve an installed package to its UID and correlate its effective ip rule ranges, route tables, network policy, VPN, and default-network state without changin
adb_screencapTake screenshot with filename sanitization, saves locally
adb_screencap_annotatedScreenshot with UI element bounding boxes and numbered labels composited onto the PNG. Returns annotated image path plus a text legend. Ideal for LLM workflows
adb_current_activityGet focused activity and top window stack
adb_inputSend tap, swipe, text, or keyevent input
adb_start_activityLaunch activities by intent or component name
adb_ui_dumpDump full UI hierarchy. Supports three output formats: text (default, human-readable), tsv (compact tab-separated for token-efficient automation loops), xml (ra
adb_ui_findSearch UI hierarchy by text, resource-id, or content-description (returns tap coordinates)
adb_screen_stateCombined screen state in one call: foreground activity, screen dimensions and density, orientation, battery level, and a TSV list of interactive elements. Repla
adb_screenrecord_startStart recording the device screen (1-180s, stored on device)
adb_screenrecord_stopStop recording and pull the mp4 video file locally
adb_airplane_modeToggle airplane mode with broadcast and verification
adb_airplane_cycleCycle airplane mode on/off to force cellular re-registration
adb_wifiEnable or disable WiFi
adb_mobile_dataEnable or disable mobile data
adb_locationSet location mode (off/sensors/battery/high)
adb_screenWake, sleep, toggle, lock, or unlock the screen. Lock verifies keyguard state via dumpsys window. Unlock uses wm dismiss-keyguard (works for swipe keyguards); s
adb_settings_getRead any Android setting from system/secure/global namespace
adb_settings_putWrite any Android setting with read-back verification
adb_rebootReboot device (normal, recovery, or bootloader mode)
adb_pairPair with device over WiFi using pairing code
adb_connectConnect to device over WiFi/TCP
adb_disconnectDisconnect wireless device(s)
adb_tcpipSwitch USB device to TCP/IP mode (auto-detects device IP)
adb_forwardForward a local port to a device port (host → device)
adb_reverseReverse-forward a device port to the host (device → host)
adb_forward_listList all active forward and reverse port mappings
adb_forward_removeRemove a port forward or all forwards
adb_reverse_removeRemove a reverse forward or all reverse forwards
adb_tunnel_openOpen a managed tunnel with opaque ID. Auto-picks a free host port for forward direction when omitted; registers cleanup so the tunnel is removed on server exit
adb_tunnel_listList active managed tunnels (those opened via adb_tunnel_open). Optional device filter; shows ID, direction, endpoints, and age
adb_tunnel_closeClose a managed tunnel by ID, or close all at once with id="all"
adb_avd_listList available AVDs (PC mode) or detect KVM/QEMU virtualization capabilities (on-device mode)
adb_emulator_startLaunch an AVD with headless, cold boot, and GPU options (PC mode) or report QEMU alternative (on-device mode)
adb_emulator_stopGracefully shut down a running emulator
adb_qemu_setupCheck and install QEMU for on-device virtualization. Verifies KVM, reports host CPU/RAM, installs via Termux pkg
adb_qemu_imagesManage VM disk images: list, create (qcow2/raw), delete. Path containment verification prevents traversal
adb_qemu_startBoot a KVM-accelerated VM with dynamic resource allocation. Auto-detects optimal CPUs (total minus 1, reserving one for host) and memory (65% of physical RAM).
adb_qemu_stopStop a running VM (graceful SIGTERM or force SIGKILL). Auto-disconnects guest ADB before killing. Reports running VMs if no name given
adb_qemu_statusFull status: KVM/QEMU availability, host resource budget, running VMs with PID/resources/uptime/ports/ADB connection state, image inventory
adb_qemu_connectConnect to a running VM's guest ADB service. Restricted to localhost only — port derived from running VM state, never user input. Enables multi-device tools to
adb_qemu_disconnectDisconnect from a guest VM's ADB service. Clears connection state and removes guest from device list
adb_qemu_guest_shellExecute shell commands on a guest VM via ADB. Subject to security middleware. Guest serial derived internally — no user-supplied host/IP reaches the ADB binary
adb_test_session_startStart a named test session with organized output directory
adb_test_stepCapture a numbered step with screenshot and logcat into the session
adb_test_session_endEnd session, write summary manifest, return directory path
adb_multi_shellExecute a command on all/selected devices in parallel (security-checked)
adb_multi_installInstall an APK across multiple devices simultaneously
adb_multi_compareRun a command on all devices and highlight output differences
adb_multi_testComparative test workflow: run predefined diagnostic profiles (firmware/security/network/identity/full) or custom command lists across all devices including QEM
adb_wear_datalayer_preflightRead-only phone/watch role, Google Play services, Bluetooth, optional package, companion-association, and Data Layer service preflight; pairing identifiers are
adb_screen_sizeScreen resolution, display density (DPI), aspect ratio, and DP width in one call
adb_device_stateCombined snapshot: battery level/status/temp, network type, WiFi state, screen on/off, orientation, foreground activity
adb_notificationsParse active notifications with package, title, text, importance, channel, flags, and timestamp (filterable by package)
adb_snapshot_captureSave comprehensive device state (packages, settings, properties) to JSON
adb_snapshot_compareDiff current state against a saved snapshot (added/removed packages, changed settings)
adb_snapshot_restore_settingsRestore global/secure settings from a saved snapshot
adb_tcpdump_startStart background packet capture via tcpdump (requires root)
adb_tcpdump_stopStop capture and pull pcap file locally for Wireshark analysis
adb_network_connectionsShow active TCP/UDP connections (ss/netstat with /proc/net fallback)
adb_ci_wait_bootWait for device/emulator to fully boot with configurable timeout
adb_ci_device_readyStructured pass/fail readiness check (boot, PM, screen, network, disk)
adb_ci_run_testsRun instrumented tests via am instrument with parsed pass/fail results
adb_baseband_infoModem firmware, RIL implementation, chipset, SIM configuration (dual SIM detection with per-slot state), network registration. IMEI retrieval is opt-in only (in
adb_cell_identityCell ID (CID), TAC/LAC, EARFCN, PCI, PLMN from dumpsys phone for cellular network analysis
adb_signal_detailRSRP, RSRQ, SINR, RSSI, timing advance — raw radio measurements for signal analysis
adb_neighboring_cellsAll visible LTE/5G/WCDMA/GSM cells with identities and signal strengths
adb_carrier_configCarrier configuration dump, carrier ID, preferred APN
adb_modem_logsRIL radio buffer, telephony framework, RILJ/RILC, kernel dmesg (root) modem logs
adb_a11y_auditAutomated WCAG audit: missing labels, undersized touch targets (<48dp), duplicate descriptions, unfocusable clickables
adb_a11y_touch_targetsList all interactive elements with touch target dimensions in dp, flag undersized
adb_a11y_treeAccessibility-focused UI tree showing only screen-reader-relevant elements with roles, labels, and states
adb_regression_baselineCapture performance baseline (memory, CPU, frame stats, battery, network) to JSON
adb_regression_checkCompare current performance against a saved baseline with configurable regression thresholds
adb_regression_historyList all saved baselines with trends, optionally filtered by package
adb_farm_runRun instrumented tests on Firebase Test Lab across multiple device models and API levels
adb_farm_resultsRetrieve results from a Test Lab run or list recent test matrices
adb_farm_matrixList available device models and Android versions on Firebase Test Lab
adb_registry_searchSearch the community plugin registry, shows install status and available updates
adb_registry_installDownload and install a plugin from the registry by name
adb_registry_installedList locally installed plugins with version and update availability
adb_plugin_listList all loaded plugins with paths and load times
adb_plugin_infoPlugin system documentation and example plugin format
adb_gradleRun any Gradle task in a project directory
adb_build_and_installBuild debug APK and install via ANDROID_SERIAL targeting
adb_shannon_sessionCheck Shannon/Exynos chipset detection, root, character-device modem ports, and a benign AT/OK handshake together; supports Google Tensor's /dev/umts_router, re
adb_at_detectAuto-detect modem AT command device node by chipset family (Shannon, Qualcomm, MediaTek, Unisoc, generic). Probes known paths and returns the first responding n
adb_at_sendSend a single AT command to the modem with response capture. Auto-detects port or accepts manual override. Dangerous command blocklist with force override
adb_at_batchSend multiple AT commands sequentially with per-command results. Configurable inter-command delay
adb_at_probeRun a standard diagnostic probe: modem ID, signal quality, network registration, SIM status, operator, functionality mode
adb_at_cross_validateCross-validate baseband firmware by comparing AT command responses (ATI, AT+CGMR, AT+CGMM) against system properties. Flags discrepancies as potential firmware
adb_screenshot_baselineCapture and save a named screenshot baseline with metadata (dimensions, SHA-256, timestamp)
adb_screenshot_diffCompare current screen against a saved baseline using pixel-level PNG decoding. Reports changed pixel count/percentage, bounding box of changed region, and supp
adb_screenshot_historyList all saved screenshot baselines with metadata
adb_workflow_runExecute a JSON-defined workflow: sequential device operations with variable substitution, conditional steps, loops, and result capture. Actions: shell, root_she
adb_workflow_validateValidate workflow structure without executing. Shows execution plan
adb_workflow_listList saved workflow files in the workflows directory
adb_install_bundleInstall split APKs (app bundles) via install-multiple with replace and downgrade options
adb_list_splitsShow all APK split paths for a package with classification (base, config.density, config.language, etc.) and total size
adb_extract_apksPull all splits for a package to a local directory for analysis or backup
adb_apex_listList installed APEX modules with version info
adb_mirror_startStart live screen mirroring via scrcpy. Supports windowed and headless modes, recording, bitrate/FPS/resolution control, stay-awake, and screen-off
adb_mirror_stopStop mirroring for a device or all devices
adb_mirror_statusCheck scrcpy availability and list active mirroring sessions
adb_test_gen_from_uiAnalyze the current screen's interactive elements and generate a workflow that taps each one, screenshots, and checks for crashes
adb_test_gen_from_intentsAnalyze a package's registered activities and generate a workflow that launches each exported activity with crash detection
adb_test_gen_saveSave a generated workflow JSON to the workflows directory for later execution
adb_ota_fingerprintCapture system fingerprint: build ID, Android version, security patch, bootloader, baseband firmware, kernel, A/B slot
adb_ota_checkCompare current system state against a saved fingerprint to detect OTA updates. Identifies changed fields and recommends re-baselining
adb_ota_historyList all saved fingerprints for a device with version progression over time
adb_ril_startStart capturing RIL messages from the radio logcat buffer. Categorizes registration, cell info, signal, network, security, handover, and NAS events
adb_ril_pollRetrieve captured RIL messages with optional category filtering. Shows category distribution
adb_ril_stopStop a RIL capture session with category summary
adb_profile_detectAuto-detect and build a device profile: hardware ID, chipset family, modem nodes, root status, 5G support, dual SIM configuration. Matches against built-in libr
adb_profile_saveSave a device profile to the profiles library
adb_profile_listList built-in and user-saved device profiles
adb_firmware_probeComprehensive firmware identification: parses baseband (Shannon/Qualcomm/MediaTek/Unisoc/HiSilicon/Intel), bootloader, and RIL implementation into structured co
adb_firmware_diffCompare all firmware components (baseband, bootloader, kernel, security patch, build ID, Android version, RIL) between saved fingerprints or live device. Deep p
adb_firmware_historyTrack firmware progression across all saved OTA fingerprints with multi-component change detection (baseband, bootloader, kernel, security patch, build ID, Andr
adb_wifi_firmwareWiFi chipset and firmware identification: driver version, firmware version, supported bands (2.4/5/6 GHz), WiFi standard detection (5/6/6E/7), current connectio
adb_bluetooth_firmwareBluetooth firmware and chipset identification: firmware version, BT version (4.0–5.4 from LMP), adapter state, LE capabilities (2M PHY, Coded PHY, extended adve
adb_nfc_firmwareNFC controller firmware: controller type (NXP/Broadcom/Samsung/ST), firmware version, supported technologies (NFC-A/B/F/V, MIFARE), secure element (eSE/UICC), H
adb_gps_firmwareGNSS/GPS chipset and firmware identification: hardware model (manufacturer, chip, firmware), supported constellations (GPS/GLONASS/Galileo/BeiDou/QZSS/NavIC/SBA
adb_market_searchSearch the workflow marketplace for community-shared workflow definitions with keyword and tag filtering. Shows install status
adb_market_installDownload, validate (JSON structure + SHA-256 integrity), and install a marketplace workflow for immediate use with adb_workflow_run
adb_market_exportPackage a local workflow with marketplace metadata (author, version, tags, SHA-256) and generate a registry manifest entry for sharing
adb_selinux_statusSELinux enforcement mode, policy version, shell context, recent AVC denial count. Root provides kernel dmesg denial stats
adb_selinux_denialsList recent AVC denial messages with parsed source/target contexts, permission classes, and denied operations. Supports process filtering
adb_permission_auditAudit runtime permission grants for a package grouped by dangerous permission category (Camera, Location, Phone, SMS, etc.). Flags high-sensitivity grants
adb_thermal_snapshotCapture all thermal zone temperatures, per-CPU frequencies/governors, cooling device states, battery temperature/current/voltage/power draw. Optional save as JS
adb_thermal_compareCompare current thermal state against a saved baseline with per-zone temperature deltas and battery current changes
adb_battery_drainMeasure battery drain rate over a configurable duration (3-60s). Reports average mA, mW, estimated %/hour. Optional package-specific batterystats
adb_network_scanScan the local network for ADB-enabled devices via ARP table and optional IP range sweep. Probes ports 5555-5558 with batched parallel TCP probes
adb_network_device_ipGet the WiFi IP of a connected device via multiple methods. Shows ADB TCP status and wireless connection instructions
adb_network_auto_connectOne-step discover + connect: scans for ADB devices and automatically runs adb connect on each found listener
adb_sensor_readRead current hardware sensor values via dumpsys sensorservice. Enumerates all sensors with vendor, type, mode, rate range, and wake capability. Returns last-kno
adb_iio_readRead raw hardware data from the Linux IIO subsystem. Auto-discovers IIO devices, classifies by kernel driver. On Tensor/Exynos: exposes per-rail ODPM power moni
adb_result_listList active result handles in the tempdir-backed cache. Shows tool, name, size, age, and remaining TTL for each handle
adb_result_getRetrieve the content of a stored handle by tool + name. Returns the original content blocks as the source tool produced them; updates last-accessed time. For UR
adb_result_dropDelete a stored result handle, or clear all handles in the current namespace. Pass both tool and name to drop one specific handle, or all: true to drop everythi
AreaIncludes

How to install the Deepadb MCP Server

{
  "mcpServers": {
    "deepadb": {
      "command": "node",
      "args": [
        "/path/to/DeepADB/build/index.js"
      ]
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Example prompts to try

  • “Use Deepadb to adb devices.”
  • “Use Deepadb to adb device info.”
  • “Use Deepadb to adb getprop.”

Frequently asked questions

DeepADB — full-featured Android Debug Bridge MCP server. 204 tools across 45 modules for device inspection from UI to baseband. Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.