Публичный API и MCP-серверы
В версии 7.9.2 у ZennoPoster и ProjectMaker появился публичный HTTP API (PublicApi) и комплект публичных MCP-серверов. Продуктом можно управлять извне: из собственных скриптов и приложений или из ИИ-ассистента, при этом права доступа задаются вашим API-ключом.
ZennoPoster 7.9.2 или новее, для Android-сценариев ZennoDroid 2.6.1 или новее. Windows x64. ProjectMaker должен быть запущен, а нужный проект открыт.
1. Что появилось в 7.9.2
Публичный REST API (PublicApi) — более 100 операций под единым контрактом:
- работа с проектом в ProjectMaker: дерево действий, переменные, списки, таблицы, статические данные;
- управление задачами и сессиями выполнения в ZennoPoster;
- управление браузерным инстансом: навигация, клики, ввод текста, скриншоты.
Контракт описан в OpenAPI, по спецификации можно сгенерировать клиент для любого языка.
API-ключи с гибкими правами. Ключи выпускаются в ProjectMaker, для каждого задается набор разрешений (scopes) и максимальный уровень операций (tier), от строго read-only до полного управления.
Публичные MCP-серверы поверх этого API: скачали, вписали свой ключ, подключили к своему ИИ-клиенту. Права ассистента определяются вашим ключом, подключения принимаются только с локальной машины.
Встроенный ИИ-чат продукта работает на этой же инфраструктуре: тот же API и та же модель прав, скрытых привилегированных каналов нет. Про сам чат читайте в разделе ИИ-помощник.
2. Два набора MCP-серверов
Это главное, что нужно понять перед настройкой. Серверов два комплекта, и они решают разные задачи.
| Внутренние серверы | Публичные серверы | |
|---|---|---|
| Порты | 6107 ProjectMCP, 6108 BrowserMCP | 6207-6211 |
| Запуск | Автоматически вместе с ProjectMaker | Вручную, скачиваются отдельно |
| API-ключ | Не нужен | Обязателен, права задаете вы |
| Охват | Проект и браузер ProjectMaker | Проект, браузер, задачи ZennoPoster, ZennoDroid |
| Настройка | Руководство по настройке для AI-ассистентов | Эта страница |
Внутренние серверы обслуживают встроенный ИИ-чат, и к ним же можно подключить внешнего ассистента, если хватает работы с проектом и браузером ProjectMaker без разграничения прав.
Публичные серверы нужны, когда требуется управление задачами ZennoPoster, работа с ZennoDroid или контроль над тем, что именно разрешено ассистенту.
На этом диапазоне работает внутренняя инфраструктура продукта. Не запускайте на них свои процессы, иначе встроенный ИИ-чат перестанет работать.
3. API-ключи: права и уровни
Ключ выпускается в ProjectMaker: Settings → API Keys → Add. В окне задаются:
- Метка — имя, по которому вы потом поймете, кому выдан ключ.
- Максимальный уровень (tier) — потолок серьезности операций.
T0разрешает только чтение, уровни выше открывают изменения. - Права (scopes) — набор областей доступа. По умолчанию включены только права на чтение.
Скопируйте ключ сразу при создании и сохраните. Посмотреть его заново нельзя, потерянный ключ проще удалить и выпустить новый.
Если ключу не хватает прав, API возвращает структурированную ошибку с указанием, какого именно разрешения или уровня не хватило.
Рекомендуемый порядок работы:
- Выпустите ключ с уровнем
T0и правами только на чтение. - Убедитесь, что ассистент видит проект и отвечает на вопросы по нему.
- Выпустите второй ключ с правами на запись и используйте его, когда нужны правки.
Отдельный ключ на каждого клиента и каждую машину упрощает отзыв: при проблеме понятно, что именно удалять.
4. Установка публичных серверов
Шаг 1. Выберите нужные серверы
| Задача | Сервер | Порт |
|---|---|---|
| Читать и править проект: кубики, связи, переменные, списки, таблицы | MCP.ProjectMaker | 6207 |
| Управлять браузером, открытым в ProjectMaker | MCP.Instance | 6208 |
| Управлять браузером внутри задач ZennoPoster | MCP.Instance, вторая копия | 6209 |
| Ставить и вести задачи: запуск, потоки, остановка, логи | MCP.ZennoPoster | 6210 |
| Работать с Android-устройствами через ZennoDroid | MCP.Android | 6211 |
Ставить все сразу не нужно. Если начинаете с одного сервера, берите MCP.ProjectMaker.
Шаг 2. Скачайте и распакуйте
Архивы лежат на странице релизов и называются по образцу MCP.ProjectMaker-v0.2.0-win-x64.zip. Распакуйте в удобную папку, например C:\ZennoMCP\. Это готовые самодостаточные сборки, отдельная установка .NET не требуется.
Шаг 3. Запустите сервер со своим ключом
Откройте папку с распакованным сервером, напишите в адресной строке проводника powershell и нажмите Enter. Подставьте свой ключ вместо zp_xxx.
.\ZennoLab.AI.MCP.ProjectMaker.exe --NeuroBot:ApiKey=zp_xxx
.\ZennoLab.AI.MCP.Instance.exe --Instance:ApiKey=zp_xxx
.\ZennoLab.AI.MCP.ZennoPoster.exe --ZennoPosterApi:ApiKey=zp_xxx
.\ZennoLab.AI.MCP.Android.exe --Android:ApiKey=zp_xxx
Окно консоли должно оставаться открытым: пока сервер не работает, ассистент теряет доступ.
Впишите ключ в поле ApiKey в файле appsettings.json рядом с программой, и сервер будет запускаться двойным кликом по exe. Ключ также можно передать переменной окружения вида NeuroBot__ApiKey. Аргумент командной строки имеет приоритет над переменной окружения и файлом настроек.
Браузер внутри задач ZennoPoster, порт 6209
Это вторая копия сервера Instance с другими параметрами. Распакуйте архив во вторую папку и запускайте так:
.\ZennoLab.AI.MCP.Instance.exe --urls http://localhost:6209 `
--Instance:Target=zennoposter --Instance:BaseUrl=http://localhost:5300/api/v1 `
--Instance:ApiKey=zp_xxx
5. Подключение ИИ-клиента
Готовые кнопки установки для Cursor и VS Code и команды для Claude Code собраны на странице установки. Ниже то же самое вручную.
Claude Code
claude mcp add --transport http projectmaker http://localhost:6207
claude mcp list
GitHub Copilot, Cursor, VS Code
В файл .mcp.json в папке профиля (Win + R → %USERPROFILE%) добавьте:
{
"servers": {
"projectmaker": { "type": "http", "url": "http://localhost:6207" },
"zennoposter": { "type": "http", "url": "http://localhost:6210" }
}
}
После правки файла перезапустите клиента: конфигурация читается при старте.
LM Studio, локальная модель
Нужна версия LM Studio 0.3.17 или новее, в более ранних поддержки MCP нет. Модель выбирайте с поддержкой вызова инструментов (tool use), иначе она не сможет выполнять команды. Блок добавляется в файл mcp.json через редактор внутри программы, раздел там называется иначе:
{
"mcpServers": {
"projectmaker": { "url": "http://localhost:6207" }
}
}
Локальные модели слабее облачных: чаще теряются в больших проектах и иногда вызывают не те инструменты. Для чтения и объяснения проекта их хватает, для сложных правок лучше облачная модель.
Проверка подключения
Напишите ассистенту:
Какие инструменты ZennoPoster тебе доступны? Перечисли их.
Если он перечислил список инструментов, все работает.
6. Что умеет внешний ассистент
Чтение проекта как графа
get_project_structureотдает узлы (тип, метка, стартовая точка, switch, отключенность, принадлежность к error-ветке,groupIdиactionId) и ребра (OnSuccess,OnError,Default,Case-N, включая неявные переходы). Ответ трехуровневый: обзор групп, срез по одной группе или полный граф, чтобы на больших шаблонах не раздувать объем.find_path(from, to)строит кратчайший маршрут между двумя кубиками.get_action_connections(actionId)показывает все входящие и исходящие связи конкретного кубика.
Благодаря этому ассистент отвечает на вопросы вида «как выполнение доходит до этого кубика» и «что сломается, если убрать эту ветку».
Сохранение и контроль состояния файла
save_projectиopen_projectвозвращаютfileHash(SHA-256 содержимого .zp, считается после записи),fileSizeBytesиlastWriteTimeUtc. Повторное открытие того же файла дает идентичный хеш, так можно убедиться, что на диске именно то, что ожидалось.get_project_infoдополнен флагомhasUnsavedChanges, хеш считается только когда несохраненных правок нет.close_projectпо умолчанию не закрывает проект с несохраненными правками: возвращает409 failed_precondition, чтобы работа не пропала молча. Закрыть с потерей правок можно только явнымdiscardUnsavedChanges: true.
Задачи, браузер и данные
- Задачи и сессии ZennoPoster: запуск, потоки, остановка, статусы, логи.
- Браузерный инстанс: навигация, клики, ввод текста, работа с DOM, скриншоты.
- Данные проекта: переменные, списки, таблицы, статические данные.
Полный справочник операций, интерактивный контракт OpenAPI, коды ошибок и политика версионирования собраны в документации по PublicApi.
7. Примеры запросов
Начинайте с чтения: так видно, насколько ассистент разобрался в проекте, и ничем не рискуете.
Разобраться в проекте:
Опиши по шагам, что делает открытый проект. Где он может упасть?
Построй маршрут от стартового кубика до кубика с отправкой формы.
Покажи все входящие и исходящие связи выделенного кубика и куда ведут ветки ошибок.
Править и отлаживать:
Добавь после кубика авторизации проверку на капчу, при ее появлении уводи
выполнение на отдельную ветку с повтором.
Найди кубики, у которых не заполнена ветка OnError, и предложи, что туда поставить.
Сохрани проект и подтверди, что файл на диске обновился.
Запускать и разбирать падения:
Запусти эту задачу в 3 потока, дождись завершения и покажи, на каком кубике
она упала и какие значения были у переменных в этот момент.
Перед правками через ассистента сохраните копию проекта: изменения приходят быстро и пачками.
8. Устранение неполадок
| Симптом | Причина | Что делать |
|---|---|---|
| Клиент говорит, что инструментов нет | Сервер не запущен или конфигурация прописана не в ту программу | Проверьте окно сервера и перезапустите клиента, конфигурация читается при старте |
Ошибка 401 | Ключ неверный или не подставился | Проверьте, что ключ указан целиком, без лишних пробелов и кавычек. Если ключ потерян, выпустите новый |
Ошибка 403 | Ключу не хватает права или уровня | В тексте ошибки указано, чего именно не хватило. Выпустите ключ с нужными scopes и уровнем выше T0 |
Ошибка 409 при закрытии проекта | В проекте есть несохраненные правки | Сохраните проект или явно передайте discardUnsavedChanges: true |
| Сервер не стартует, порт занят | Порт держит вторая копия сервера или сторонняя программа | Закройте лишнюю копию. Диапазон 6107-6113 не используйте, он занят внутренними службами |
| Ассистент не видит проект | ProjectMaker закрыт или проект в нем не открыт | Запустите ProjectMaker, откройте проект и повторите запрос |
| Не скачивается архив с GitHub | Ограничения провайдера в вашем регионе | Попробуйте другое подключение. Если не выходит, напишите в поддержку, файл пришлют напрямую |
Полезные ссылки
- ИИ-помощник — встроенный чат в ProjectMaker.
- Руководство по настройке для AI-ассистентов — подключение к внутренним серверам без ключей.
- Документация по PublicApi и MCP — справочник операций и OpenAPI.
- Репозиторий с серверами — исходники и релизы.