README
🚀 MCP-ADB
MCP-ADB是一个模型上下文协议(MCP)服务器,它与Android调试桥接(ADB)集成,让AI助手能够与Android设备进行交互。
🚀 快速开始
MCP-ADB可使AI助手与Android设备交互。使用前,你需要完成环境准备和项目安装。
✨ 主要特性
- 截图捕获:获取连接的Android设备屏幕截图,并自动调整大小。
- Base64图像数据:直接接收屏幕截图数据作为Base64编码字符串。
- 按键事件控制:向Android设备发送键事件(导航、返回、主页)。
- 多设备支持:在多个设备连接时指定目标设备。
- 设备列表:列出所有连接的Android设备作为资源。
- 资源访问:通过资源URI访问屏幕截图和设备信息。
📦 安装指南
先决条件
- Node.js(推荐v16或更高版本)
- Android调试桥接(ADB)已安装并添加到PATH环境变量,或通过ADB_PATH环境变量配置。
- 已连接的Android设备,且USB调试功能已启用。
安装步骤
# 克隆仓库
git clone https://github.com/isseikz/mcp-adb.git
cd mcp-adb
# 安装依赖项
npm install
# 构建项目
npm run build
💻 使用示例
与Claude Desktop一起使用
要将此MCP服务器与Claude Desktop一起使用,请在claude_desktop_config.json文件中添加mcp-adb配置,该文件位于Claude Desktop安装目录或通过Claude - 设置 - 开发人员 - 编辑配置找到。
以下是一个配置示例:
{
"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_HOME- 主页面键KEYCODE_BACK- 返回键
示例:
{
"name": "keyDown",
"arguments": {
"deviceId": "emulator-5554",
"keyCode": "KEYCODE_HOME"
}
}
📚 详细文档
资源URI访问
通过以下URI格式可以访问资源:
mctp://<host>:<port>/screenshot- 获取屏幕截图mctp://<host>:<port>/devices- 获取所有连接设备列表
项目结构
.
├── package.json # 项目依赖和脚本配置
├── src # 源代码目录
│ ├── index.js # 主程序入口文件
│ └── screenshot.js # 截图处理逻辑
└── README.md # 项目文档
📄 许可证
本项目采用MIT许可证。
贡献
欢迎贡献!请随时提交Pull Request。
Scan to join WeChat group