MCP安卓控制服务器
一种模型上下文协议服务器,它通过自然语言使人工智能代理能够控制和自动化安卓设备,支持应用程序管理、用户界面交互和设备监控等操作。
服务介绍
MCP Android Agent
该项目提供了一个**MCP(Model Context Protocol)**服务器,用于通过uiautomator2自动化Android设备。它设计为可以轻松地与像GitHub Copilot Chat、Claude或Open Interpreter这样的AI代理集成,通过自然语言控制Android设备。
快速演示

要求
- Python 3.13 或更高版本
- 已安装并添加到PATH中的Android Debug Bridge (adb)
- 连接的启用了USB调试的Android设备
- uiautomator2兼容的Android设备
功能
- 通过包名启动、停止和管理应用程序
- 检索已安装的应用程序和当前前台应用
- 点击、滑动、滚动、拖动以及执行UI交互
- 获取设备信息、屏幕分辨率、电池状态等
- 捕获屏幕截图或最后的Toast消息
- 以编程方式解锁、唤醒或使屏幕休眠
- 清除应用程序数据并等待活动
- 包含健康检查和
adb诊断工具
使用场景
非常适合:
- 需要与真实设备交互的AI代理
- 远程设备控制设置
- 自动化QA工具
- Android机器人框架
- UI测试和自动化
- 设备管理和监控
安装
1. 克隆仓库
bash
git clone https://github.com/nim444/mcp-android.git
cd mcp-android
2. 创建并激活虚拟环境
bash
使用uv (https://github.com/astral-sh/uv)
uv venv
source .venv/bin/activate # 在Windows上: .venv\Scripts\activate
3. 安装依赖项
bash
uv pip install
运行服务器
选项1:使用uvicorn(推荐)
bash
uvicorn server:app --factory --host 0.0.0.0 --port 8000
选项2:使用MCP stdio(用于AI代理集成)
bash
python server.py
使用方法
需要一个MCP客户端来使用此服务器。Claude Desktop应用程序就是一个MCP客户端的例子。要将此服务器与Claude Desktop一起使用:
找到你的Claude Desktop配置文件
- Windows:
%APPDATA%Claudeclaude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
将Android MCP服务器配置添加到mcpServers部分
json
{
"mcpServers": {
"mcp-android": {
"type": "stdio",
"command": "bash",
"args": [
"-c",
"cd /path/to/mcp-adb && source .venv/bin/activate && python -m server"
]
}
}
}
将/path/to/mcp-adb替换为你克隆此仓库的绝对路径。例如:/Users/username/Projects/mcp-adb
与VS Code一起使用
您还可以将此MCP服务器与VS Code的代理模式一起使用(需要VS Code 1.99或更新版本)。要设置:
- 在您的工作区中创建一个
.vscode/mcp.json文件:
json
{
"servers": {
"mcp-android": {
"type": "stdio",
"command": "bash",
"args": [
"-c",
"cd /path/to/mcp-adb && source .venv/bin/activate && python -m server"
]
}
}
}
将/path/to/mcp-adb替换为你克隆此仓库的绝对路径。
添加配置后,您可以使用以下命令管理服务器:
- 命令面板 →
MCP: List Servers查看和管理已配置的服务器- 命令面板 →MCP: Start Server以启动服务器 - 服务器的工具将在 VS Code 的代理模式聊天中可用

UI 检查器
项目包括对 uiauto.dev 的支持,这是一个强大的 UI 检查工具,用于查看和分析设备的界面结构。
- 安装 UI 检查器:
bash
pip install uiautodev
- 启动检查器:
bash
uiauto.dev
- 打开浏览器并导航到 https://uiauto.dev

可用的 MCP 工具
| 工具名称 | 描述 |
|---|---|
mcp_health |
检查 MCP 服务器是否正常运行 |
connect_device |
连接到 Android 设备并获取基本信息 |
get_installed_apps |
列出所有已安装的应用程序及其版本和包信息 |
get_current_app |
获取当前在前台的应用程序的信息 |
start_app |
通过包名启动应用程序 |
stop_app |
通过包名停止应用程序 |
stop_all_apps |
停止所有当前正在运行的应用程序 |
screen_on |
打开屏幕 |
screen_off |
关闭屏幕 |
get_device_info |
获取详细的设备信息:序列号、分辨率、电池等 |
press_key |
模拟硬件按键按下(例如 home、back、menu 等) |
unlock_screen |
解锁屏幕(如果需要则打开并滑动) |
check_adb |
检查 ADB 是否已安装并列出连接的设备 |
wait_for_screen_on |
异步等待直到屏幕打开 |
click |
通过 text、resourceId 或 description 点击元素 |
long_click |
对元素执行长按 |
send_text |
在当前焦点字段中输入文本(可选地先清除) |
get_element_info |
获取 UI 元素的信息(文本、边界、可点击等) |
swipe |
从一个坐标滑动到另一个坐标 |
wait_for_element |
等待元素出现在屏幕上 |
screenshot |
从设备上截取并保存屏幕截图 |
scroll_to |
滚动直到给定元素可见 |
drag |
将元素拖动到特定的屏幕位置 |
get_toast |
获取屏幕上显示的最后一个 toast 消息 |
clear_app_data |
清除指定应用的用户数据/缓存 |
wait_activity |
等待特定活动出现 |
许可证
本项目根据 MIT 许可证许可 - 详情请参阅 LICENSE 文件。