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 ниже.
Шаг 1. Найдите, где установлен CLI
Расположение исполняемого файла зависит от способа установки.
Claude Code:
| Способ установки | Папка с claude |
|---|---|
С сайта (native): irm https://claude.ai/install.ps1 | iex | %USERPROFILE%\.local\bin (например C:\Users\ВашеИмя\.local\bin) |
Через npm: npm install -g @anthropic-ai/claude-code | папка npm, обычно %APPDATA%\npm |
OpenAI Codex CLI:
| Способ установки | Папка с codex |
|---|---|
С сайта: irm https://chatgpt.com/codex/install.ps1 | iex | папка, указанная установщиком |
Через npm: npm install -g @openai/codex | папка npm, обычно %APPDATA%\npm |
| Бинарник с GitHub Releases | папка, куда вы распаковали codex.exe |
Точный путь npm-папки можно узнать командой:
npm config get prefix
Проверить, видит ли система команду вообще (если пусто, её нет в PATH):
where.exe claude
where.exe codex
Проверить, что файл существует (для установки Claude с сайта):
Test-Path "$env:USERPROFILE\.local\bin\claude.exe"
Если файла нет ни в одной из папок, значит CLI не установлен. Установите его одним из способов из таблицы выше (для npm нужен Node.js).
Шаг 2. Добавьте найденную папку в переменную PATH
Подставьте путь из Шага 1 (например %USERPROFILE%\.local\bin для Claude с сайта
или %APPDATA%\npm для установки через npm).
Вариант A: через графический интерфейс Windows
- Нажмите
Win + R, введитеsysdm.cpl, нажмите Enter. - Вкладка «Дополнительно» → кнопка «Переменные среды».
- В разделе «Переменные среды пользователя» выберите переменную
Path→ «Изменить». - Нажмите «Создать» и вставьте нужный путь, например:
C:\Users\ВашеИмя\.local\bin - Нажмите OK во всех окнах.
Вариант B: через PowerShell (добавляет в пользовательский PATH навсегда)
# пример для установки Claude Code с сайта:
$p = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$p;$env:USERPROFILE\.local\bin", 'User')
⚠️ Замените путь на актуальный для вашего случая. Не запускайте команду несколько раз подряд, чтобы не дублировать записи в
PATH.
Шаг 3. Перезапустите терминал и проверьте
Изменения PATH действуют только в новых окнах терминала. Закройте и заново откройте PowerShell / CMD (или Visual Studio), затем проверьте:
claude --version
codex --version
Для Claude Code также можно запустить встроенную диагностику (проверяет PATH, конфликты установок и т. д.):
claude doctor
Если версии отображаются, значит команды распознаются корректно, и можно возвращаться к шагам настройки MCP выше.
Частые причины, если не помогло
- Терминал не перезапущен. Изменения
PATHприменяются только в заново открытых окнах. - Несколько установок сразу (npm + native) конфликтуют. Оставьте одну и удалите лишние.
- Установлено только расширение для VS Code. Оно не добавляет команду
claudeв терминал. Поставьте отдельный CLI с сайта или через npm.
Примеры запросов
Инспекция устройства
Подними устройство и покажи информацию о нём.
Назови разрешение экрана устройства.
Получи структуру элементов текущего экрана
и найди в ней поле ввода.
Покажи список установленных приложений
и найди среди них точное имя пакета для Chrome.
Сборка проекта
Покажи структуру текущего проекта,
выведи список всех действий с их ID и типами.
Скажи, у меня проект под эмулятор или под реальный телефон,
и какие категории действий доступны.
Собери цепочку: выбери случайное устройство,
запусти его и открой https://example.com.
Добавь проверку: если на экране появился текст "Success" —
идём по ветке успех, иначе по ветке ошибка.
Покажи текущие логи выполнения проекта
и сообщи, есть ли ошибки.
Комбинирование чтения устройства и сборки проекта
Прочитай структуру экрана, найди поле ввода телефона,
и добавь в проект кубик, который вводит в него {-Variable.phone-}.
Определи имя пакета приложения WhatsApp через список установленных,
затем добавь в проект проверку, установлено ли оно.
Прочитай реальное разрешение экрана
и добавь свайп снизу вверх по центру экрана.
Всё описанное выше нужно только для внешних ассистентов. Встроенный в ProjectMaker ZennoDroid ИИ-чат работает с теми же MCP-серверами «из коробки» — от вас требуется только API-ключ модели. Подробности — в статье ИИ-помощник в ZennoDroid.