关于 Android MCP
Android MCP 是面向 Android 设备自动化与测试的 MCP 服务,可连接实体设备或模拟器。它提供触控、按键、状态读取和通知面板等操作。
主要功能
- 01点击、长按、滑动与拖动
- 02输入文本
- 03读取设备状态和截图
- 04操作硬件按键与通知面板
- 05支持实体设备和模拟器
适用场景
- 01自动化测试 Android 应用
- 02在设备上执行界面操作
- 03检查设备状态并获取截图
MCP 相关
该 MCP 服务向 MCP 客户端提供 Android 设备控制工具,可用于触控、读取状态、操作按键和通知面板。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Android MCP Server
一个轻量级 MCP(Model Context Protocol)服务,用于自动化 Android 操作系统。此服务提供与 Android 设备直接交互的工具,可用于自动化测试、应用交互和设备控制。
功能
- 设备控制:在 Android 设备上点击、长按、滑动、拖动和输入文字
- 状态管理:获取设备状态,并可选择获取视觉截图
- 导航:按下硬件按钮并访问通知
- 自动化:提供等待功能以控制时序
- 模拟器支持:同时支持实体设备和 Android 模拟器
前置条件
- Python 3.13 或更高版本
- uv 包管理器
- 已启用 USB 调试的 Android 设备或模拟器
- 已安装且可访问的 ADB(Android Debug Bridge)
安装
1. 安装 uv(如尚未安装)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Alternative: using pip
pip install uv
2. 设置项目
# Navigate to the android MCP directory
cd mcp/android
# Install dependencies
uv sync
# Activate the virtual environment (optional, uv run handles this automatically)
source .venv/bin/activate
3. 验证安装
# Test the server
uv run main.py --help
使用方法
运行服务
对于实体设备:
uv run main.py
对于 Android 模拟器:
uv run main.py --emulator
设备设置
-
启用 Android 设备上的开发者选项:
- 前往“设置”>“关于手机”
- 连续点按“版本号” 7 次
-
启用 USB 调试:
- 前往“设置”>“开发者选项”
- 启用“USB 调试”
-
连接设备并验证 ADB 连接:
adb devices
MCP 服务配置
将以下配置添加到 MCP 客户端设置中(例如 Claude Desktop、Cline 等):
{
"mcpServers": {
"android-mcp": {
"type": "stdio",
"command": "bash",
"args": [
"-c",
"cd /path/to/agent/mcp/android && source .venv/bin/activate && uv run main.py --emulator"
],
"alwaysAllow": [
"State-Tool",
"Click-Tool",
"Type-Tool",
"Swipe-Tool"
]
}
}
}
注意:更新配置中的路径,使其与项目的实际位置一致。
配置选项
- 对于实体设备:从 args 中移除
--emulator标志 - 指定设备:添加
--device <device_id>以指定特定设备 - alwaysAllow:预先批准特定工具,以避免反复出现权限提示
可用工具
| 工具 | 描述 | 参数 |
|---|---|---|
| Click-Tool | 点击指定坐标 | x: int, y: int |
| State-Tool | 获取设备状态,并可选择获取截图 | use_vision: bool = false |
| Long-Click-Tool | 长按指定坐标 | x: int, y: int, duration: int |
| Swipe-Tool | 在坐标之间滑动 | x1: int, y1: int, x2: int, y2: int |
| Type-Tool | 在指定坐标输入文字 | text: str, x: int, y: int, clear: bool = false |
| Drag-Tool | 在坐标之间拖放 | x1: int, y1: int, x2: int, y2: int |
| Press-Tool | 按下硬件按钮 | button: str |
| Notification-Tool | 访问通知面板 | 无 |
| Wait-Tool | 等待指定时长 | duration: int |
故障排除
常见问题
-
未找到设备:
- 确保已启用 USB 调试
- 检查
adb devices的输出 - 尝试更换 USB 线缆或端口
-
权限被拒绝:
- 在设备上允许 USB 调试权限
- 检查
adb devices中的设备授权状态
-
连接超时:
- 重启 ADB:
adb kill-server && adb start-server - 重新连接设备
- 重启 ADB:
-
Python 版本问题:
- 确保已安装 Python 3.13+
- 如有需要,使用
uv python install 3.13
模拟器设置
如果使用 Android 模拟器:
- 启动 Android 模拟器(通常可通过
emulator-5554访问) - 验证连接:
adb connect emulator-5554 - 运行服务时使用
--emulator标志
开发
项目结构
mcp/android/
├── README.md
├── pyproject.toml
├── main.py # MCP server entry point
├── src/
│ ├── mobile/ # Device interaction logic
│ └── tree/ # UI tree parsing and state management
└── .venv/ # Virtual environment
依赖项
- mcp:Model Context Protocol 框架
- uiautomator2:Android 设备自动化
- pillow:用于截图的图像处理
- ipykernel:Jupyter 内核支持
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。