关于 MCP-ADB
MCP-ADB 是连接 Android Debug Bridge(ADB)的 MCP 服务,供 AI 助手与 Android 设备交互。它支持设备截图、按键控制,并可在多台已连接设备中指定目标。
主要功能
- 01截取并缩放设备画面
- 02以 Base64 返回截图
- 03发送 Android 按键事件
- 04指定目标设备
- 05列出已连接设备
适用场景
- 01查看 Android 设备当前画面
- 02向设备发送导航或返回按键
- 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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。