Mcp_adb

Mcp_adb

🚀 ADB MCP 服务器(Python 版)

这是一个用 Python 编写的 MCP(模型上下文协议)服务器,它允许 Claude 直接通过 Android 调试桥(ADB)与安卓设备进行通信。

🚀 主要特性

  • 设备管理:列出已连接的设备
  • 命令执行:在安卓设备上执行 shell 命令
  • 安装/卸载应用:管理设备上的应用程序
  • 日志捕获:访问安卓设备的 logcat 日志
  • 屏幕截图:捕获设备屏幕
  • 文件传输:推送/拉取文件
  • 输入模拟:模拟触摸、滑动和输入操作
  • 应用列表:查看已安装的应用
  • 系统信息:获取电池、版本、型号和内存等系统信息

📋 前置要求

  1. Python 3.10 及以上版本
  2. uv(Python 包管理器)
  3. ADB(Android Debug Bridge),安装路径为 C:\Users\Cristiano\Programação\ADB\
  4. 安卓设备,并已开启 USB 调试模式
  5. Claude Desktop,支持 MCP 协议

📦 安装指南

1. 安装 uv(如果尚未安装)

# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex

# 或者从官方网站下载:https://github.com/astral-sh/uv

2. 创建并配置项目

# 创建目录
mkdir adb-mcp-server
cd adb-mcp-server

# 保存文件(main.py 和 pyproject.toml)
# 之后执行:

# 安装依赖项
uv sync

# 测试是否正常工作
uv run python main.py

3. 文件结构

adb-mcp-server/
├── main.py              # 服务器主代码
├── pyproject.toml        # 项目配置文件
├── README.md            # 本文件
└── .venv/              # 虚拟环境(由 uv 创建)

⚙️ 在 Claude Desktop 中的配置

将以下配置添加到 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"
]
}
}
}

📱 准备安卓设备

  1. 启用开发者选项

    • 进入设置 > 关于手机
    • 点击“版本号”7 次
  2. 启用 USB 调试

    • 设置 > 开发者选项
    • 开启“USB 调试”
  3. 通过 USB 连接设备

    • 将设备连接到电脑
    • 在安卓设备上接受授权提示
  4. 测试连接

# 在你的 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 系统信息 "显示电池信息"

🔍 问题解决

错误:“未找到 ADB”

# 检查代码中的路径
# 编辑 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 驱动程序

错误:“权限被拒绝”

  • 某些命令需要 root 权限
  • 检查应用是否具有必要的权限
  • 某些命令仅在开发者模式下可用

测试服务器

# 在项目目录下
uv run python main.py

# 如果没有错误消息,则服务器正常运行
# 按 Ctrl+C 停止

🚀 uv 的常用命令

# 安装/更新依赖项
uv sync

# 运行服务器
uv run python main.py

# 添加新的依赖项
uv add 库名称

# 更新所有依赖项
uv sync --upgrade

# 查看依赖项
uv tree

🔐 安全注意事项

⚠️ 重要提示

  • 此服务器以用户权限执行 ADB 命令。
  • 仅在自己的设备上使用。
  • 谨慎执行未知的 shell 命令。
  • 保持 ADB 为最新版本。
  • 如果连接多个设备,设备将按 ID 进行隔离。

📈 未来改进

  • [ ] 支持同时连接多个设备
  • [ ] 提供用于监控的 Web 界面
  • [ ] 缓存常用命令
  • [ ] 提供详细的操作日志
  • [ ] 支持自定义命令
  • [ ] 与 scrcpy 集成以实现可视化控制

🤝 贡献指南

  1. Fork 此项目
  2. 创建分支:git checkout -b minha-feature
  3. 提交更改:git commit -m '新功能'
  4. 推送分支:git push origin minha-feature
  5. 提交 Pull Request

📄 许可证

本项目采用 MIT 许可证,可自由使用!

📞 支持

常见问题

💡 使用建议

  1. 确认 uv 是否已安装:uv --version
  2. 确认代码中 ADB 的路径
  3. 在使用 MCP 之前手动测试 ADB
  4. 检查 Claude Desktop 的日志以查找错误
  5. 确保设备已授权 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')"
  • 0 关注
  • 0 收藏,27 浏览
  • system 提出于 2025-09-25 03:51

相似服务问题

相关AI产品