News ZennoPoster 7.9.2.0 — Public API and MCP Servers • AI block Agent Mode

ZennoLab Team

Super Moderator
Команда форума
Регистрация
22.01.2019
Сообщения
2 112
Реакции
4 604
Баллы
113
ZennoPoster 7 (7.9.2.0) EN.png


ZennoPoster 7.9.2 has been released!

The headline update: ZennoPoster and ProjectMaker now have a public HTTP API and a set of MCP servers — the product can be controlled from the outside, from your own scripts and applications or straight from an AI assistant. The second major addition is the agent mode of the "AI Agent" action. On top of that, the external browser window can now stay on top of the program, ProjectMaker starts roughly twice as fast, and browser threads run faster.



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​

Full list of changes in 7.9.2

Added:

+ Public HTTP API and a set of MCP servers
ZennoPoster and ProjectMaker now have a public HTTP API and a set of MCP servers. The product can be controlled from the outside — from your own scripts and applications or straight from an AI assistant (Claude Code, Cursor, or any other MCP client): read and edit projects, queue tasks for execution, control the browser.
  • Public REST API (PublicAPI) — over 100 operations under a single contract: working with a project in ProjectMaker (action tree, variables, lists, tables, static data), managing tasks and execution sessions in ZennoPoster, controlling a browser instance (navigation, clicks, text input, screenshots). The contract is described in OpenAPI — you can generate a client for any language from the specification.
  • API keys with granular permissions. Keys are issued in ProjectMaker (Settings → API Keys); each key gets a set of permissions (scopes) and a maximum operation level (tier) — from strictly read-only to full control. The key is shown only once, at creation; the API returns all authorization errors in a structured form, stating exactly which permissions were missing.
  • MCP servers for AI assistants. Three servers — ProjectMaker (project editing), Instance (browser control), ZennoPoster (tasks and sessions) — are published as ready self-contained builds: download, enter your API key, connect to your LLM client. The assistant's permissions are defined by your key. The servers accept connections only from the local machine.
The product's built-in AI chat runs on this same infrastructure — the same permission model and the same API, no hidden privileged channels.

Public servers are in the repository: https://github.com/ZennoLab/zennoposter-mcp
Documentation (integrator guide, interactive OpenAPI contract, operation reference, error codes, and the versioning policy): https://zennolab.github.io/zennoposter-mcp/ — MCP server releases are on GitHub as well.

+ Tools for saving, opening, and closing a ProjectMaker project.
  • save_project and open_project return a freshness indicator for the file: fileHash (SHA-256 of the .zp contents on disk, computed after writing), fileSizeBytes, lastWriteTimeUtc. Reopening the same file yields an identical hash — so you can be sure that what is on disk is exactly what you expected.
  • get_project_info now includes the hasUnsavedChanges flag and the same fields; the hash is computed only when there are no unsaved edits.
  • close_project closes the open project. By default, a project with unsaved edits is not closed: it returns 409 failed_precondition so that work is not silently lost. To close and discard the edits, you must explicitly pass discardUnsavedChanges: true.

+ Improved tools for reading the project structure.
  • get_project_structure returns a graph: nodes (type, label, start point, switch, disabled state, membership in an error branch, groupId/actionId) and edges (OnSuccess/OnError/Default/Case-N, including implicit transitions). The response has three levels — an overview of groups, a slice for one group, or the full graph — so responses do not balloon on large templates.
  • find_path(from, to) — the shortest route between two actions.
  • get_action_connections(actionId) — all incoming and outgoing links and branches of a specific action.

+ MCP ProjectMaker tools for editing the diagram and the project's static blocks — some of them were added following your requests on the forum.
  • Action properties. set_action_properties reads and changes the "Disabled", "Breakpoint", and "Optional" flags and the action's comment; get_action_details and get_project_structure display them. Disabling a captcha action also disables its paired action, exactly as in the editor.
  • Renaming. rename_action and rename_group set the label of an action and a group — the name appears immediately on the diagram and in the properties panel, and the edit can be undone with Ctrl+Z.
  • Diagram layout. get_layout returns the coordinates and sizes of all groups; set_group_position moves one group, set_layout moves several at once, in a single redraw and a single undo step. If a group would overlap another, the request is rejected with a list of the conflicting groups — just like dragging in the editor. add_action accepts an insertion point (coordinates for a new group or a position inside an existing one), and copy_group copies a group to a given point on the diagram.
  • The "Using directives and shared code" block. get_shared_code and set_shared_code read and change the directives, the shared code, and the path to the shared code file; get_gac_references and set_gac_references handle the list of GAC references. Edits are immediately visible in the open block editor.
  • Project input settings. get_input_settings, add_input_settings, update_input_settings, remove_input_settings, and reorder_input_settings — read, add, change, delete, and order form fields; remove_input_settings_block removes the entire input settings block. The input settings icon on the project panel appears and disappears immediately, without reopening the project.
  • Diagram image. get_diagram_image returns an image of the whole diagram or just the visible part — the agent can evaluate the layout after its own edits and show the result.

+ MCP ZennoPoster tools for managing tasks.
  • The full task lifecycle: tasks_create adds a task from a project file that already exists on disk (the task itself is not started), tasks_start and tasks_stop start and stop it, tasks_delete removes it.
  • Execution settings, threads, number of executions, and the schedule are read and changed the same way as in the ZennoPoster interface, including infinite execution (-1). Changes are immediately visible in the open ZennoPoster window.
  • tasks_success_clear and tasks_fails_clear reset the counters of successful and failed executions.

+ The project context menu in ZennoPoster now has a "Copy GUID" item — the identifier is copied to the clipboard in exactly the form that API and MCP operations accept, so you can hand it straight to an agent.

Agent mode for the "AI Agent" action
The "AI Agent" action has a new way of working — agent mode. The Mode combo box now has two values: "Simple request" (the previous behavior, unchanged) and "Automatic request with MCP tools". In the second mode the model works in a "think → call a tool → look at the result" loop and controls the browser of the task the action runs in, as well as ZennoPoster tasks.
  • The loop is bounded by a mandatory iteration limit. When it is reached, the action stops predictably: the partial text is saved to the output variable and execution goes down the OnError branch.
  • The agent's outcome is parsed from the RESULT: SUCCESS|FAILURE verdict — the action picks the OnSuccess or OnError branch itself.
  • Project variables are substituted into the prompt, and the loop's result is written back into variables.
  • The reasoning is visible in the task log as it goes: the agent's steps, tool calls, and the outcome — a long loop no longer looks like a freeze.
  • Stopping the action or the task now also aborts the LLM loop itself. Previously the request ran to completion and kept spending tokens.
  • Multithreading: each agent is strictly bound to the browser of its own task. Under a 10×10 load, sessions do not intersect and cannot reach into someone else's instance — such an attempt is rejected by the server.
  • The mode works identically in ProjectMaker and in ZennoPoster.
  • The default token limit has been raised from 400 to 2000, and a warning is written to the log when the temperature is above 1.0.
In this mode the agent has access to two sets of tools: the browser of the task the action runs in, and ZennoPoster task management (task list, start and stop, settings, schedule) — the second one connects when ZennoPoster is running. Connecting your own MCP servers and giving the agent access to the project state are planned for the next stage.

Full guide to AI in ZennoPoster
A detailed guide covers all four ways of working with AI — the built-in AI assistant, the "AI Agent" action, an external agent over MCP, and PublicApi directly: how they differ and which one fits your task, how to issue an API key and set its permissions, step-by-step setup for Claude Code, Cursor, VS Code, and LM Studio, ready-made request scenarios, troubleshooting, and a glossary of terms.

Guide: https://docs.zennolab.com/en/zennoposter/Hello/public-api-mcp
Full documentation — integrator guide, interactive OpenAPI contract, operation reference, error codes, and the versioning policy: https://zennolab.github.io/zennoposter-mcp/
Installation page with ready-made buttons for Cursor and VS Code: https://zennolab.github.io/zennoposter-mcp/install.html
MCP server releases: https://github.com/ZennoLab/zennoposter-mcp/releases

+ The external browser window in ProjectMaker can be kept on top of the program.
  • An "Always on top" toggle next to "Snap": the browser window and DevTools stay visible above ProjectMaker but do not steal focus — text typed in ProjectMaker goes to ProjectMaker. The setting is remembered.
  • A new placement mode: the browser window takes the same area where the embedded browser used to be shown, and follows ProjectMaker when it is moved, resized, or minimized.
  • While a ProjectMaker dialog is open, the browser temporarily gives way to it, so the dialog is not hidden behind the window.

+ ProjectMaker starts roughly twice as fast: the action settings cache is prepared in the background while you are not interacting with the interface.

+ Browser threads run faster in Chromium and Chromium from ZennoBrowser, especially with a large number of threads. Along the way, the tab load waiting methods WaitInteractive and WaitPreComplete were fixed: previously, if the state had already been reached, they waited out the entire navigation timeout.

+ The Chromium browser has been updated to version 152.0.7977.83.

+ The "Sort project variables alphabetically" option
now sorts variables in the "Variables" window itself, not only in macro lists.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​

Fixed:

AI assistant and the "AI Agent" action
  • The "AI Agent" action with an empty request text or without a variable for the answer no longer goes out to the LLM: a clear error is written to the log right away.
  • The AI assistant no longer inserts non-existent macros into the If action — projects built by the assistant branch correctly.
  • The AI assistant sees all branches of the "Logic | Switch" action, not just Case0 and Default.
  • The AI assistant sets the HTTP action timeout in seconds rather than milliseconds. The same kind of mismatch was also fixed for "File exists", "Check directory", and ZennoDroid commands.
  • A manually added AI model is now deleted for good and does not come back after switching the provider or restarting the program. Built-in models no longer have a delete button, so they cannot be removed by accident.

Browser and instances
  • In the Chromium browser and in the ZennoBrowser integration, element thumbnails are drawn again on actions added via the Action Constructor — in both browser display modes.
  • The "Wait for User Actions" action banner no longer stays on screen and no longer carries over to the next project run in ZennoPoster.
  • Projects using the CEF browser no longer hang in multithreaded mode on the "Wait for User Actions" action: you can resume execution and expand the window from the "Instances" tab again.
  • The "Stop Instance" action in ProjectMaker with the CEF browser no longer shows the "An error occurred in the browser process" panel.
  • The "Hide" item in the "Instances" tab context menu hides the browser window opened by the "Wait for User Actions" action again.
  • In Chromium and Chromium from ZennoBrowser, starting an instance under high CPU/GPU load no longer hangs with the "Error occurs when applying profile to instance" error.
  • In Chromium and Chromium from ZennoBrowser, clicking a file upload button on certain sites opens the file picker again — both from an action and manually.
  • The virtual cursor in the external browser window of Chromium and Chromium from ZennoBrowser is displayed reliably.

Profiles
  • The instance.Launch method with launch arguments now applies those arguments to Chromium profile folders as well — the same as the instance launch action.
  • The profile window no longer hangs on an endless loading indicator after stopping an instance without a browser.
  • Regenerating a profile no longer freezes ProjectMaker, and a project running in ZennoPoster at that moment no longer fails with the "Error while preparing profile" error.

ProjectMaker and interface
  • The "Data" field in HTTP actions stretches with the properties window again; the text being entered no longer slips below the bottom edge of the field.
  • The properties of the "Launch Instance" action open without an endless loading indicator right after ProjectMaker starts.
  • On a repeated project run, the "Project in Project" action opens exactly the project specified in it.
  • The "Open in ZennoPoster" button in ProjectMaker adds the project to the task list even if ZennoPoster was not running beforehand.
  • The Esc key closes dialog windows — for example "Regular Expression Tester", "Content Policy", and "Menu Settings".

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​

Where to download?

ZennoPoster 7.9.2.0 is already available in your personal account!
https://account.zennolab.com/personal-area-main/

The update will also be offered when you launch ProjectMaker.

Thank you for being with us. Update and share your impressions in this thread.

 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)