MCP server giving AI agents eyes and hands inside Android devices via ADB
Connect Runs on your machine
claude mcp add agent-droid-bridge -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> -e ADB_SHELL_ALLOWLIST=<ADB_SHELL_ALLOWLIST> -e ADB_SHELL_DENYLIST=<ADB_SHELL_DENYLIST> -e MCP_LOG_ENABLED=<MCP_LOG_ENABLED> -e MCP_LOG_DIR=<MCP_LOG_DIR> -e ADB_LOG_LEVEL=<ADB_LOG_LEVEL> -e ADB_COMMAND_TIMEOUT=<ADB_COMMAND_TIMEOUT> -e ADB_SCREENSHOT_TIMEOUT=<ADB_SCREENSHOT_TIMEOUT> -e ADB_UI_CHANGE_TIMEOUT=<ADB_UI_CHANGE_TIMEOUT> -e ADB_UI_CHANGE_POLL_INTERVAL=<ADB_UI_CHANGE_POLL_INTERVAL> -e ADB_AAPT_TIMEOUT=<ADB_AAPT_TIMEOUT> -e ADB_CONFIG_SOURCE=<ADB_CONFIG_SOURCE> -- uvx agent-droid-bridge==0.6.1
{
"mcpServers": {
"agent-droid-bridge": {
"command": "uvx",
"args": [
"agent-droid-bridge==0.6.1"
],
"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>",
"ADB_SHELL_ALLOWLIST": "<ADB_SHELL_ALLOWLIST>",
"ADB_SHELL_DENYLIST": "<ADB_SHELL_DENYLIST>",
"MCP_LOG_ENABLED": "<MCP_LOG_ENABLED>",
"MCP_LOG_DIR": "<MCP_LOG_DIR>",
"ADB_LOG_LEVEL": "<ADB_LOG_LEVEL>",
"ADB_COMMAND_TIMEOUT": "<ADB_COMMAND_TIMEOUT>",
"ADB_SCREENSHOT_TIMEOUT": "<ADB_SCREENSHOT_TIMEOUT>",
"ADB_UI_CHANGE_TIMEOUT": "<ADB_UI_CHANGE_TIMEOUT>",
"ADB_UI_CHANGE_POLL_INTERVAL": "<ADB_UI_CHANGE_POLL_INTERVAL>",
"ADB_AAPT_TIMEOUT": "<ADB_AAPT_TIMEOUT>",
"ADB_CONFIG_SOURCE": "<ADB_CONFIG_SOURCE>"
}
}
}
}
{
"mcpServers": {
"agent-droid-bridge": {
"command": "uvx",
"args": [
"agent-droid-bridge==0.6.1"
],
"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>",
"ADB_SHELL_ALLOWLIST": "<ADB_SHELL_ALLOWLIST>",
"ADB_SHELL_DENYLIST": "<ADB_SHELL_DENYLIST>",
"MCP_LOG_ENABLED": "<MCP_LOG_ENABLED>",
"MCP_LOG_DIR": "<MCP_LOG_DIR>",
"ADB_LOG_LEVEL": "<ADB_LOG_LEVEL>",
"ADB_COMMAND_TIMEOUT": "<ADB_COMMAND_TIMEOUT>",
"ADB_SCREENSHOT_TIMEOUT": "<ADB_SCREENSHOT_TIMEOUT>",
"ADB_UI_CHANGE_TIMEOUT": "<ADB_UI_CHANGE_TIMEOUT>",
"ADB_UI_CHANGE_POLL_INTERVAL": "<ADB_UI_CHANGE_POLL_INTERVAL>",
"ADB_AAPT_TIMEOUT": "<ADB_AAPT_TIMEOUT>",
"ADB_CONFIG_SOURCE": "<ADB_CONFIG_SOURCE>"
}
}
}
}
{
"servers": {
"agent-droid-bridge": {
"type": "stdio",
"command": "uvx",
"args": [
"agent-droid-bridge==0.6.1"
],
"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>",
"ADB_SHELL_ALLOWLIST": "<ADB_SHELL_ALLOWLIST>",
"ADB_SHELL_DENYLIST": "<ADB_SHELL_DENYLIST>",
"MCP_LOG_ENABLED": "<MCP_LOG_ENABLED>",
"MCP_LOG_DIR": "<MCP_LOG_DIR>",
"ADB_LOG_LEVEL": "<ADB_LOG_LEVEL>",
"ADB_COMMAND_TIMEOUT": "<ADB_COMMAND_TIMEOUT>",
"ADB_SCREENSHOT_TIMEOUT": "<ADB_SCREENSHOT_TIMEOUT>",
"ADB_UI_CHANGE_TIMEOUT": "<ADB_UI_CHANGE_TIMEOUT>",
"ADB_UI_CHANGE_POLL_INTERVAL": "<ADB_UI_CHANGE_POLL_INTERVAL>",
"ADB_AAPT_TIMEOUT": "<ADB_AAPT_TIMEOUT>",
"ADB_CONFIG_SOURCE": "<ADB_CONFIG_SOURCE>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
ADB_EXECUTION_MODEOptional | Security mode. 'unrestricted' allows all shell commands with an optional denylist. 'restricted' allows only commands in ADB_SHELL_ALLOWLIST. |
ADB_ALLOW_SHELLOptional | Set to 'false' to block all adb shell commands regardless of execution mode. |
ADB_PATHOptional | Path to the ADB binary. Use a full path if adb is not on your system PATH. |
ADB_EXTRA_TOOL_PACKSOptional | Comma-separated list of extra tool packs to load. Set to 'app_manager' to enable 9 additional app management tools. |
ADB_DENIED_TOOLSOptional | Comma-separated list of tool names to hide from the agent at startup. |
ADB_SHELL_ALLOWLISTOptional | Comma-separated list of shell commands permitted in restricted mode. Empty blocks all shell commands. |
ADB_SHELL_DENYLISTOptional | Comma-separated list of shell commands blocked in unrestricted mode. |
MCP_LOG_ENABLEDOptional | Set to 'true' to enable session logging. Requires MCP_LOG_DIR. |
MCP_LOG_DIROptional | Absolute path to the directory where session logs are written. Required when MCP_LOG_ENABLED is true. |
ADB_LOG_LEVELOptional | Server process log level. |
ADB_COMMAND_TIMEOUTOptional | Maximum seconds to wait for any ADB command. |
ADB_SCREENSHOT_TIMEOUTOptional | Maximum seconds to wait for a screenshot capture. |
ADB_UI_CHANGE_TIMEOUTOptional | Default timeout in seconds for detect_ui_change. |
ADB_UI_CHANGE_POLL_INTERVALOptional | How often in seconds detect_ui_change polls the UI hierarchy. |
ADB_AAPT_TIMEOUTOptional | Maximum seconds to wait for aapt dump badging, used by the app_manager pack. |
ADB_CONFIG_SOURCEOptional | Set to 'yaml' to load configuration from adb_config.yaml instead of environment variables. |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 15 Apr 2026 |
| Last updated | 15 Apr 2026 |
| Registry name | io.github.Neverlow512/agent-droid-bridge |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
