mcpField
M
MCP-ADB

MCP-ADB

本地服务
github.com/isseikz开发工具281 周前更新

关于 MCP-ADB

MCP-ADB 是连接 Android Debug Bridge(ADB)的 MCP 服务,供 AI 助手与 Android 设备交互。它支持设备截图、按键控制,并可在多台已连接设备中指定目标。

主要功能

  1. 01截取并缩放设备画面
  2. 02以 Base64 返回截图
  3. 03发送 Android 按键事件
  4. 04指定目标设备
  5. 05列出已连接设备

适用场景

  1. 01查看 Android 设备当前画面
  2. 02向设备发送导航或返回按键
  3. 03在多台连接设备间选择目标

MCP 相关

该 MCP 服务通过工具提供截图和按键控制,并通过资源 URI 暴露已连接设备列表、截图及设备信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

日本語

MCP-ADB

一个模型上下文协议(MCP)服务,可集成 Android Debug Bridge(ADB),让 AI 助手与 Android 设备交互。

功能

  • 截图:截取已连接 Android 设备的屏幕,并自动调整大小
  • Base64 图像数据:直接以 Base64 编码字符串的形式接收截图数据
  • 按键事件控制:向 Android 设备发送按键事件(导航、返回、主页)
  • 多设备支持:连接多个设备时,可指定目标设备
  • 设备列表:将所有已连接的 Android 设备列为资源
  • 资源访问:通过资源 URI 访问截图和设备信息

前置条件

  • Node.js(建议使用 v16 或更高版本)
  • 已安装 Android Debug Bridge(ADB),并将其加入 PATH,或通过 ADB_PATH 环境变量进行配置
  • 已连接并启用 USB 调试的 Android 设备

安装

# Clone the repository
git clone https://github.com/isseikz/mcp-adb.git
cd mcp-adb

# Install dependencies
npm install

# Build the project
npm run build

用法

在 Claude Desktop 中使用

若要在 Claude Desktop 中使用此 MCP 服务,请将 mcp-adb 添加到 claude_desktop_config.json。该文件位于 Claude Desktop 安装目录中,也可以通过 Claude - Settings - Developer - Edit Config 找到。

以下是 claude_desktop_config.json 文件的配置示例:

{
  "mcpServers": {
    "mcp-adb": {
      "command": "node",
      "args": ["/path/to/mcp-adb/build/index.js"],
      "env": {
        "ADB_PATH": "/path/to/adb"
      }
    }
  }
}

```json
{
  "mcpServers": {
    "mcp-adb": {
      "command": "node",
      "args": ["/path/to/mcp-adb/build/index.js"],
      "env": {
        "ADB_PATH": "/path/to/adb"
      }
    }
  }
}
可用工具
截图工具

截取已连接 Android 设备的屏幕,并自动将宽度调整为 640px。

参数:

  • deviceId(可选):连接多个设备时,指定目标设备

响应:

  • 响应中直接包含 Base64 编码的图像数据(PNG 格式)

示例:

{
  "name": "screenshot",
  "arguments": {
    "deviceId": "emulator-5554"
  }
}
按键工具

向已连接的 Android 设备发送按键事件。

参数:

  • keycode:要发送的 Android 按键代码(见下方列表)
  • deviceId(可选):连接多个设备时,指定目标设备

可用按键代码:

  • KEYCODE_DPAD_CENTER - 中心/确认按钮
  • KEYCODE_DPAD_DOWN - 向下导航
  • KEYCODE_DPAD_UP - 向上导航
  • KEYCODE_DPAD_LEFT - 向左导航
  • KEYCODE_DPAD_RIGHT - 向右导航
  • KEYCODE_DPAD_UP_LEFT - 左上斜向导航
  • KEYCODE_DPAD_UP_RIGHT - 右上斜向导航
  • KEYCODE_DPAD_DOWN_LEFT - 左下斜向导航
  • KEYCODE_DPAD_DOWN_RIGHT - 右下斜向导航
  • KEYCODE_BACK - 返回按钮
  • KEYCODE_HOME - 主页按钮

示例:

{
  "name": "pressKey",
  "arguments": {
    "keycode": "KEYCODE_DPAD_DOWN",
    "deviceId": "emulator-5554"
  }
}
资源
已连接设备

列出所有已连接的 Android 设备:

adb://devices

响应:

  • 已连接设备 ID 列表
截图

通过文件名访问特定截图:

adb://screenshots/{filename}

例如:

adb://screenshots/screenshot-2025-04-10T16-30-48-931Z.png

开发

项目结构
mcp-adb/
├── src/
│   └── index.ts    # Main server implementation
├── build/          # Compiled JavaScript files
├── temp/           # Temporary directory for screenshots
├── package.json    # Project dependencies and scripts
└── tsconfig.json   # TypeScript configuration
构建
npm run build

这会将 TypeScript 代码编译为 JavaScript,并输出到 build 目录。

依赖要求

本项目使用以下依赖项:

  • @modelcontextprotocol/sdk:MCP 服务实现
  • fs-extra:增强型文件系统方法
  • sips:用于调整图像大小(macOS 内置),以减少上下文消耗

许可证

MIT

贡献

欢迎贡献!请随时提交 Pull Request。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。