关于 android-puppeteer-mcp
android-puppeteer-mcp 是面向视觉交互的 MCP 服务,通过界面检测与操作自动化控制 Android 设备。它支持多台设备,并提供屏幕录制,用于测试和文档工作流。
主要功能
- 01检测并标注界面元素
- 02点击、滑动、滚动和输入文本
- 03指定多台设备或模拟器
- 04截图与视频录制
- 05解析实时界面层级
适用场景
- 01自动操作 Android 应用
- 02测试时检查界面元素
- 03录制设备操作以用于文档
MCP 相关
向 MCP 客户端和 AI Agent 提供 Android 设备发现、界面检查、交互、截图及录制工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-name: io.github.pedro-rivas/android-puppeteer-mcp
Android Puppeteer 是一个轻量、以视觉为先的 MCP(Model Context Protocol)服务,支持 AI Agent 通过智能 UI 元素检测和自动化交互来操控 Android 设备。它基于 uiautomator2 构建,提供全面的 Android 自动化功能,包括视觉元素检测、触控交互、文本输入和视频录制。
🎥 观看演示
功能特性
-
视觉元素检测 自动检测交互式 UI 元素,并为其添加带编号的覆盖标记,以便精准定位。
-
全面的触控交互 支持点击、长按、滑动、滚动和拖动手势,并可精准定位坐标。
-
多设备支持 可同时连接多个 Android 设备或模拟器,并针对特定设备进行操作。
-
视频录制集成 内置基于 scrcpy 的屏幕录制功能,适用于文档编写和测试工作流。
-
实时 UI 分析 实时解析 UI 层级并提取元素信息,以制定动态交互策略。
-
MCP 协议集成 可与 Claude Desktop 和其他兼容 MCP 的 AI 平台无缝集成。
支持的操作系统
- Android 10+
- Windows、macOS、Linux(主机系统)
安装
先决条件
- Python 3.10+
- uiautomator2
- Android 10+(模拟器或实体设备)
- ADB(Android Debug Bridge)
- scrcpy(用于视频录制功能)
开始使用
- 克隆代码库
git clone https://github.com/pedro-rivas/android-puppeteer-mcp.git
cd android-puppeteer
- 安装依赖项
uv python install 3.10
uv sync
- 设置 Android 设备
# Enable USB debugging on your Android device
# For emulator, ensure it's running
adb devices # Verify device connection
-
连接到 MCP 服务
-
找到 Claude Desktop 配置文件:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
将以下 JSON 添加到 Claude Desktop 配置中:
{ "mcpServers": { "android-puppeteer": { "command": "path/to/uv", "args": [ "--directory", "path/to/android-puppeteer", "run", "puppeteer.py" ] } } }替换:
- 将
path/to/uv替换为 uv 可执行文件的实际路径 - 将
path/to/android-puppeteer替换为克隆此代码库所在位置的绝对路径
- 将
-
重启 Claude Desktop
重启 Claude Desktop。你应能看到 "android-puppeteer" 已列为可用集成。
可用工具
Android Puppeteer 提供以下工具,可全面操控 Android 设备:
设备管理
list_emulators:列出所有可用的 Android 模拟器和设备,以及其状态和尺寸get_device_dimensions:获取特定 Android 设备的屏幕尺寸get_ui_elements_info:获取屏幕上所有交互式 UI 元素的详细信息
视觉交互
take_screenshot:截取带编号 UI 元素覆盖标记的截图press:点击指定坐标,可选择设置长按时长long_press:在指定坐标执行长按手势
导航与输入
press_back:按下硬件返回键swipe:执行定向滑动或自定义坐标滑动type_text:在聚焦的输入框中输入文本,可选择先清除文本scroll_element:向任意方向滚动特定 UI 元素
录制与文档
record_video:开始屏幕录制,并可自定义画质设置stop_video:停止正在进行的屏幕录制并保存到本地存储
使用示例
基本设备交互
# Take an annotated screenshot
screenshot = await take_screenshot()
# Tap on a specific element (element 5 from screenshot)
await press(x=500, y=300)
# Type text into an input field
await type_text("Hello, Android!")
# Swipe to scroll down
await swipe(direction="down")
多设备自动化
# List available devices
devices = await list_emulators()
# Target specific device
await take_screenshot(device_id="emulator-5554")
await press(x=200, y=400, device_id="emulator-5554")
视频录制工作流
# Start recording
await record_video(filename="test_session.mp4")
# Perform automation steps
await press(x=300, y=500)
await type_text("Automated test input")
# Stop recording
await stop_video()
项目结构
android-puppeteer/
puppeteer.py # Main MCP server implementation
main.py # Entry point
pyproject.toml # Project configuration
ss/ # Screenshots directory
videos/ # Video recordings directory
README.md # This file
重要说明
- 设备权限:确保目标 Android 设备已启用 USB 调试
- 网络访问:部分功能需要网络连接以便与设备通信
- 存储:屏幕截图和视频文件保存在本地的
ss/和videos/目录中 - 性能:响应时间取决于设备性能和网络延迟
故障排除
常见问题
- 未找到设备:使用
adb devices验证 ADB 连接 - 权限被拒绝:检查 USB 调试和设备授权
- 屏幕截图失败:确保设备屏幕已解锁且可访问
- 视频录制问题:验证 scrcpy 是否已安装,以及设备是否兼容
调试模式
直接运行服务进行调试:
uv run puppeteer.py
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE。
贡献
欢迎贡献!欢迎提交 Pull Request。对于重大更改,请先提交 issue,讨论您希望进行的更改。
开发环境设置
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 进行更改
- 运行测试并确保代码质量
- 提交更改(
git commit -m 'Add amazing feature') - 推送到该分支(
git push origin feature/amazing-feature) - 创建 Pull Request
相关项目
- Android MCP - 另一款 Android 自动化 MCP 服务
- uiautomator2 - 核心 Android 自动化库
- MCP Protocol - Model Context Protocol 规范
如果觉得有用,请为此仓库点星!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。