安卓设备控制服务器

通过ADB为AI代理提供安卓设备控制功能的MCP服务器,支持屏幕捕捉、UI自动化、应用启动、文件传输和受限制的Shell命令执行。

  • by Bzcasper
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Bzcasper/android-adb-mcp

使用说明

安卓adb mcp

MCP服务器,通过ADB为AI代理(Claude Code、Goose)提供对Android设备的控制——屏幕捕获、UI自动化、应用程序启动、文件传输和分配的shell执行。


演示

$ claude
> Take a screenshot of my phone and tell me what app is open

● adb_screenshot()
  Screenshot captured.
  [image: 1080×2400 PNG]

Your phone is showing the eBay app on the listing creation screen.
The title field is empty. Would you like me to fill it in?

> Yes, type "14K Gold Vintage Ring — Size 7"

● adb_tap(x=540, y=620)
● adb_type(text="14K Gold Vintage Ring — Size 7")
● adb_screenshot()

Done — title entered and verified. Moving to the description field.

👆 用真实设备记录并放入GIF assets/demo.gif. 一个30秒 腹水瘤 或 vhs 录音转换的用户超过1000个单词。


这有什么作用

Claude Code可以编写、测试和部署代码。随着 android-adb-mcp 它还可以:

  • 📸 拍摄一个真实的Android设备的屏幕截图,并分析它所看到的内容
  • 👆 点击、滑动并在屏幕上键入
  • 🚀 按软件包名称启动应用程序
  • 📁 在主机和设备之间拉/推文件
  • 🔒 安全运行分配的shell命令

这关闭了整个移动开发循环,并实现了远远超出终端的现实世界自动化工作流程。


快速开始

npm install -g android-adb-mcp

要求:

  • Node.js 18+
  • adb 在PATH中(brew install android-platform-tools / apt install adb)
  • 启用USB调试的Android设备(或TCP上的ADB)

验证它是否有效:

adb devices                # should show your device
android-adb-mcp &          # starts the MCP server on stdio

设置

克劳德代码

添加 ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "android": {
      "command": "android-adb-mcp",
      "env": {
        "ANDROID_ADB_HOST": "localhost",
        "ANDROID_ADB_PORT": "5037"
      }
    }
  }
}

鹅

添加 ~/.config/goose/config.yaml:

extensions:
  - type: stdio
    name: android-adb-mcp
    cmd: android-adb-mcp
    description: Android device control via ADB

安培

添加 ~/.amp/settings.json:

{
  "mcpServers": {
    "android": {
      "command": "android-adb-mcp"
    }
  }
}

可用工具

工具 说明
adb_devices 列出已连接的设备
adb_screenshot 捕获屏幕→ 返回base64 PNG
adb_tap 点击屏幕坐标
adb_swipe 滑动手势
adb_type 在焦点输入中键入文本
adb_key 发送关键事件(返回、主页等)
adb_launch_app 按程序包名称启动应用程序
adb_shell 运行分配的shell命令
adb_pull 将文件从设备拉到主机
adb_push 将文件从主机推送到设备
adb_list_packages 列出已安装的软件包

参考实现

规范用例是 珠宝首饰生产转售自动化系统 由Claude Code提供支持,其中:

┌──────────────┐    ADB/TCP     ┌──────────────┐    MCP/stdio    ┌──────────────┐
│  Android     │◄──────────────►│  Ubuntu      │◄───────────────►│  Claude Code │
│  Phone       │                │  Laptop      │                 │  Agent       │
│              │                │              │                 │              │
│  · eBay app  │                │  · adb       │                 │  · Analyze   │
│  · Poshmark  │                │  · MCP       │                 │  · Generate  │
│  · Mercari   │                │    server    │                 │  · Automate  │
└──────────────┘                └──────────────┘                 └──────────────┘
  1. 运行Termux/proot的Android手机充当网关设备
  2. ADB被端口转发到Ubuntu笔记本电脑
  3. Claude Code协调视觉分析(通过Modal的Qwen3-VL-32B)
  4. 代理同时为8个平台生成列表
  5. 手机直接通过此MCP服务器与转售应用程序交互

一个人。一个电话。一台笔记本电脑。完全自动化。

→ 查看完整示例


安全模型

Shell执行使用 明确的对抗主义者 --只能运行预先批准的命令。这可以防止快速注入攻击在设备上导致任意代码执行。

允许的默认值: ls, cat, echo, pwd, pm, am, dumpsys, getprop, input, screencap, screenrecord, logcat, ps, top, find

要扩展:

ANDROID_ADB_ALLOWED_COMMANDS="ls,cat,echo,curl,wget" android-adb-mcp

TCP上的ADB(无线)

# On the Android device (via Termux)
adb tcpip 5555

# On the host
adb connect 192.168.1.x:5555

# Or port-forward from laptop to phone
adb -H localhost -P 5037 devices

集 ANDROID_ADB_HOST 和 ANDROID_ADB_PORT env变量以匹配您的设置。


贡献

欢迎问题、PR和用例文档。 看 贡献.md 作为指导方针。


许可证

Apache 2.0——请参阅 许可证

由...建造 鲍比·卡斯珀 · AIToolPool