Droid Bridge探员
Agent Droid Bridge是一个MCP服务器,通过ADB将AI代理连接到Android设备和模拟器。它是为移动自动化、应用程序测试、动态分析和逆向工程而构建的:将ADB的整个表面暴露为任何兼容MCP的AI客户端都可以直接调用的结构化工具。如果亚行能做到,代理人也能做到。
______________________________________________________________________
专门构建的工具返回结构化的、最小的响应。没有原始XML转储,没有浪费的上下文——代理在长会话中保持快速。

演示

上面的演示通过一些简单的任务来展示连接的代理可以做什么,这只是触及了表面:
- 安装Paint应用程序,打开它,并通过计算墙壁和屋顶的像素坐标来绘制房屋
- 打开设备浏览器,搜索“MCP维基百科”,导航到结果页面,并截图
- 打开计算器,计算1337×42,并将结果提取到主机
- 打开联系人,创建一个包含姓名和电话号码的新条目,并确认已保存
- 打开日历并为特定日期安排约会
- 打开设置并切换黑暗模式
- 将计算器APK从设备提取到主机
- 安装记事本,为完成的每项任务写一句话摘要,并拍摄最终截图
它的作用
工具
- 14个内置工具,用于屏幕截图、UI检查、文本读取、元素提取、触摸和滑动输入、文本输入、按键代码事件、应用程序启动、ADB命令和设备检查
app_managerpack增加了9个工具,用于包管理、应用生命周期、APK提取、权限和意图注入。加载它ADB_EXTRA_TOOL_PACKS=app_manager- 工具可用性反映在服务器的启动说明中。代理在连接时收到准确的目录
设备处理
- 自动检测单个连接的设备;存在多个设备时的选择提示
- 运行在stdio上,与任何支持MCP的AI客户端兼容
- 结构化响应而不是原始XML转储,在长时间的自动化运行中保持代理上下文的精简
安全
- 两种执行模式:
unrestricted(完全访问ADB,可选denylist)和restricted(仅限allowlist,阻止所有未明确允许的内容) - 集
ADB_ALLOW_SHELL=false禁用所有shell命令,无论模式如何 - 使用以下命令向代理隐藏特定工具
ADB_DENIED_TOOLS - 通过解析所有命令
shlex无法进行外壳注射
可观测性
- 可选的会话记录器将每个工具调用、ADB命令和安全事件记录到结构化JSONL文件中。启用
MCP_LOG_ENABLED=true和MCP_LOG_DIR
用例
移动QA和测试自动化 自动化跨真实设备和模拟器的UI流,而无需修改应用程序或编写测试代码。点击、滑动、键入、阅读屏幕内容、截图——所有这些都来自自然语言提示。
应用安全研究 提取APK,检查声明的权限,触发任意意图,并观察屏幕上的运行时行为。无需仪器,无需越狱。
动态分析 在受控状态下启动应用程序,驱动UI交互,在每一步捕获屏幕状态,并提取工件——所有这些都可以通过AI代理编写脚本。
开发与调试 安装构建、验证UI状态、检查应用程序信息,并在不离开编码环境的情况下运行ADB命令。
安装
uvx agent-droid-bridge无需克隆或虚拟环境。需要在主机上安装Python 3.11+和ADB。
uvx 由提供 紫外线。如果您没有: curl -LsSf https://astral.sh/uv/install.sh | sh
要改为从源代码安装,请参阅 docs/setup.md--选项B.
要验证安装,请执行以下操作: uvx agent-droid-bridge --help
快速开始
- 安装ADB——请参阅 docs/setup.md 针对特定平台的说明
- 连接Android设备或启动模拟器
- 将服务器添加到MCP客户端配置中:
{
"mcpServers": {
"agent-droid-bridge": {
"command": "uvx",
"args": ["agent-droid-bridge"],
"env": {
"ADB_EXECUTION_MODE": "unrestricted",
"ADB_ALLOW_SHELL": "true",
"ADB_PATH": "adb",
"ADB_EXTRA_TOOL_PACKS": "",
"MCP_LOG_ENABLED": "false",
"MCP_LOG_DIR": "~/logs/agent-droid-bridge"
}
}
}
}要启用会话日志记录,请设置 MCP_LOG_ENABLED 到 "true" 并更新 MCP_LOG_DIR 到计算机上的可写路径。
| 变量 | 默认值 | 描述 |
|---|---|---|
ADB_EXECUTION_MODE | unrestricted | 安全模式。 unrestricted 允许所有shell命令(可选denylist); restricted 只允许中的命令 ADB_SHELL_ALLOWLIST. |
ADB_ALLOW_SHELL | true | 设置为 false 阻止所有 adb shell 命令,而不管执行模式如何。 |
ADB_PATH | adb | ADB二进制文件的路径。如果出现以下情况,请替换为完整路径 adb 不在您的系统PATH中(例如。 C:\platform-tools\adb.exe 在Windows上)。 |
ADB_EXTRA_TOOL_PACKS | *(空)* | 以逗号分隔的要加载的额外工具包列表。吃起来 app_manager 启用9个额外的应用程序管理工具。 |
MCP_LOG_ENABLED | false | 设置为 true 以启用会话日志记录。需要 MCP_LOG_DIR. |
MCP_LOG_DIR | *(无)* | 写入会话日志的目录。需要时 MCP_LOG_ENABLED 是 true. |
- 提示您的代理人使用
agent-droid-bridgeMCP工具
完整的设置指南和环境变量参考: docs/setup.md
工具
| 工具 | 它做什么 |
|---|---|
get_ui_hierarchy | 以XML UI层次结构返回当前屏幕 |
take_screenshot | 以base64编码的PNG格式捕获屏幕 |
tap_screen | 在像素坐标处发送轻击手势 |
swipe_screen | 在给定的持续时间内在两点之间发送滑动手势 |
type_text | 在重点输入字段中键入文本 |
press_key | 发送Android按键代码事件(返回、主页、输入等) |
launch_app | 按以下方式启动应用程序 package/activity 组件名称 |
execute_adb_command | 运行任意ADB或ADB shell命令 |
list_devices | 列出ADB当前可见的所有Android设备及其序列号、状态和型号 |
snapshot_ui | 获取轻量级UI快照并返回一个令牌以供使用 detect_ui_change |
detect_ui_change | 操作后UI更改的民意调查;接受快照令牌作为基线;仅在请求时返回层次结构 |
get_screen_elements | 解析UI层次结构,并返回具有坐标和交互属性的结构化元素;支持 tappable, interactive, input,以及 all 模式 |
get_screen_text | 返回屏幕上所有从上到下排序的可见文本,作为纯文本 |
check_device_capabilities | 在一次调用中返回结构化设备信息——身份、安全态势和硬件规格;支持 identity, security, hardware,以及 all 模式 |
额外工具包
可选包扩展了核心工具集。通过设置启用它们 ADB_EXTRA_TOOL_PACKS 在您的MCP客户端配置中。看 docs/extra-tool-packs.md.
应用程序管理员
包管理、应用生命周期控制、APK提取、权限管理和意图注入。
| 工具 | 它做什么 |
|---|---|
list_packages | 列出已安装的软件包,包括可选的过滤、搜索和详细信息级别 |
get_app_info | 返回单个已安装应用程序的完整静态元数据 |
install_app | 将APK从主机路径安装到设备上 |
uninstall_app | 按软件包名称删除已安装的应用程序 |
pull_apk | 将已安装的APK从设备提取到主机 |
manage_permission | 授予、撤销、检查或列出应用程序的运行时权限 |
launch_app_extra | 按包名启动应用程序,自动解析启动器活动 |
manage_app | 控制应用程序运行时状态——停止、清除数据、清除缓存、启用、禁用 |
inject_intent | 通过以下方式向组件发射意图 am start, am broadcast,或 am startservice |
完整参数参考: docs/tools.md
配置
完全从MCP客户端配置服务器 env 块。没有要编辑的文件。上面快速入门中的env块涵盖了最常见的设置。有关包括安全筛选、工具可见性和超时在内的完整参考,请参阅 docs/configuration.md.
要改用YAML配置文件,请设置 ADB_CONFIG_SOURCE=yaml。参见 docs/configuration.md 了解详情。
会话录制是单独的。启用它 MCP_LOG_ENABLED=true 和 MCP_LOG_DIR.完整参考: docs/logging.md.
文档
| 文件 | 描述 |
|---|---|
| docs/setup.md | 先决条件、安装和MCP客户端配置 |
| docs/tools.md | 所有工具的完整参数参考 |
| docs/configuration.md | 环境变量和 adb_config.yaml |
| docs/logging.md | 会话记录器--日志文件、级别、保留和激活 |
| docs/extra-tool-packs.md | 额外的工具包——启用包、包合同和编写自己的 |
| docs/故障排除.md | 常见的设置问题和ADB问题 |
| docs/workflows.md | 常见的多工具工作流程及其示例 |
| 更改日志.md | 发布历史和版本更改 |
贡献
欢迎捐款。看 贡献.md 有关设置、代码标准和提交pull请求的指南。
要报告安全漏洞,请按照中的流程进行操作 安全.md --不要公开问题。
