@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-tools2.连接您的Android设备
- 启用 开发者选项 在你的手机上
- 启用 USB调试
- 通过USB电缆连接
- 接受手机上的授权提示
验证:
adb devices
# Should show: XXXXX device3.添加到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-mcp4.安装技能(可选但推荐)
该技能教你的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
