安卓设备交互服务

adb-mcp是一个允许Claude与安卓设备交互的服务,支持截图、点击按钮、读取UI元素、输入文本等功能。

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

使用说明

adb mcp

MCP服务器,允许Claude与Android设备交互——截图、点击按钮、阅读UI元素、键入文本等。

运作原理

Claude Code  <-->  MCP Server (Python, on host)
                       |
                       v  (adb over WiFi / TCP)
               Android Device

MCP服务器在您的机器上运行,并直接调用adb。Claude可以看到手机的屏幕,阅读UI层次结构以查找元素,并通过点击、滑动和键入与它们进行交互。通过mDNS在网络上自动发现设备。

先决条件

  • 安卓调试桥 — brew install android-platform-tools (macOS)或 apt install adb (Linux)
  • 紫外线 (Python包管理器)
  • 安卓设备 启用无线调试(Android 11+)

设置

1.在您的Android设备上启用无线调试

  1. 首选 设置>开发人员选项 (如果需要,请先启用开发人员选项,方法是在中点击内部版本号7次 设置>关于手机)
  2. 启用 无线调试
  3. 保持此屏幕打开——您需要它进行配对

2.将MCP服务器添加到Claude Code

添加到您的克劳德代码设置(~/.claude/settings.json 在...之下 mcpServers),或使用 /mcp 对话框:

{
  "adb-mcp": {
    "command": "uv",
    "args": ["run", "--directory", "/path/to/adb-mcp", "adb-mcp"],
    "type": "stdio"
  }
}

3.配对并连接您的设备

在macOS上,设备通过mDNS自动发现,无需键入IP地址或端口:

  1. 在手机上,点击 将设备与配对代码配对 在无线调试屏幕中
  2. 告诉克劳德6位数的代码: “配对我的手机,代码123456”
  3. 然后: “连接到我的手机”

在Linux上,提供无线调试屏幕上显示的IP和端口:

  1. 将我的手机配对到192.168.1.100端口37123,代码123456
  2. “通过192.168.1.100端口40845连接到我的手机”

工具

工具 说明
device_pair 与设备配对进行无线调试(一次性)
device_connect 通过WiFi连接到设备
list_devices 列出所有连接的串行设备
set_active_device 当多个设备连接时,切换目标设备
device_status 列出已连接的设备
screenshot 捕获屏幕(以图像形式返回,自动缩放)
ui_tree 将UI层次结构转储为结构化JSON
tap 点击屏幕坐标
swipe 在两点之间滑动
input_text 在焦点字段中键入文本
press_key 按一个键(返回、主页、回车等)
launch_app 按程序包名称启动应用程序
install_app 将主机上的APK安装到设备上(支持 reinstall 标记以保存数据)
read_logs 使用可选过滤读取logcat输出
shell 运行任意adb shell命令

使用示例

连接后,您可以问Claude以下问题:

  • “截取我手机的屏幕截图”
  • “当前打开的应用程序是什么?”
  • “打开设置应用程序”
  • “点击Wi-Fi选项”
  • “在此屏幕上向下滚动”
  • “在搜索字段中键入‘hello world’”
  • “返回主屏幕”
  • “显示我的app com.example.myapp的最新日志”

克劳德将使用 screenshot 和 ui_tree 要查看屏幕,请识别元素及其坐标,然后使用 tap/swipe/input_text 互动。

发展

git clone https://github.com/janjetze/adb-mcp.git
cd adb-mcp

# Run the server
uv run adb-mcp

# Or install in a venv for development
uv venv
uv pip install -e .

许可证

麻省理工学院