ZennoDroid MCP: руководство по настройке для AI-ассистентов
Требования: перед подключением любого AI-ассистента должен быть запущен ProjectMaker ZennoDroid. MCP-серверы стартуют автоматически вместе с ним и работают по адресам:
- ProjectMCP (управление проектом) →
http://localhost:6117- AndroidMCP (инспекция Android-устройства) →
http://localhost:6118
Это сделано специально: ZennoPoster и ZennoDroid часто установлены на одной машине и могут быть запущены одновременно. Поэтому каждый порт AI-стека ZennoDroid сдвинут на +10 относительно порта ZennoPoster — конфликта не возникает, оба продукта можно держать открытыми и подключать к разным наборам MCP-серверов.
Если вы скопировали конфигурацию из руководства по ZennoPoster MCP и указали 6107 / 6108, ассистент будет подключаться к ZennoPoster, а не к ZennoDroid.
1. Чем ZennoDroid MCP отличается от ZennoPoster MCP
Отличий два, и второе принципиальнее первого.
| ZennoPoster | ZennoDroid | |
|---|---|---|
| Project MCP | http://localhost:6107 | http://localhost:6117 |
| Второй сервер | BrowserMCP 6108 — управляет браузером | AndroidMCP 6118 — читает состояние Android-устройства |
| Режим записи (recording) | используется — действия в браузере пишутся в кубики | не используется — в ZennoDroid нет действий, требующих записи |
| Управление UI из MCP | есть: клики, ввод текста, навигация | нет: только чтение состояния устройства |
Главное отличие. BrowserMCP в ZennoPoster умеет действовать — кликать, вводить текст, переходить по ссылкам. AndroidMCP в ZennoDroid умеет только смотреть: получить XML-дерево экрана, скриншот, разрешение экрана, список приложений, состояние устройства.
Все действия на устройстве в ZennoDroid — это кубики проекта. Ассистент добавляет их через ProjectMCP, а выполняются они при запуске проекта (F5). Поэтому «нажми кнопку в приложении» в ZennoDroid означает «добавь в проект кубик, который нажмёт эту кнопку», а не «нажми её сейчас».
Практическое следствие: элемент, которого нет на экране прямо сейчас, — не препятствие. Кубик собирается по имени/тексту/атрибуту элемента и срабатывает во время выполнения проекта.
Точный список инструментов каждого сервера и их параметры ассистент получает от MCP-серверов сам, при подключении. Спросите его — он перечислит то, что доступно в вашей сборке.
2. GitHub Copilot
Шаги
- Убедитесь, что ProjectMaker ZennoDroid запущен.
- Откройте папку профиля пользователя: нажмите
Win + R, введите%USERPROFILE%, нажмите Enter. - Создайте в этой папке файл
.mcp.json(пример:C:\Users\YourName\.mcp.json) - Вставьте следующий код:
{
"servers": {
"AndroidMCP": {
"type": "http",
"url": "http://localhost:6118"
},
"ProjectMCP": {
"type": "http",
"url": "http://localhost:6117"
}
}
}
- Перезапустите Visual Studio (или перезагрузите расширение Copilot).
- Теперь Copilot получит доступ к обоим MCP-серверам во всех рабочих пространствах.
Можно держать в одном .mcp.json все четыре сервера — имена должны различаться, порты уже различаются:
{
"servers": {
"ProjectMCP_ZD": { "type": "http", "url": "http://localhost:6117" },
"AndroidMCP": { "type": "http", "url": "http://localhost:6118" },
"ProjectMCP_ZP": { "type": "http", "url": "http://localhost:6107" },
"BrowserMCP": { "type": "http", "url": "http://localhost:6108" }
}
}
Учтите: ассистент увидит инструменты обоих продуктов одновременно и может обратиться не к тому серверу. Если это мешает — уточняйте в запросе, о каком продукте идёт речь, или держите подключённым только нужный набор.
3. Claude Code (CLI)
Шаги
- Убедитесь, что ProjectMaker ZennoDroid запущен.
- Откройте терминал.
- Выполните следующие команды:
claude mcp add AndroidMCP --transport http http://localhost:6118
claude mcp add ProjectMCP --transport http http://localhost:6117
- Проверьте, что серверы зарегистрированы:
claude mcp list
- MCP-серверы теперь доступны глобально во всех сессиях Claude Code.
Чтобы удалить их позже:
claude mcp remove AndroidMCP
claude mcp remove ProjectMCP
4. OpenAI Codex CLI
Шаги
- Убедитесь, что ProjectMaker ZennoDroid запущен.
- Откройте терминал.
- Выполните следующие команды:
codex mcp add AndroidMCP --url http://localhost:6118
codex mcp add ProjectMCP --url http://localhost:6117
- Проверка:
codex mcp list
Устранение неполадок (Troubleshooting)
Ассистент подключился, но видит проект ZennoPoster, а не ZennoDroid
Самая частая ошибка при переходе с руководства по ZennoPoster: в конфигурации указаны порты 6107 / 6108. Это порты ZennoPoster. Для ZennoDroid нужны 6117 и 6118.
Проверить, кто на каком порту слушает:
netstat -ano | findstr ":6107 :6108 :6117 :6118"
Сопоставить PID с процессом:
Get-Process -Id <PID>
Инструменты чтения устройства возвращают ошибку или пустой результат
- Устройство не запущено. Чтение экрана, скриншота, списка приложений и разрешения требует поднятого устройства. Попросите ассистента сначала поднять устройство — соответствующий инструмент идемпотентный, лишнего не сделает.
- Устройство не выбрано. Для реального телефона он должен быть подключён и виден ZennoDroid (см. подключение устройства).
Команда claude или codex не распознаётся
Если при выполнении команд терминал выдаёт ошибку вида:
"claude" не является внутренней или внешней командой,
исполняемой программой или пакетным файлом.
или (в PowerShell):
claude : Имя "claude" не распознано как имя командлета, функции,
файла сценария или выполняемой программы.
(аналогично для codex), это означает, что папка с исполняемым файлом CLI не добавлена в переменную окружения PATH, либо CLI ещё не установлен, либо терминал не был перезапущен после установки.
⚠️ Важно: установщик Claude Code с сайта (native installer,
irm https://claude.ai/install.ps1 | iex) не добавляет себя вPATHавтоматически. Поэтому «установил с сайта, но команда не распознаётся» — это самая частая ситуация. Её решает Шаг 2 ниже.