Android设备自动化控制工具

通过ADB实现Android设备的屏幕控制、电话功能、应用管理和设备操作的全自动化控制工具。

  • by wilsonbeam
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 wilsonbeam/openclaw-adb-mcp

使用说明

@wilsonbeam/openclaw adb-mcp

让AI代理完全控制真正的Android手机。

MCP 服务器 + 开放式法律技能 通过ADB实现Android设备自动化。

它能做什么?

  • 📱 屏幕控制 --点击、滑动、键入文本、截图
  • 📞 电话功能 --拨打电话、发送短信、查看通话状态
  • 📦 应用程序管理 --安装、卸载、列出软件包
  • 🔧 设备控制 --shell命令、推/拉文件、唤醒屏幕

快速开始

1.安装ADB

# macOS
brew install android-platform-tools

# Linux  
sudo apt install adb

# Windows
# Download from developer.android.com/tools/releases/platform-tools

2.连接您的Android设备

  1. 启用 开发者选项 在你的手机上
  2. 启用 USB调试
  3. 通过USB电缆连接
  4. 接受手机上的授权提示

验证:

adb devices
# Should show: XXXXX device

3.添加到OpenClaw

添加到您的 ~/.openclaw/config.yaml:

mcp:
  servers:
    adb:
      command: npx
      args: ["@wilsonbeam/openclaw-adb-mcp"]

或者先全局安装:

npm install -g @wilsonbeam/openclaw-adb-mcp

然后:

mcp:
  servers:
    adb:
      command: openclaw-adb-mcp

4.安装技能(可选但推荐)

该技能教你的AI代理如何有效地使用ADB工具。

# From clawhub.com (coming soon)
openclaw skill install adb

# Or manually copy the skill folder
cp -r skill/ ~/.openclaw/skills/adb/

可用工具(共26个)

亚行核心

工具 说明
adb_list_devices 列出已连接的Android设备
adb_shell 执行shell命令
adb_device_info 获取型号、品牌、安卓版本
adb_install_app 安装APK文件
adb_uninstall_app 卸载应用程序
adb_list_packages 列出已安装的软件包
adb_push_file 将文件推送到设备
adb_pull_file 从设备中提取文件
adb_start_activity 开始活动/意图
adb_force_stop 强制停止应用程序
adb_clear_data 清除应用程序数据

屏幕控制

工具 说明
adb_tap 点击坐标
adb_swipe 滑动手势
adb_long_press 长按
adb_type_text 键入重点字段
adb_press_key 按Android键码
adb_screenshot 捕获屏幕(返回base64 PNG)
adb_screen_size 获取屏幕尺寸
adb_wake 唤醒设备屏幕
adb_press_home 按下主页按钮
adb_press_back 按下后退按钮

电话功能

工具 说明
adb_make_call 拨打电话(立即拨打)
adb_dial_number 打开带有号码的拨号器
adb_end_call 结束当前通话
adb_send_sms 打开短信编辑器
adb_call_state 获取通话状态(空闲/振铃/摘机)
adb_answer_call 接听来电

解锁

工具 说明
adb_unlock 使用密码、PIN、图案或滑动解锁
adb_is_locked 检查设备是否锁定
adb_lock 锁定设备屏幕

自动解锁

这 adb_unlock 该工具支持多种锁类型:

// Password
adb_unlock({ type: "password", credential: "mypassword" })

// PIN
adb_unlock({ type: "pin", credential: "1234" })

// Pattern (3x3 grid, digits 0-8)
// Grid layout:
//   0 1 2
//   3 4 5
//   6 7 8
adb_unlock({ type: "pattern", credential: "0123" })  // Top row
adb_unlock({ type: "pattern", credential: "0147" })  // L-shape
adb_unlock({ type: "pattern", credential: "02468" }) // X pattern

// Swipe only (no security)
adb_unlock({ type: "none" })

对话示例

“截取我手机的屏幕截图” → 代理使用 adb_screenshot,返回图像

“打电话给妈妈+1-555-123-4567” → 代理使用 adb_make_call

“打开Chrome浏览器搜索天气” → 代理使用 adb_start_activity 要启动Chrome, adb_tap 在搜索栏上, adb_type_text 输入查询

“安装我刚刚下载的APK” → 代理使用 adb_install_app 使用APK路径

项目结构

openclaw-adb-mcp/
├── src/
│   ├── index.ts          # MCP server entry point
│   └── adb/
│       ├── executor.ts   # Low-level ADB execution
│       ├── core.ts       # Device, app, file operations
│       ├── screen.ts     # Tap, swipe, screenshot
│       └── phone.ts      # Call, SMS functions
├── skill/
│   ├── SKILL.md          # OpenClaw skill definition
│   └── scripts/
│       └── check-setup.sh
├── package.json
└── tsconfig.json

多个设备

所有工具均接受可选 deviceId。如果在连接多个设备时省略,则ADB错误。使用 adb_list_devices 以获取设备ID。

发展

git clone https://github.com/wilsonbeam/openclaw-adb-mcp
cd openclaw-adb-mcp
npm install
npm run build
npm run dev  # Build and run

故障排除

未找到设备

  • 检查USB电缆和连接
  • 在设备上启用USB调试
  • 跑 adb kill-server && adb start-server

设备未经授权

  • 接受手机屏幕上的RSA密钥提示

截图失败

  • 先唤醒屏幕 adb_wake
  • 某些设备需要解锁屏幕

许可证

麻省理工学院

作者

Wilson Beam/OpenClaw