A build can be pushed to a device and its crash read back in the same exchange, with logcat narrowed by filter instead of scrolled through. The two ways of seeing the screen are deliberately different: inspect_ui returns XML an agent can act on, while dump_image is a picture for a person, so asking for the wrong one is the difference between automating a tap and describing one.
An ADB wrapper of ten tools: device listing, shell, Activity Manager and Package Manager subcommands, APK install, file transfer both ways, logcat, screenshots and a UI hierarchy dump.
- Connected devices and emulators with their status and the identifiers the other calls take
- The current screen as an XML UI hierarchy that can be parsed, and separately as a screenshot for looking at
- Arbitrary shell commands against a chosen device
- APK installation from a local path
- Logcat filtered by tag or expression and capped by line count
- File transfer in both directions — pull returns the file as base64, push takes base64 content
- Activity Manager subcommands such as start, broadcast and force-stop, and Package Manager subcommands such as listing packages and managing permissions
At least one Android device or emulator connected, and npx on your PATH. Calls take a device identifier when more than one is attached. No account, no key.
One command — npx -y adb-mcp
