ADB设备管理服务器

一个用于管理Android Debug Bridge (ADB)连接并与Android设备交互的Model Context Protocol (MCP)服务器,提供设备管理、截图捕获、UI元素检查和ADB命令执行功能。

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

使用说明

ADB MCP服务器

用于管理Android调试桥(ADB)连接和与Android设备交互的模型上下文协议(MCP)服务器。

特性

  • 设备管理:列出所有已连接的Android设备
  • 电脑屏幕截图工具:从连接的设备中截取屏幕截图
  • UI元素检查:从设备屏幕中提取UI层次结构
  • ADB命令执行:在连接的设备上运行任意ADB命令

先决条件

  • Android调试桥(ADB)必须安装在您的系统上并添加到PATH中
  • Node.js(v14或更高版本)
  • TypeScript

安装

  1. 克隆存储库:

    git clone https://github.com/yourusername/adb-mcp-server.git
    cd adb-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    npm run build
    

用法

启动服务器

ADB MCP服务器在stdio上作为模型上下文协议服务器运行:

npm start

对于在文件更改时自动重启的开发:

npm run dev

可用工具

服务器公开了以下MCP工具:

1.列出连接的设备

get_devices

返回所有已连接的Android设备及其ID和连接状态的列表。

2.截图

capture_screenshot

参数:

  • deviceId:要从中捕获的设备的ID
  • path:保存屏幕截图的路径

屏幕截图将按照以下格式命名:YYYYMMDD_HH_MM_SS.png

3.获取UI元素

get_ui_elements

参数:

  • deviceId:从中提取UI层次结构的设备的ID

以XML格式返回完整的UI层次结构,这对于UI自动化和测试非常有用。

4.执行ADB命令

execute_adb_command

参数:

  • deviceId:运行命令的设备的ID
  • command:要执行的ADB命令

允许在指定设备上执行任意ADB命令。

项目结构

adb-mcp-server
├── src
│   ├── index.ts               # Main MCP server entry point
│   ├── handlers/              # Request handlers for each feature
│   │   ├── deviceList.ts      # Device listing functionality
│   │   ├── screenshot.ts      # Screenshot capture functionality
│   │   └── uiElements.ts      # UI hierarchy extraction
│   ├── utils/                 # Utility functions
│   │   ├── adb.ts             # ADB command execution utilities
│   │   └── screenshot.ts      # Screenshot handling utilities
│   └── types/                 # TypeScript type definitions
├── package.json               # Project dependencies and scripts
└── tsconfig.json              # TypeScript configuration

贡献

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

许可证

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