{"_id":"@abhinavyadav/adb-mcp-server","_rev":"2-b9fcd0c2b9af88fa72db6b1aeae92cdb","name":"@abhinavyadav/adb-mcp-server","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@abhinavyadav/adb-mcp-server","version":"1.0.0","keywords":["mcp","model-context-protocol","adb","android","debug","developer-tools","cli"],"author":{"name":"Abhinav Yadav"},"license":"MIT","_id":"@abhinavyadav/adb-mcp-server@1.0.0","maintainers":[{"name":"abhinavpackages","email":"abhinavay2003@gmail.com"}],"bin":{"adb-mcp-server":"dist/index.js"},"dist":{"shasum":"834e1ce15ed0f9f97f14d759e0d32067bb8f27a4","tarball":"https://registry.npmjs.org/@abhinavyadav/adb-mcp-server/-/adb-mcp-server-1.0.0.tgz","fileCount":13,"integrity":"sha512-6q0T1zpsul9MGIXOkBGOGU3yJP0YwPMfi2XapVNdvATd1ivsg1ltQ17vrLfBPG3kqwIn5UVe9XSgMxEqGeQhbA==","signatures":[{"sig":"MEQCIBglcDKylWl6Ap7SaASR7RewXoxevXi+t/u15EkJ0DVfAiBz1pfqtfUUyGR4pGguwKyRrIHUSmBVpIZ3nAMzdURZsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69548},"main":"dist/index.js","engines":{"node":">=18"},"scripts":{"dev":"ts-node src/index.ts","build":"swc src -d dist --strip-leading-paths","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"abhinavpackages","email":"abhinavay2003@gmail.com"},"_npmVersion":"10.9.8","description":"MCP server for Android Debug Bridge (ADB) — manage connected devices, run shell commands, view logcats, query SQLite databases and more.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.0","@swc/cli":"^0.8.1","@swc/core":"^1.15.41","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/adb-mcp-server_1.0.0_1782124613834_0.9211261268448319","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abhinavyadav/adb-mcp-server","version":"1.0.1","description":"MCP server for Android Debug Bridge (ADB) — manage connected devices, run shell commands, view logcats, query SQLite databases and more.","main":"dist/index.js","bin":{"adb-mcp-server":"dist/index.js"},"scripts":{"build":"swc src -d dist --strip-leading-paths","typecheck":"tsc --noEmit","start":"node dist/index.js","dev":"ts-node src/index.ts","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","adb","android","debug","developer-tools","cli"],"author":{"name":"Abhinav Yadav"},"license":"MIT","engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"latest","zod":"^3.22.0"},"devDependencies":{"@swc/cli":"^0.8.1","@swc/core":"^1.15.41","@types/node":"^20.0.0","ts-node":"^10.9.0","typescript":"^5.0.0"},"_id":"@abhinavyadav/adb-mcp-server@1.0.1","gitHead":"86b7151cd263eeeb8af031158b7d6562d272e3af","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-x5DTCLDnmhxsJeyKFN3c+kMykDZrNeBUEkuaRRC7m3WuFFd2qPcHN16jVS7aslmQw11kmT2k4gnxu/cyBpQShg==","shasum":"a3ddf332716413f9cf2d6d9d0131fe0d6ffd2962","tarball":"https://registry.npmjs.org/@abhinavyadav/adb-mcp-server/-/adb-mcp-server-1.0.1.tgz","fileCount":13,"unpackedSize":69491,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCreMxrKwhyugvYpVRgxbzSIfho/OhjxkHLrKxnU30rpAIgMzl2vb9HA+94l7dCfZoOP6KCI6UO+K2Y/5tufc9SWk4="}]},"_npmUser":{"name":"abhinavpackages","email":"abhinavay2003@gmail.com"},"directories":{},"maintainers":[{"name":"abhinavpackages","email":"abhinavay2003@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adb-mcp-server_1.0.1_1782126214858_0.6453764476768737"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-22T10:36:53.568Z","modified":"2026-06-22T11:03:35.120Z","1.0.0":"2026-06-22T10:36:53.973Z","1.0.1":"2026-06-22T11:03:34.990Z"},"author":{"name":"Abhinav Yadav"},"license":"MIT","keywords":["mcp","model-context-protocol","adb","android","debug","developer-tools","cli"],"description":"MCP server for Android Debug Bridge (ADB) — manage connected devices, run shell commands, view logcats, query SQLite databases and more.","maintainers":[{"name":"abhinavpackages","email":"abhinavay2003@gmail.com"}],"readme":"# ADB MCP Server\n\n[![npm version](https://img.shields.io/npm/v/adb-mcp-server.svg)](https://www.npmjs.com/package/adb-mcp-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nInspect, manage, debug, and run commands on connected Android devices and emulators — through natural language.\n\n## Demo\n\n<video src=\"assets/Demo.mp4\" width=\"100%\" controls></video>\n\n## Supported Features\n\n### 📱 Devices & Networking\n\nManage connection, state, and port-forwarding rules of connected devices.\n\n**Discovery** — List connected devices and emulators with models, products, and connection details.\n\n**Wi-Fi Connections** — Connect and disconnect devices over TCP/IP (Wi-Fi).\n\n**State & Reboot** — Check online/offline states and reboot into recovery or bootloader modes.\n\n**Privilege Control** — Restart the ADB daemon with or without root privileges (`adb root`).\n\n**Port Forwarding** — Forward local host ports to the device (`forward_port`) or reverse ports from the device to the host (`reverse_port`), critical for bundlers like React Native Metro.\n\n---\n\n### 📦 Apps\n\nInstall, run, and manage application packages.\n\n**Install / Uninstall** — Install APKs from the host (supporting reinstall and downgrade flags) and uninstall packages.\n\n**List & Filter** — List installed packages on the device, filtered by system, third-party, enabled, or disabled categories.\n\n**Application Control** — Launch apps (either directly using a main activity path or triggering launcher intents) and force-stop packages.\n\n**Permissions** — Grant or revoke runtime permissions dynamically on the fly.\n\n---\n\n### 📂 File Transfer\n\nMove files to and from the Android filesystem.\n\n**Push** — Copy local host files or folders onto the device.\n\n**Pull** — Retrieve files or folders from the device filesystem back to the host.\n\n---\n\n### 📋 Logs & Diagnostics\n\nAccess debugging logs and capture device media.\n\n**Logcat Logs** — Dump snapshots of recent system logs with custom limits and logcat tag/level filter criteria.\n\n**Clear Logs** — Flush logcat buffers before running tests.\n\n**Screenshots** — Capture device screen and return it directly as a renderable PNG image to the MCP client, or save it to a host path.\n\n**Screen Recording** — Record screen videos as MP4 files (1 to 180 seconds) and pull them directly to the host machine.\n\n**Diagnostics** — Run `dumpsys` diagnostics for any service (battery, cpuinfo, window) and read system properties (`getprop`).\n\n**UI Hierarchy** — Dump screen layout tree XMLs (`dump_ui_hierarchy`) using uiautomator to allow the AI to inspect and locate on-screen components.\n\n**Performance** — Read app memory RAM statistics (`get_app_memory`) and live device CPU load stats (`get_cpu_usage`).\n\n---\n\n### 🖱️ User Input Simulation\n\nAutomate actions and simulate user interactions on the screen.\n\n**Taps & Swipes** — Tap coordinates (`tap_screen`) and perform swipes or drag-gestures (`swipe_screen`).\n\n**Hardware Buttons** — Simulate hardware key presses (BACK, HOME, POWER, MENU, VOLUME) using `send_keyevent`.\n\n**Text Input** — Type strings directly into focused input fields (`type_text`) with automatic space-escaping.\n\n---\n\n### 🗄️ Database & Storage Tools\n\nInspect SQLite database states and app configurations.\n\n**Database Diagnostics** — Dump database statistics, open connections, query caches, and memory details using `dumpsys dbinfo`.\n\n**SQLite Queries** — Run SQL commands (e.g. `SELECT`, `.tables`, `.schema`) directly on an app's sandboxed databases using `run-as` (requires a debuggable app or rooted environment, runs safely without host command injection).\n\n**Shared Preferences** — List preferences files (`list_shared_preferences`) and read preference XML contents (`get_shared_preferences`) inside sandboxed apps.\n\n---\n\n### ⚙️ Raw Execution\n\nRun low-level commands that are not exposed as high-level tools.\n\n**Raw ADB** — Execute arbitrary ADB arguments as safe process argument arrays.\n\n**Device Shell** — Run arbitrary shell commands directly inside the device.\n\n---\n\n## Quick Start\n\n```json\n{\n  \"mcpServers\": {\n    \"adb\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"adb-mcp-server\"]\n    }\n  }\n}\n```\n\nEnsure `adb` is installed on your machine and available in your shell `PATH`.\n\n---\n\n## Setup Instructions\n\n### Claude Desktop\n\nConfig file path:\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"adb\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"adb-mcp-server\"]\n    }\n  }\n}\n```\n\n### Antigravity (Google AI IDE)\n\nConfig file path:\n- **macOS/Linux**: `~/.gemini/config/mcp_config.json`\n\nAdd the server to your `mcp_config.json` under the `mcpServers` block:\n\n```json\n{\n  \"mcpServers\": {\n    \"adb\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"adb-mcp-server\"]\n    }\n  }\n}\n```\n\nAlternatively, configure via the UI:\n1. Open the **Agent Panel** in the top right.\n2. Select **Manage MCP Servers** or go to **Settings** → **Customizations**.\n3. Add a custom MCP server:\n   - **Command**: `npx`\n   - **Arguments**: `-y adb-mcp-server`\n\n### Cursor\n\n1. Open **Settings** → **Features** → **MCP**\n2. Click **+ Add New MCP Server**\n3. Set:\n   - **Name**: `adb`\n   - **Type**: `command`\n   - **Command**: `npx -y adb-mcp-server`\n\n### Windsurf\n\nConfig file: `~/.codeium/windsurf/mcp_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"adb\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"adb-mcp-server\"]\n    }\n  }\n}\n```\n\n### VS Code (Cline / Roo Code)\n\nConfig file path:\n- **macOS**: `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"adb\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"adb-mcp-server\"]\n    }\n  }\n}\n```\n\n### Claude Code (CLI)\n\n```bash\nclaude mcp add npx -- -y adb-mcp-server\n```\n\n---\n\n## Example Prompts\n\n```\nList all connected Android devices. What are their model names?\n```\n\n```\nTake a screenshot of my connected emulator and show it to me.\n```\n\n```\nInstall the app APK located at /Users/user/Downloads/app.apk and start its main activity.\n```\n\n```\nGet the last 100 logcat lines from my device. Filter logs by \"MyReactAppName\" tag.\n```\n\n```\nRun \"SELECT * FROM settings WHERE value = 'dark';\" on the database \"app_prefs.db\" inside the package \"com.example.myapp\".\n```\n\n```\nRead the shared preferences file \"user_settings\" for package \"com.example.myapp\".\n```\n\n```\nPress the power button on the device using keyevent.\n```\n\n```\nReverse port 8081 for React Native Metro bundler.\n```\n\n```\nDump the layout UI hierarchy XML of the current screen to inspect the visible components.\n```\n\n```\nTap the screen at coordinates (300, 750) and then type the text \"hello world\" into the input.\n```\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}