ADB设备管理服务器

一个基于Python的MCP服务器,允许通过Android Debug Bridge (ADB)直接与Android设备通信,提供设备管理、命令执行、文件传输等功能。

  • by cristianoritta
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 cristianoritta/mcp_adb

使用说明

ADB MCP服务器(Python)

Python模型上下文协议(MCP)服务器,允许Claude通过Android Debug Bridge(ADB)直接与Android设备通信。

🚀 功能

  • 设备管理列出已连接的设备
  • 执行命令在Android上运行shell命令
  • 安装/卸载:Gerenciar应用程序没有处置权
  • 原木船长:Acessar logcat做安卓
  • 截图: 抓取设备屏幕
  • 文件传输推/拉文件
  • 输入模拟触摸,滑动,键入
  • 应用列表:Ver应用程序instalados
  • 系统信息电池,版本,型号,内存

📋 先决条件

  1. Python 3.10+
  2. 紫外线 (Python 软件包管理器)
  3. ADB(安卓调试桥) 安装在 C:\Users\Cristiano\Programação\ADB\
  4. 安卓配置 启用 USB 调试
  5. 克劳德桌面 支持MCP

🛠️ 安装

1. 安装UV(如果没有)

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

# Ou baixar do site oficial: https://github.com/astral-sh/uv

2. 创建和配置项目

# Criar diretório
mkdir adb-mcp-server
cd adb-mcp-server

# Salvar os arquivos (main.py e pyproject.toml)
# Depois executar:

# Instalar dependências
uv sync

# Testar se funciona
uv run python main.py

3. 文件结构

adb-mcp-server/
├── main.py              # Código principal do servidor
├── pyproject.toml        # Configurações do projeto
├── README.md            # Este arquivo
└── .venv/              # Ambiente virtual (criado pelo uv)

⚙️ Claude 桌面配置

将此设置添加到 Claude Desktop 配置文件 :

窗户: %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连接:

    • 将设备连接到PC
    • 接受 Android 上的授权提示
  4. 测试连接 :

# No seu diretório do ADB
cd "C:\Users\Cristiano\Programação\ADB"
.\adb.exe devices

🎯 Claude的实例

基本命令

"Liste os dispositivos Android conectados"
"Quais apps estão instalados no meu telefone?"
"Tire uma screenshot e salve em C:\Screenshots\tela.png"
"Mostre informações da bateria do meu telefone"

自动化与控制

"Toque na coordenada 500, 800 do meu telefone"
"Digite 'Olá mundo' no meu telefone"
"Deslize da coordenada 300,500 até 300,200"
"Pressione o botão home (keyevent 3)"

开发与调试

"Execute o comando 'getprop ro.build.version.release' no meu telefone"
"Mostre os últimos 50 logs do sistema com filtro 'Error'"
"Instale o app em C:\Downloads\meuapp.apk"
"Desinstale o app com.exemplo.meuapp"

文件传输

"Envie o arquivo C:\Downloads\foto.jpg para /sdcard/Pictures/"
"Baixe o arquivo /sdcard/Download/documento.pdf para C:\Documentos\"

🔧 可用的命令

命令 描述 使用示例
adb_devices 设备列表 “连接了哪些设备?”
adb_shell 在手机上运行“ls /sdcard/”
adb_install Instala APK “Instale o app em C:\app.APK”
adb_uninstall 删除应用程序 “Desinstall com.example.app”
adb_logcat 捕捉日志 “显示带有'错误'过滤器的日志”
adb_screenshot 屏幕截图 “C:tela.png 的屏幕截图”
adb_push 发送文件 “将.txt 文件发送到 /sdcard/”
adb_pull 拖动文件 “下载/sdcard/foto.jpg 到 C:”
adb_input 模拟输入 “按 100, 200”
adb_apps 应用程序列表 “我安装了哪些应用程序?”
adb_info 系统信息 “显示电池信息”

🔍 解决问题

错误:“找不到 ADB”

# Verifique o caminho no código
# Edite a variável ADB_PATH em main.py
ADB_PATH = r"C:\Users\Cristiano\Programação\ADB\adb.exe"

错误:“找不到设备”

# Teste manualmente
cd "C:\Users\Cristiano\Programação\ADB"
.\adb.exe devices

# Se não aparecer dispositivos:
# 1. Reconecte o cabo USB
# 2. Revoke autorização USB e autorize novamente
# 3. Instale drivers USB do fabricante

错误 : “ 权限被拒绝 ”

  • 有些命令需要 root
  • 检查应用程序是否具有必要的权限
  • 有些命令只能在开发者模式下工作

正在测试服务器

# No diretório do projeto
uv run python main.py

# Se aparecer mensagem sem erro, o servidor está funcionando
# Pressione Ctrl+C para parar

🚀 有用的 uv 命令

# Instalar/atualizar dependências
uv sync

# Executar o servidor
uv run python main.py

# Adicionar nova dependência
uv add nome-da-biblioteca

# Atualizar todas as dependências
uv sync --upgrade

# Verificar dependências
uv tree

🔐 安全

  • ⚠️ 此服务器以用户特权运行 ADB 命令
  • ✅ 仅与您自己的设备一起使用
  • ⚠️ 运行未知的 shell 命令时要小心
  • ✅ 保持 ADB 最新
  • ✅ 按 ID 隔离设备(如果连接了多个设备)

📈 未来改进

  • [ ] 同时支持多个设备
  • [ ] 用于监控的 Web 界面
  • [ ] 常用命令缓存
  • [ ] 详细的操作日志
  • [ ] 自定义命令支持
  • [ ] 集成scrcpy视觉控制

🤝 贡献

  1. 分叉工程
  2. 创建分支 : git checkout -b minha-feature
  3. 承诺: git commit -m 'Nova feature'
  4. 推: git push origin minha-feature
  5. 打开 Pull Request

📄 许可证

MIT许可证-使用livremente!

📞 支持

常见问题 :

  1. ✅ 请检查 uv 是否已安装 : uv --version
  2. ✅ 确认代码中的 ADB 路径
  3. ✅ 在使用 MCP 之前手动测试 ADB
  4. ✅ 检查 Claude 桌面日志是否有错误
  5. ✅ 确保设备允许USB调试

高级调试 :

# Testar ADB manualmente
"C:\Users\Cristiano\Programação\ADB\adb.exe" devices

# Testar comando específico
"C:\Users\Cristiano\Programação\ADB\adb.exe" shell "getprop ro.build.version.release"

# Verificar se o Python encontra o MCP
uv run python -c "import mcp; print('MCP OK')"