Перейти к основному содержимому

Публичный 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 BrowserMCP6207-6211
ЗапускАвтоматически вместе с ProjectMakerВручную, скачиваются отдельно
API-ключНе нуженОбязателен, права задаете вы
ОхватПроект и браузер ProjectMakerПроект, браузер, задачи ZennoPoster, ZennoDroid
НастройкаРуководство по настройке для AI-ассистентовЭта страница

Внутренние серверы обслуживают встроенный ИИ-чат, и к ним же можно подключить внешнего ассистента, если хватает работы с проектом и браузером ProjectMaker без разграничения прав.

Публичные серверы нужны, когда требуется управление задачами ZennoPoster, работа с ZennoDroid или контроль над тем, что именно разрешено ассистенту.

Не занимайте порты 6107-6113

На этом диапазоне работает внутренняя инфраструктура продукта. Не запускайте на них свои процессы, иначе встроенный ИИ-чат перестанет работать.


3. API-ключи: права и уровни​

Ключ выпускается в ProjectMaker: Settings → API Keys → Add. В окне задаются:

  • Метка — имя, по которому вы потом поймете, кому выдан ключ.
  • Максимальный уровень (tier) — потолок серьезности операций. T0 разрешает только чтение, уровни выше открывают изменения.
  • Права (scopes) — набор областей доступа. По умолчанию включены только права на чтение.
Ключ показывается один раз

Скопируйте ключ сразу при создании и сохраните. Посмотреть его заново нельзя, потерянный ключ проще удалить и выпустить новый.

Если ключу не хватает прав, API возвращает структурированную ошибку с указанием, какого именно разрешения или уровня не хватило.

Рекомендуемый порядок работы:

  1. Выпустите ключ с уровнем T0 и правами только на чтение.
  2. Убедитесь, что ассистент видит проект и отвечает на вопросы по нему.
  3. Выпустите второй ключ с правами на запись и используйте его, когда нужны правки.

Отдельный ключ на каждого клиента и каждую машину упрощает отзыв: при проблеме понятно, что именно удалять.


4. Установка публичных серверов​

Шаг 1. Выберите нужные серверы​

ЗадачаСерверПорт
Читать и править проект: кубики, связи, переменные, списки, таблицыMCP.ProjectMaker6207
Управлять браузером, открытым в ProjectMakerMCP.Instance6208
Управлять браузером внутри задач ZennoPosterMCP.Instance, вторая копия6209
Ставить и вести задачи: запуск, потоки, остановка, логиMCP.ZennoPoster6210
Работать с Android-устройствами через ZennoDroidMCP.Android6211

Ставить все сразу не нужно. Если начинаете с одного сервера, берите MCP.ProjectMaker.

Шаг 2. Скачайте и распакуйте​

Архивы лежат на странице релизов и называются по образцу MCP.ProjectMaker-v0.2.0-win-x64.zip. Распакуйте в удобную папку, например C:\ZennoMCP\. Это готовые самодостаточные сборки, отдельная установка .NET не требуется.

Шаг 3. Запустите сервер со своим ключом​

Откройте папку с распакованным сервером, напишите в адресной строке проводника powershell и нажмите Enter. Подставьте свой ключ вместо zp_xxx.

ProjectMaker, порт 6207
.\ZennoLab.AI.MCP.ProjectMaker.exe --NeuroBot:ApiKey=zp_xxx
Браузер в ProjectMaker, порт 6208
.\ZennoLab.AI.MCP.Instance.exe --Instance:ApiKey=zp_xxx
Задачи ZennoPoster, порт 6210
.\ZennoLab.AI.MCP.ZennoPoster.exe --ZennoPosterApi:ApiKey=zp_xxx
Android, порт 6211
.\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Ограничения провайдера в вашем регионеПопробуйте другое подключение. Если не выходит, напишите в поддержку, файл пришлют напрямую

Полезные ссылки​