Android设备ADB管理服务

一个通过Android Debug Bridge (ADB) 实现AI助手与Android设备交互的服务器,支持自动化开发测试操作。

  • by landicefu
  • TypeScript
  • 本地部署
  • 38 星标
  • 更新于
在 GitHub 查看 landicefu/android-adb-mcp-server

使用说明

安卓ADB MCP服务器

一种模型上下文协议(MCP)服务器,使AI助手能够通过Android调试桥(ADB)与Android设备进行交互。该服务器弥合了人工智能功能和Android设备管理之间的差距,实现了Android开发和测试操作的无缝自动化。

⚙️ 快速设置

将服务器添加到MCP配置文件中:

{
  "mcpServers": {
    "android-adb": {
      "command": "npx",
      "args": ["-y", "@landicefu/android-adb-mcp-server"],
      "env": {},
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

配置位置

  • 克劳德桌面: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
  • Cline/Roo代码: ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json (macOS)
  • 对于Windows/Linux,请检查等效的应用程序支持目录

配置后,重新启动AI助手以加载新的服务器配置。

📋 先决条件

  • ADB(安卓调试桥) 必须在系统PATH中安装并可用
  • 对于剪贴板功能:
    • macOS: osascript (内置)
    • 视窗:PowerShell(内置)
    • Linux: xclip (通过安装 apt-get install xclip 或同等)
  • Node.js 16.x或更高版本

🚀 特性

  • 连接并管理多个Android设备
  • 在Android设备上执行shell命令
  • 安装和卸载应用程序
  • 在本地系统和Android设备之间推送和拉取文件
  • 在Android设备上启动应用程序
  • 截取屏幕截图并将其保存在本地或复制到剪贴板
  • 连接多个设备时的智能设备选择

🛠️ 可用工具

工具 说明 必需参数 可选参数
adb_devices 列出已连接的设备 无 无
adb_shell 执行shell命令 command device_id
adb_install 安装APK文件 path device_id
adb_uninstall 卸载应用程序 package_name device_id
adb_list_packages 列出已安装的软件包 无 device_id, filter
adb_pull 从设备中提取文件 remote_path, local_path device_id
adb_push 将文件推送到设备 local_path, remote_path device_id
launch_app 启动应用程序 package_name device_id
take_screenshot_and_save 截取并保存屏幕截图 output_path device_id, format
take_screenshot_and_copy_to_clipboard 将屏幕截图复制到剪贴板 无 device_id, format

设备管理

服务器智能地处理设备选择:

  • 如果只连接了一个设备,它将自动使用
  • 如果连接了多个设备,则必须指定 device_id 参数
  • 如果没有连接设备,将返回错误

屏幕截图路径分辨率

指定时 output_path 为了保存屏幕截图,路径解析如下:

  • 绝对路径按原样使用
  • 以开头的路径 ~ 扩展到用户的主目录
  • 相对路径是相对于用户的主目录解析的

这可确保屏幕截图保存到MCP服务器具有写入权限的位置。

🔍 故障排除

常见问题

  1. “ADB不可用”错误

    • 确保ADB已安装并位于系统PATH中
    • 通过运行验证 adb version 在您的终端
  2. “未连接Android设备”错误

    • 检查您的设备是否已正确连接 adb devices
    • 确保您的设备上启用了USB调试
    • 尝试使用以下命令重新启动ADB adb kill-server 随后 adb start-server
  3. “多个设备已连接”错误

    • 指定 device_id 工具调用中的参数
    • 使用获取可用设备列表 adb_devices 工具
  4. 剪贴板截图不起作用

    • 确保安装了所需的平台专用工具

🔧 替代安装方法

选项1:从npm安装

# Install globally
npm install -g @landicefu/android-adb-mcp-server

# Or install locally in your project
npm install @landicefu/android-adb-mcp-server

选项2:从源手动安装

  1. 克隆存储库:

    git clone https://github.com/landicefu/android-adb-mcp-server.git
    cd android-adb-mcp-server
    
  2. 安装依赖项并构建:

    npm install
    npm run build
    
  3. 配置直接路径:

    {
      "mcpServers": {
        "android-adb": {
          "command": "node",
          "args": ["/path/to/android-adb-mcp-server/build/index.js"],
          "env": {},
          "disabled": false,
          "alwaysAllow": []
        }
      }
    }
    

📄 许可证

此项目根据ISC许可证获得许可-有关详细信息,请参阅许可证文件。

🤝 贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求