# Agent Droid Bridge

Подключает агента к Android-устройству или эмулятору через ADB: тапы, свайпы, скриншоты, запуск приложений и shell-команды прямо из чата.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 22
- Автор: Neverlow512
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Neverlow512/agent-droid-bridge
- Обновлён: 2026-06-30
- HTML: https://affpapa.org/nevibecode/mcp/agent-droid-bridge

## Что делает

Сервер отдаёт агенту инструменты поверх ADB: снять экран, прочитать UI, вытащить элементы, ввести текст, нажать клавишу, запустить приложение, выполнить команду оболочки. Ответы структурированные и короткие, поэтому длинная сессия автоматизации не забивает контекст XML-дампами. Отдельный пак `app_manager` добавляет ещё девять инструментов: работа с пакетами, жизненный цикл приложений, извлечение APK, разрешения, интенты. Включается переменной `ADB_EXTRA_TOOL_PACKS=app_manager`.

Транспорт — stdio, так что клиент подойдёт любой, умеющий MCP. Запуск идёт через `uvx agent-droid-bridge`, клонировать репозиторий не нужно. На хосте нужны Python 3.11+ и установленный ADB; если `adb` не в `PATH`, путь задаётся в `ADB_PATH`. При одном подключённом устройстве сервер берёт его сам, при нескольких спросит выбор.

По умолчанию стоит режим `unrestricted` — полный доступ к ADB. Для работы с чужими сборками это многовато: переключите `ADB_EXECUTION_MODE` на `restricted` с allowlist или выключите оболочку через `ADB_ALLOW_SHELL=false`. Ненужные инструменты скрываются в `ADB_DENIED_TOOLS`, команды разбираются через `shlex`. Логи сессии пишутся в JSONL, если включить `MCP_LOG_ENABLED=true` и указать `MCP_LOG_DIR`.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `ADB_EXECUTION_MODE`, `ADB_ALLOW_SHELL`, `ADB_PATH`, `ADB_EXTRA_TOOL_PACKS`, `ADB_DENIED_TOOLS`, `ADB_SHELL_ALLOWLIST`, `ADB_SHELL_DENYLIST`, `MCP_LOG_ENABLED`, `MCP_LOG_DIR`, `ADB_LOG_LEVEL` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env ADB_EXECUTION_MODE=<ADB_EXECUTION_MODE> --env ADB_ALLOW_SHELL=<ADB_ALLOW_SHELL> --env ADB_PATH=<ADB_PATH> --env ADB_EXTRA_TOOL_PACKS=<ADB_EXTRA_TOOL_PACKS> --env ADB_DENIED_TOOLS=<ADB_DENIED_TOOLS> --transport stdio agent-droid-bridge -- uvx agent-droid-bridge
```
Вместо <…> подставьте свои значения. Ещё 11 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from agent-droid-bridge <команда>

### Codex

**Командой платформы**
```bash
codex mcp add agent-droid-bridge --env ADB_EXECUTION_MODE=<ADB_EXECUTION_MODE> --env ADB_ALLOW_SHELL=<ADB_ALLOW_SHELL> --env ADB_PATH=<ADB_PATH> --env ADB_EXTRA_TOOL_PACKS=<ADB_EXTRA_TOOL_PACKS> --env ADB_DENIED_TOOLS=<ADB_DENIED_TOOLS> -- uvx agent-droid-bridge
```
Вместо <…> подставьте свои значения. Ещё 11 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from agent-droid-bridge <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "agent-droid-bridge": {
            "command": "uvx",
            "args": [
                "agent-droid-bridge"
            ],
            "env": {
                "ADB_EXECUTION_MODE": "<ADB_EXECUTION_MODE>",
                "ADB_ALLOW_SHELL": "<ADB_ALLOW_SHELL>",
                "ADB_PATH": "<ADB_PATH>",
                "ADB_EXTRA_TOOL_PACKS": "<ADB_EXTRA_TOOL_PACKS>",
                "ADB_DENIED_TOOLS": "<ADB_DENIED_TOOLS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 11 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from agent-droid-bridge <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "agent-droid-bridge": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "agent-droid-bridge"
            ],
            "env": {
                "ADB_EXECUTION_MODE": "<ADB_EXECUTION_MODE>",
                "ADB_ALLOW_SHELL": "<ADB_ALLOW_SHELL>",
                "ADB_PATH": "<ADB_PATH>",
                "ADB_EXTRA_TOOL_PACKS": "<ADB_EXTRA_TOOL_PACKS>",
                "ADB_DENIED_TOOLS": "<ADB_DENIED_TOOLS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 11 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from agent-droid-bridge <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e ADB_EXECUTION_MODE=<ADB_EXECUTION_MODE> -e ADB_ALLOW_SHELL=<ADB_ALLOW_SHELL> -e ADB_PATH=<ADB_PATH> -e ADB_EXTRA_TOOL_PACKS=<ADB_EXTRA_TOOL_PACKS> -e ADB_DENIED_TOOLS=<ADB_DENIED_TOOLS> agent-droid-bridge uvx agent-droid-bridge
```
Вместо <…> подставьте свои значения. Ещё 11 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from agent-droid-bridge <команда>

## Когда брать
- прогнать UI-сценарий на реальном устройстве без тестового кода
- снять скриншот и прочитать экран по текстовому запросу
- вытащить APK с устройства на хост
- посмотреть разрешения приложения и отправить интент
- проверить состояние экрана после установки сборки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
