这是一个用 Python 编写的 MCP(模型上下文协议)服务器,它允许 Claude 直接通过 Android 调试桥(ADB)与安卓设备进行通信。
C:\Users\Cristiano\Programação\ADB\# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex
# 或者从官方网站下载:https://github.com/astral-sh/uv
# 创建目录
mkdir adb-mcp-server
cd adb-mcp-server
# 保存文件(main.py 和 pyproject.toml)
# 之后执行:
# 安装依赖项
uv sync
# 测试是否正常工作
uv run python main.py
adb-mcp-server/
├── main.py # 服务器主代码
├── pyproject.toml # 项目配置文件
├── README.md # 本文件
└── .venv/ # 虚拟环境(由 uv 创建)
将以下配置添加到 Claude Desktop 的配置文件中:
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"adb": {
"command": "uv",
"args": [
"--directory",
"C:\\caminho\\para\\adb-mcp-server",
"run",
"python",
"main.py"
]
}
}
}
实际路径示例:
{
"mcpServers": {
"adb": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\Cristiano\\Documents\\adb-mcp-server",
"run",
"python",
"main.py"
]
}
}
}
启用开发者选项:
启用 USB 调试:
通过 USB 连接设备:
测试连接:
# 在你的 ADB 目录下
cd "C:\Users\Cristiano\Programação\ADB"
.\adb.exe devices
"列出已连接的安卓设备"
"我的手机上安装了哪些应用?"
"截取屏幕并保存到 C:\Screenshots\tela.png"
"显示我的手机电池信息"
"点击我的手机坐标 500, 800 处"
"在我的手机上输入 '你好,世界'"
"从坐标 300,500 滑动到 300,200"
"按下主页按钮(按键事件 3)"
"在我的手机上执行 'getprop ro.build.version.release' 命令"
"显示最近 50 条包含 'Error' 过滤条件的系统日志"
"安装 C:\Downloads\meuapp.apk 应用"
"卸载 com.exemplo.meuapp 应用"
"将文件 C:\Downloads\foto.jpg 发送到 /sdcard/Pictures/"
"将文件 /sdcard/Download/documento.pdf 下载到 C:\Documentos\"
| 命令 | 描述 | 使用示例 |
|---|---|---|
adb_devices |
列出设备 | "哪些设备已连接?" |
adb_shell |
执行 shell 命令 | "在手机上执行 'ls /sdcard/'" |
adb_install |
安装 APK | "安装 C:\app.apk 应用" |
adb_uninstall |
卸载应用 | "卸载 com.example.app 应用" |
adb_logcat |
捕获日志 | "显示包含 'Error' 过滤条件的日志" |
adb_screenshot |
截取屏幕 | "截取屏幕并保存到 C:\tela.png" |
adb_push |
发送文件 | "将文件.txt 发送到 /sdcard/" |
adb_pull |
拉取文件 | "将 /sdcard/foto.jpg 文件下载到 C:" |
adb_input |
模拟输入 | "点击坐标 100, 200" |
adb_apps |
列出应用 | "我安装了哪些应用?" |
adb_info |
系统信息 | "显示电池信息" |
# 检查代码中的路径
# 编辑 main.py 中的 ADB_PATH 变量
ADB_PATH = r"C:\Users\Cristiano\Programação\ADB\adb.exe"
# 手动测试
cd "C:\Users\Cristiano\Programação\ADB"
.\adb.exe devices
# 如果未显示设备:
# 1. 重新连接 USB 线
# 2. 撤销 USB 授权并重新授权
# 3. 安装设备制造商的 USB 驱动程序
# 在项目目录下
uv run python main.py
# 如果没有错误消息,则服务器正常运行
# 按 Ctrl+C 停止
# 安装/更新依赖项
uv sync
# 运行服务器
uv run python main.py
# 添加新的依赖项
uv add 库名称
# 更新所有依赖项
uv sync --upgrade
# 查看依赖项
uv tree
⚠️ 重要提示
- 此服务器以用户权限执行 ADB 命令。
- 仅在自己的设备上使用。
- 谨慎执行未知的 shell 命令。
- 保持 ADB 为最新版本。
- 如果连接多个设备,设备将按 ID 进行隔离。
git checkout -b minha-featuregit commit -m '新功能'git push origin minha-feature本项目采用 MIT 许可证,可自由使用!
💡 使用建议
- 确认 uv 是否已安装:
uv --version- 确认代码中 ADB 的路径
- 在使用 MCP 之前手动测试 ADB
- 检查 Claude Desktop 的日志以查找错误
- 确保设备已授权 USB 调试
# 手动测试 ADB
"C:\Users\Cristiano\Programação\ADB\adb.exe" devices
# 测试特定命令
"C:\Users\Cristiano\Programação\ADB\adb.exe" shell "getprop ro.build.version.release"
# 检查 Python 是否能找到 MCP
uv run python -c "import mcp; print('MCP OK')"