ha-adb-mcp
Home Assistant app (add-on) that turns network ADB into an MCP server: Claude and other AI assistants see and control Android TVs, Fire TVs, phones and tablets - shell, screenshots, UI taps, text input, app installs, logcat.
Install / Use
claude mcp add st412m -- npx -y github:st412m/ha-adb-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of ha-adb-mcp
ha-adb-mcp scores 75/100 on our quality scale, 3730th of 4,624 Development & Engineering skills we index.
Its MCP Server is 8.4 KB long, well organised into 10 sections with 3 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 5 days ago, so ha-adb-mcp is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
ha-adb-mcp compared with similar skills
All 4 of these similar skills score higher than ha-adb-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| ha-adb-mcp (this skill)by st412m | 75 | 3 | 5d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 91.8k | 20d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.5k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.2k | today | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 45.0k | today | CLAUDE.md |
Frequently asked questions
- How do I install ha-adb-mcp?
- Run
claude mcp add st412m -- npx -y github:st412m/ha-adb-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does ha-adb-mcp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is ha-adb-mcp safe to use?
- It is MIT-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is ha-adb-mcp still maintained?
- The repository was last updated 5 days ago, so ha-adb-mcp is actively maintained.
Skill content
View source on GitHubADB MCP Server — Home Assistant App (Add-on)
MCP (Model Context Protocol) server for controlling Android devices over network ADB, packaged as a Home Assistant app. It lets AI assistants — claude.ai custom connectors, Claude Desktop and other MCP clients — see and control Android TVs, Fire TVs, phones, tablets and watches on your LAN: run shell commands, take screenshots, inspect and tap the UI, type text including Unicode, install apps, transfer files and read logcat.
Transport is MCP Streamable HTTP (POST /mcp, plain JSON responses, immune to SSE buffering in CDNs and tunnels). Authentication is a secret path prefix, /private_<token>, the same pattern as ha-filesystem-mcp.
Home Assistant ships its own MCP Server integration, which does a different job: it exposes the HA conversation agent and the intents an assistant already understands. It gives no shell, no screen and no package manager. This app works below the level where entities exist and talks to Android over ADB directly. If what you want is an entity, use the official integration; if what you want is a terminal and a screen, use this.
Requirements
| Requirement | Detail |
|---|---|
| Home Assistant | a Supervisor-managed install (HAOS or Supervised) |
| Architectures | amd64, aarch64 |
| Device side | Android with ADB over the network reachable from the HA host |
| Ports | 3200/tcp for the MCP endpoint; 5037/tcp optional, for sharing the adb daemon |
Installation
Home Assistant renamed add-ons to apps; on an older core the two menus below are called Add-ons and Add-on Store.
1. Add this repository
By hand: Settings → Apps → App Store → ⋮ → Repositories → + Add, paste https://github.com/st412m/ha-adb-mcp, select Add. If the badge opens the App Store without a dialog, use the manual path (my.home-assistant.io#698).
2. Install and configure
In the ADB MCP Server card: Install, set a long random token in Configuration, then Start.
3. Enable ADB on the devices
- Fire TV / Android TV: Settings → Developer Options → ADB Debugging → ON. Network ADB listens on port 5555.
- Phones and tablets on Android 10 or older: enable USB debugging, connect over USB once, run
adb tcpip 5555. This resets on reboot. - Phones and tablets on Android 11+: Wireless debugging → "Pair device with pairing code" → call
adb_pairwith the shownip:portand 6-digit code, keeping the dialog open →adb_connectto theip:portfrom the main Wireless debugging screen.
4. Auto-connect stable devices at startup
token: "your-long-random-token"
devices:
- "192.0.2.50" # port 5555 implied
- "192.0.2.51:5555"
allow_shell: true
allow_uninstall: false
log_requests: false
5. Accept the debugging prompt
On first connection, accept the "Allow USB debugging?" dialog on each device and check "Always allow". ADB keys persist in /data/.android across app restarts and updates.
Configuration
| Option | Default | Description |
|---|---|---|
| token | changeme | Secret path token. Change it. |
| devices | [] | ip or ip:port entries auto-connected at startup |
| allow_shell | true | false disables the raw adb_shell tool; internal plumbing keeps working |
| allow_uninstall | false | true unlocks adb_app mode=uninstall |
| log_requests | false | HTTP access log in the proxy and a per-tool-call log in the server |
Longer notes, including what stays available with allow_shell: false and how arguments are masked in the log, are in docs/configuration.md.
Connecting claude.ai
Expose port 3200 through a reverse proxy (Caddy, nginx, Cloudflare Tunnel), then add a custom connector pointing at:
https://your-domain/private_<token>/mcp
Tools
18 tools. Full semantics, guard rails, refusal rules and per-tool timeouts are in docs/tools.md.
Session
adb_devices— list connected devices with serial, state and descriptionadb_connect— connect a network device,iporip:portadb_disconnect— drop one host, or every transportadb_pair— pair an Android 11+ device over Wireless Debugging
Shell and logs
adb_shell— run any shell command, return stdoutadb_logcat— non-blocking log dump, filterspec or substring, filtered on-device
Screen and input
adb_screenshot— JPEG screenshot plus a line giving the screen size, image size and scaleadb_ui_dump— compact UI hierarchy with tap coordinatesadb_tap— tap a coordinate, optionally in screenshot coordinates, with optionalverifyadb_swipe— swipe between two points; same point plus a long duration is a long-pressadb_key— send a keyevent by name or numeric codeadb_text— type into the focused field; non-ASCII goes through ADBKeyBoardadb_find_and_tap— find an element by label and activate it, tapping or walking the focus
Apps and files
adb_install— install one.apk, a split set, or one.apks/.xapk/.apkmbundle; by default it only reports,dry_run=falseinstallsadb_uninstall— uninstall by package nameadb_app— package operations with guard rails: list, launch, stop, clear, disable, uninstall, back up, restoreadb_push— copy a file from/mediaor/shareto the deviceadb_pull— copy a file from the device to/mediaor/share
Limitations
- The tool list is cached per chat. After updating the app, an already-open chat keeps the old tool schemas; start a new chat to see changed tools or parameters.
- A gateway timeout of roughly 60 s applies per tool call. Long-running shell commands are cut off by the connector, not by the app. Background them on-device and poll.
aarch64is build-verified, not device-verified: the image builds and starts and the screenshot smokes pass, but the ADB tools themselves have not been exercised on that architecture.- Screenshots wake devices.
screencapon a sleeping Android TV wakes it, and HDMI-CEC will switch on the attached television. - One ADB session per device. Android's
adbddoes not tolerate two independent TCP clients; to run theandroidtvintegration alongside this app, route it through this app's adb server — see docs/coexistence-androidtv.md.
Troubleshooting
INSTALL_FAILED_VERIFICATION_FAILURE — the on-device verifier rejects ADB installs:
adb_shell settings put global verifier_verify_adb_installs 0
device offline / device not found — the TCP session died: adb_disconnect that host, then adb_connect again. On Android 11+ wireless debugging the port changes after every reboot.
A black screenshot — read the warning under the image. screen: Asleep means the device is asleep, so adb_key WAKEUP first; FLAG_SECURE means the system is hiding the content.
Everything else is in docs/troubleshooting.md.
Security
- ADB is not a sandbox.
adb_uninstallremoves app data, and disabling system packages can leave a device unbootable. Start withallow_shell: false, and keep a way to recover each device. - The token in the URL path is the only auth layer. Use a long random value and serve it over HTTPS.
adb_shellis full device shell access. Disable it if you only need screenshots and UI control.adb_push,adb_pullandadb_installare restricted to/mediaand/shareon the HA side.adb_appwrites APK backups and its rollback snapshot understore, default/media/adb-mcp. Those APKs are readable by anything else with access to/media.- Never expose port 5037 beyond your LAN — the adb server has no auth at all.
- With
log_requests: true,adb_textinput andadb_paircodes are masked in the log and in error text;adb_shell.commandis not, since it has no fixed shape to mask. Type secrets throughadb_text.
Links
Related Skills
Agent-Reach
91.8kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.5kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.2kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
ai-job-search
45.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
