Agent Droid Bridge — Claude Code MCP server: ADB control for agents
Wires an AI agent to an Android phone or emulator over ADB, so it can tap, swipe, grab screenshots, launch apps and run shell commands from chat.
claude mcp add --env ADB_EXECUTION_MODE=<ADB_EXECUTION_MODE> --env ADB_ALLOW_SHELL=<ADB_ALLOW_SHELL> --env ADB_PATH=<ADB_PATH> --env ADB_EXTRA_TOOL_PACKS=<ADB_EXTRA_TOOL_PACKS> --env ADB_DENIED_TOOLS=<ADB_DENIED_TOOLS> --transport stdio agent-droid-bridge -- uvx agent-droid-bridgeWhat Agent Droid Bridge does
The server hands the agent ADB-backed tools: capture the screen, inspect the UI tree, pull out elements, type text, send keycodes, start apps, run shell commands. Responses are compact and structured, so a long automation run does not drown the context in XML. A separate app_manager pack adds nine more tools for packages, app lifecycle, APK extraction, permissions and intents; switch it on with ADB_EXTRA_TOOL_PACKS=app_manager.
It speaks stdio, which means any MCP-capable client can use it. Start it with uvx agent-droid-bridge and skip cloning anything. The host needs Python 3.11+ and a working ADB install; point ADB_PATH at the binary when it is not on PATH. One attached device is picked automatically, several trigger a prompt.
The default mode is unrestricted, meaning full ADB access. On a device you do not own that is too much: set ADB_EXECUTION_MODE=restricted with an allowlist, or cut shell off entirely via ADB_ALLOW_SHELL=false. Tools you never want the agent to call go in ADB_DENIED_TOOLS, and commands are parsed through shlex. Session logs land in JSONL files once MCP_LOG_ENABLED=true and MCP_LOG_DIR are set.
What it helps with
- run a UI flow on a real device without writing test code
- capture a screenshot and read the screen from a prompt
- pull an APK off the device onto the host
- check declared permissions and fire an intent
- verify the screen state after installing a build
Example prompts for the agent
- Connect to the device, open Settings and turn on dark mode
- Launch the app and tell me what is on screen right now
- Extract the calculator APK to the host and show me the path
How to install Agent Droid Bridge
Platform CLI
claude mcp add --env ADB_EXECUTION_MODE=<ADB_EXECUTION_MODE> --env ADB_ALLOW_SHELL=<ADB_ALLOW_SHELL> --env ADB_PATH=<ADB_PATH> --env ADB_EXTRA_TOOL_PACKS=<ADB_EXTRA_TOOL_PACKS> --env ADB_DENIED_TOOLS=<ADB_DENIED_TOOLS> --transport stdio agent-droid-bridge -- uvx agent-droid-bridgeReplace <…> with your own values. 11 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from agent-droid-bridge <command>
Platform CLI
codex mcp add agent-droid-bridge --env ADB_EXECUTION_MODE=<ADB_EXECUTION_MODE> --env ADB_ALLOW_SHELL=<ADB_ALLOW_SHELL> --env ADB_PATH=<ADB_PATH> --env ADB_EXTRA_TOOL_PACKS=<ADB_EXTRA_TOOL_PACKS> --env ADB_DENIED_TOOLS=<ADB_DENIED_TOOLS> -- uvx agent-droid-bridgeReplace <…> with your own values. 11 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from agent-droid-bridge <command>
Config file
{
"mcpServers": {
"agent-droid-bridge": {
"command": "uvx",
"args": [
"agent-droid-bridge"
],
"env": {
"ADB_EXECUTION_MODE": "<ADB_EXECUTION_MODE>",
"ADB_ALLOW_SHELL": "<ADB_ALLOW_SHELL>",
"ADB_PATH": "<ADB_PATH>",
"ADB_EXTRA_TOOL_PACKS": "<ADB_EXTRA_TOOL_PACKS>",
"ADB_DENIED_TOOLS": "<ADB_DENIED_TOOLS>"
}
}
}
}Replace <…> with your own values. 11 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from agent-droid-bridge <command>
Config file
{
"servers": {
"agent-droid-bridge": {
"type": "stdio",
"command": "uvx",
"args": [
"agent-droid-bridge"
],
"env": {
"ADB_EXECUTION_MODE": "<ADB_EXECUTION_MODE>",
"ADB_ALLOW_SHELL": "<ADB_ALLOW_SHELL>",
"ADB_PATH": "<ADB_PATH>",
"ADB_EXTRA_TOOL_PACKS": "<ADB_EXTRA_TOOL_PACKS>",
"ADB_DENIED_TOOLS": "<ADB_DENIED_TOOLS>"
}
}
}
}Replace <…> with your own values. 11 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from agent-droid-bridge <command>
Platform CLI
gemini mcp add -e ADB_EXECUTION_MODE=<ADB_EXECUTION_MODE> -e ADB_ALLOW_SHELL=<ADB_ALLOW_SHELL> -e ADB_PATH=<ADB_PATH> -e ADB_EXTRA_TOOL_PACKS=<ADB_EXTRA_TOOL_PACKS> -e ADB_DENIED_TOOLS=<ADB_DENIED_TOOLS> agent-droid-bridge uvx agent-droid-bridgeReplace <…> with your own values. 11 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from agent-droid-bridge <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Agent Droid Bridge
How to install Agent Droid Bridge in Claude Code?
Run claude mcp add agent-droid-bridge -- uvx agent-droid-bridge. For environment variables use the variant with --env flags and --transport stdio.
What does Agent Droid Bridge do?
It exposes ADB to the agent: taps, swipes, text input, screenshots, UI reading and shell commands on a connected Android device or emulator.
What does it need to run?
Python 3.11+ and ADB on the host, plus an attached device or a running emulator. When adb is not on PATH, set the full path in ADB_PATH.