DeepADB — full-featured Android Debug Bridge MCP server. 204 tools across 45 modules for device inspection from UI to baseband.
DeepADB — full-featured Android Debug Bridge MCP server. 204 tools across 45 modules for device inspection from UI to baseband.
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
Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| adb_health_check | Comprehensive toolchain validation: ADB binary, server, device connection, authorization, root access, and storage writability |
| adb_runtime_audit | Unified read-only readiness audit for transport, Android userspace, root, SELinux, storage, command capabilities, UI/network diagnostics, SQLite, modem nodes, a |
| adb_devices | List all connected devices with state, model, and product info |
| adb_device_info | Detailed device properties (model, OS, SDK, build, security patch, ABI) |
| adb_getprop | Read a specific system property or dump all properties |
| adb_shell | Execute arbitrary shell commands with configurable timeout (security-checked) |
| adb_root_shell | Execute commands as root via su (requires rooted device, security-checked) |
| adb_install | Install APK with replace/downgrade options |
| adb_uninstall | Remove package with optional data retention |
| adb_list_packages | List packages filtered by name or type (all/system/third-party) |
| adb_package_info | Detailed package info (version, permissions, paths) |
| adb_clear_data | Clear all app data and cache |
| adb_grant_permission | Grant a runtime permission to a package |
| adb_revoke_permission | Revoke a runtime permission from a package (reset permission state for testing denial flows) |
| adb_list_permissions | List all declared and granted permissions for a package, filterable by granted/denied |
| adb_force_stop | Force-stop an app immediately |
| adb_start_app | Launch an app by package name (resolves launcher activity) |
| adb_restart_app | Force-stop then re-launch in one call (configurable delay) |
| adb_resolve_intents | Discover registered activities, services, and receivers with intent filters |
| adb_sqlite_inspect | Package-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_push | Push local file to device (hard-blocked kernel paths, fs-type awareness, storage reporting) |
| adb_pull | Pull file from device to local filesystem |
| adb_ls | List device directory contents (simple or detailed) |
| adb_cat | Read text file from device with optional line limit |
| adb_file_write | Create or overwrite text files via heredoc (buffer limit warning, fs-aware, post-verify) |
| adb_find | Search for files by name/pattern with depth control and result capping |
| adb_file_stat | File metadata: size, permissions, timestamps, ownership, SELinux context |
| adb_file_checksum | SHA-256/SHA-1/MD5 hash with size-based timeout estimation |
| adb_mkdir | Create directories with parent creation (-p), hard-blocked kernel paths |
| adb_rm | Delete files/directories with depth-based recursive protection and symlink resolution |
| adb_file_move | Move/rename with source depth protection and post-verify |
| adb_file_copy | Copy with pre-flight size+space check and post-verify size match |
| adb_file_chmod | Change permissions (Zod-validated octal mode, depth-based recursive protection) |
| adb_file_touch | Create empty files or update timestamps (explicit timestamp support) |
| adb_file_fsinfo | Filesystem report: type, mount, capacity, capabilities, SELinux, limitations |
| adb_file_chown | Change ownership (root required, depth-based recursive protection) |
| adb_grep | Search file contents with fixed-string default, recursive depth control, result capping |
| adb_file_replace | Find/replace text in files (sed-backed, proper escaping, backup option) |
| adb_logcat | Filtered logcat snapshot with tag, priority, grep, and buffer selection |
| adb_logcat_clear | Clear all logcat buffers |
| adb_logcat_crash | Crash buffer log snapshot |
| adb_logcat_start | Start a background logcat watcher with ring buffer accumulation |
| adb_logcat_poll | Retrieve new lines since last poll from a running watcher |
| adb_logcat_stop | Stop a watcher session (or all sessions) |
| adb_logcat_sessions | List all active watcher sessions with stats |
| adb_dumpsys | Run dumpsys for any service (or list all services) |
| adb_telephony | Cell info, signal strength, and network registration (parallel query) |
| adb_battery | Battery status, level, temperature, and charging info |
| adb_network | WiFi, cellular, and IP connectivity (parallel query) |
| adb_top | CPU and memory usage snapshot |
| adb_perf_snapshot | Parallel memory, frame stats, and CPU profiling for a package |
| adb_bugreport | Full bug report zip capture (device state, logs, system info) |
| adb_crash_logs | ANR traces and tombstone crash dumps from /data/anr/ and /data/tombstones/ |
| adb_heap_dump | Capture heap dump (.hprof) from a running process for memory analysis |
| adb_app_route_context | Resolve 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_screencap | Take screenshot with filename sanitization, saves locally |
| adb_screencap_annotated | Screenshot 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_activity | Get focused activity and top window stack |
| adb_input | Send tap, swipe, text, or keyevent input |
| adb_start_activity | Launch activities by intent or component name |
| adb_ui_dump | Dump full UI hierarchy. Supports three output formats: text (default, human-readable), tsv (compact tab-separated for token-efficient automation loops), xml (ra |
| adb_ui_find | Search UI hierarchy by text, resource-id, or content-description (returns tap coordinates) |
| adb_screen_state | Combined screen state in one call: foreground activity, screen dimensions and density, orientation, battery level, and a TSV list of interactive elements. Repla |
| adb_screenrecord_start | Start recording the device screen (1-180s, stored on device) |
| adb_screenrecord_stop | Stop recording and pull the mp4 video file locally |
| adb_airplane_mode | Toggle airplane mode with broadcast and verification |
| adb_airplane_cycle | Cycle airplane mode on/off to force cellular re-registration |
| adb_wifi | Enable or disable WiFi |
| adb_mobile_data | Enable or disable mobile data |
| adb_location | Set location mode (off/sensors/battery/high) |
| adb_screen | Wake, 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_get | Read any Android setting from system/secure/global namespace |
| adb_settings_put | Write any Android setting with read-back verification |
| adb_reboot | Reboot device (normal, recovery, or bootloader mode) |
| adb_pair | Pair with device over WiFi using pairing code |
| adb_connect | Connect to device over WiFi/TCP |
| adb_disconnect | Disconnect wireless device(s) |
| adb_tcpip | Switch USB device to TCP/IP mode (auto-detects device IP) |
| adb_forward | Forward a local port to a device port (host → device) |
| adb_reverse | Reverse-forward a device port to the host (device → host) |
| adb_forward_list | List all active forward and reverse port mappings |
| adb_forward_remove | Remove a port forward or all forwards |
| adb_reverse_remove | Remove a reverse forward or all reverse forwards |
| adb_tunnel_open | Open 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_list | List active managed tunnels (those opened via adb_tunnel_open). Optional device filter; shows ID, direction, endpoints, and age |
| adb_tunnel_close | Close a managed tunnel by ID, or close all at once with id="all" |
| adb_avd_list | List available AVDs (PC mode) or detect KVM/QEMU virtualization capabilities (on-device mode) |
| adb_emulator_start | Launch an AVD with headless, cold boot, and GPU options (PC mode) or report QEMU alternative (on-device mode) |
| adb_emulator_stop | Gracefully shut down a running emulator |
| adb_qemu_setup | Check and install QEMU for on-device virtualization. Verifies KVM, reports host CPU/RAM, installs via Termux pkg |
| adb_qemu_images | Manage VM disk images: list, create (qcow2/raw), delete. Path containment verification prevents traversal |
| adb_qemu_start | Boot 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_stop | Stop a running VM (graceful SIGTERM or force SIGKILL). Auto-disconnects guest ADB before killing. Reports running VMs if no name given |
| adb_qemu_status | Full status: KVM/QEMU availability, host resource budget, running VMs with PID/resources/uptime/ports/ADB connection state, image inventory |
| adb_qemu_connect | Connect 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_disconnect | Disconnect from a guest VM's ADB service. Clears connection state and removes guest from device list |
| adb_qemu_guest_shell | Execute 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_start | Start a named test session with organized output directory |
| adb_test_step | Capture a numbered step with screenshot and logcat into the session |
| adb_test_session_end | End session, write summary manifest, return directory path |
| adb_multi_shell | Execute a command on all/selected devices in parallel (security-checked) |
| adb_multi_install | Install an APK across multiple devices simultaneously |
| adb_multi_compare | Run a command on all devices and highlight output differences |
| adb_multi_test | Comparative test workflow: run predefined diagnostic profiles (firmware/security/network/identity/full) or custom command lists across all devices including QEM |
| adb_wear_datalayer_preflight | Read-only phone/watch role, Google Play services, Bluetooth, optional package, companion-association, and Data Layer service preflight; pairing identifiers are |
| adb_screen_size | Screen resolution, display density (DPI), aspect ratio, and DP width in one call |
| adb_device_state | Combined snapshot: battery level/status/temp, network type, WiFi state, screen on/off, orientation, foreground activity |
| adb_notifications | Parse active notifications with package, title, text, importance, channel, flags, and timestamp (filterable by package) |
| adb_snapshot_capture | Save comprehensive device state (packages, settings, properties) to JSON |
| adb_snapshot_compare | Diff current state against a saved snapshot (added/removed packages, changed settings) |
| adb_snapshot_restore_settings | Restore global/secure settings from a saved snapshot |
| adb_tcpdump_start | Start background packet capture via tcpdump (requires root) |
| adb_tcpdump_stop | Stop capture and pull pcap file locally for Wireshark analysis |
| adb_network_connections | Show active TCP/UDP connections (ss/netstat with /proc/net fallback) |
| adb_ci_wait_boot | Wait for device/emulator to fully boot with configurable timeout |
| adb_ci_device_ready | Structured pass/fail readiness check (boot, PM, screen, network, disk) |
| adb_ci_run_tests | Run instrumented tests via am instrument with parsed pass/fail results |
| adb_baseband_info | Modem firmware, RIL implementation, chipset, SIM configuration (dual SIM detection with per-slot state), network registration. IMEI retrieval is opt-in only (in |
| adb_cell_identity | Cell ID (CID), TAC/LAC, EARFCN, PCI, PLMN from dumpsys phone for cellular network analysis |
| adb_signal_detail | RSRP, RSRQ, SINR, RSSI, timing advance — raw radio measurements for signal analysis |
| adb_neighboring_cells | All visible LTE/5G/WCDMA/GSM cells with identities and signal strengths |
| adb_carrier_config | Carrier configuration dump, carrier ID, preferred APN |
| adb_modem_logs | RIL radio buffer, telephony framework, RILJ/RILC, kernel dmesg (root) modem logs |
| adb_a11y_audit | Automated WCAG audit: missing labels, undersized touch targets (<48dp), duplicate descriptions, unfocusable clickables |
| adb_a11y_touch_targets | List all interactive elements with touch target dimensions in dp, flag undersized |
| adb_a11y_tree | Accessibility-focused UI tree showing only screen-reader-relevant elements with roles, labels, and states |
| adb_regression_baseline | Capture performance baseline (memory, CPU, frame stats, battery, network) to JSON |
| adb_regression_check | Compare current performance against a saved baseline with configurable regression thresholds |
| adb_regression_history | List all saved baselines with trends, optionally filtered by package |
| adb_farm_run | Run instrumented tests on Firebase Test Lab across multiple device models and API levels |
| adb_farm_results | Retrieve results from a Test Lab run or list recent test matrices |
| adb_farm_matrix | List available device models and Android versions on Firebase Test Lab |
| adb_registry_search | Search the community plugin registry, shows install status and available updates |
| adb_registry_install | Download and install a plugin from the registry by name |
| adb_registry_installed | List locally installed plugins with version and update availability |
| adb_plugin_list | List all loaded plugins with paths and load times |
| adb_plugin_info | Plugin system documentation and example plugin format |
| adb_gradle | Run any Gradle task in a project directory |
| adb_build_and_install | Build debug APK and install via ANDROID_SERIAL targeting |
| adb_shannon_session | Check 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_detect | Auto-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_send | Send 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_batch | Send multiple AT commands sequentially with per-command results. Configurable inter-command delay |
| adb_at_probe | Run a standard diagnostic probe: modem ID, signal quality, network registration, SIM status, operator, functionality mode |
| adb_at_cross_validate | Cross-validate baseband firmware by comparing AT command responses (ATI, AT+CGMR, AT+CGMM) against system properties. Flags discrepancies as potential firmware |
| adb_screenshot_baseline | Capture and save a named screenshot baseline with metadata (dimensions, SHA-256, timestamp) |
| adb_screenshot_diff | Compare 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_history | List all saved screenshot baselines with metadata |
| adb_workflow_run | Execute a JSON-defined workflow: sequential device operations with variable substitution, conditional steps, loops, and result capture. Actions: shell, root_she |
| adb_workflow_validate | Validate workflow structure without executing. Shows execution plan |
| adb_workflow_list | List saved workflow files in the workflows directory |
| adb_install_bundle | Install split APKs (app bundles) via install-multiple with replace and downgrade options |
| adb_list_splits | Show all APK split paths for a package with classification (base, config.density, config.language, etc.) and total size |
| adb_extract_apks | Pull all splits for a package to a local directory for analysis or backup |
| adb_apex_list | List installed APEX modules with version info |
| adb_mirror_start | Start live screen mirroring via scrcpy. Supports windowed and headless modes, recording, bitrate/FPS/resolution control, stay-awake, and screen-off |
| adb_mirror_stop | Stop mirroring for a device or all devices |
| adb_mirror_status | Check scrcpy availability and list active mirroring sessions |
| adb_test_gen_from_ui | Analyze the current screen's interactive elements and generate a workflow that taps each one, screenshots, and checks for crashes |
| adb_test_gen_from_intents | Analyze a package's registered activities and generate a workflow that launches each exported activity with crash detection |
| adb_test_gen_save | Save a generated workflow JSON to the workflows directory for later execution |
| adb_ota_fingerprint | Capture system fingerprint: build ID, Android version, security patch, bootloader, baseband firmware, kernel, A/B slot |
| adb_ota_check | Compare current system state against a saved fingerprint to detect OTA updates. Identifies changed fields and recommends re-baselining |
| adb_ota_history | List all saved fingerprints for a device with version progression over time |
| adb_ril_start | Start capturing RIL messages from the radio logcat buffer. Categorizes registration, cell info, signal, network, security, handover, and NAS events |
| adb_ril_poll | Retrieve captured RIL messages with optional category filtering. Shows category distribution |
| adb_ril_stop | Stop a RIL capture session with category summary |
| adb_profile_detect | Auto-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_save | Save a device profile to the profiles library |
| adb_profile_list | List built-in and user-saved device profiles |
| adb_firmware_probe | Comprehensive firmware identification: parses baseband (Shannon/Qualcomm/MediaTek/Unisoc/HiSilicon/Intel), bootloader, and RIL implementation into structured co |
| adb_firmware_diff | Compare all firmware components (baseband, bootloader, kernel, security patch, build ID, Android version, RIL) between saved fingerprints or live device. Deep p |
| adb_firmware_history | Track firmware progression across all saved OTA fingerprints with multi-component change detection (baseband, bootloader, kernel, security patch, build ID, Andr |
| adb_wifi_firmware | WiFi 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_firmware | Bluetooth 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_firmware | NFC 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_firmware | GNSS/GPS chipset and firmware identification: hardware model (manufacturer, chip, firmware), supported constellations (GPS/GLONASS/Galileo/BeiDou/QZSS/NavIC/SBA |
| adb_market_search | Search the workflow marketplace for community-shared workflow definitions with keyword and tag filtering. Shows install status |
| adb_market_install | Download, validate (JSON structure + SHA-256 integrity), and install a marketplace workflow for immediate use with adb_workflow_run |
| adb_market_export | Package a local workflow with marketplace metadata (author, version, tags, SHA-256) and generate a registry manifest entry for sharing |
| adb_selinux_status | SELinux enforcement mode, policy version, shell context, recent AVC denial count. Root provides kernel dmesg denial stats |
| adb_selinux_denials | List recent AVC denial messages with parsed source/target contexts, permission classes, and denied operations. Supports process filtering |
| adb_permission_audit | Audit runtime permission grants for a package grouped by dangerous permission category (Camera, Location, Phone, SMS, etc.). Flags high-sensitivity grants |
| adb_thermal_snapshot | Capture all thermal zone temperatures, per-CPU frequencies/governors, cooling device states, battery temperature/current/voltage/power draw. Optional save as JS |
| adb_thermal_compare | Compare current thermal state against a saved baseline with per-zone temperature deltas and battery current changes |
| adb_battery_drain | Measure battery drain rate over a configurable duration (3-60s). Reports average mA, mW, estimated %/hour. Optional package-specific batterystats |
| adb_network_scan | Scan 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_ip | Get the WiFi IP of a connected device via multiple methods. Shows ADB TCP status and wireless connection instructions |
| adb_network_auto_connect | One-step discover + connect: scans for ADB devices and automatically runs adb connect on each found listener |
| adb_sensor_read | Read current hardware sensor values via dumpsys sensorservice. Enumerates all sensors with vendor, type, mode, rate range, and wake capability. Returns last-kno |
| adb_iio_read | Read 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_list | List active result handles in the tempdir-backed cache. Shows tool, name, size, age, and remaining TTL for each handle |
| adb_result_get | Retrieve 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_drop | Delete 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 |
| Area | Includes |
{
"mcpServers": {
"deepadb": {
"command": "node",
"args": [
"/path/to/DeepADB/build/index.js"
]
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
Read, search and edit files inside allowed directories with the Model Context Protocol reference Filesystem server.
Retrieve version-aware library documentation and code examples with Context7 MCP, using resolve-library-id and query-docs.
Long-term, drift-free cognitive memory engine for AI Agents and Cursor IDE.
The Costory FinOps MCP is a hosted Model Context Protocol server that lets Claude, Cursor, VS Code, Codex, or Dust answer questions about your cloud and AI spend.
If you find this useful, consider giving it a star on GitHub — it helps others discover the project!
MCP server for DeckForge — AI-powered pitch deck generation with PPTX export