Skip to content

Releases: abyrvalg379/mcp-socket

MCP Socket 2.6.0 — agent session log + replay

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 21 Sep 01:51

Agent session log + replay

Every bridge command is appended to a per-session JSONL file in %TEMP%/mcp_socket/sessions/ — a 10 s idle gap starts a new file (the same session boundary the undo checkpoint uses), the last 30 files are kept. Answers what did the agent do, step by step.

The new Agent Sessions sub-panel:

  • Replay Last Session — re-runs the recorded session's mutating commands in order. Read-only queries are skipped; each step reports its own success/failure and one failure never stops the rest. Replay steps are logged back with replay: true.
  • Copy Log Path — the JSONL path to the clipboard.

Redo a naming/export ritual on the next asset, audit what the agent changed, find the step that broke. Replay against the CURRENT scene is a draft, not a guarantee — modifying steps act on whatever is there now.

Idea credit: seehiong/blender-mcp-bridge (Blender Studio record/replay).

MCP Socket 2.5.0 — agent knowledge layer

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 21 Sep 01:37

Two new tools (18 total)

get_bpy_api_info — exact API facts from the running Blender instead of hallucinated docs: bpy.ops.<cat>.<op> returns real parameter names/types/defaults, bpy.types.<Type>.<member> returns a property card with enum items (e.g. ImageFormatSettings.file_format → default PNG + 16 live items). Idea credit: bpy-dev/blender-mcp runtime lookup.

get_pipeline_conventions — the user's pipeline rules from a plain conventions.json shipped with the addon: receiver rule for imports (container t=0 r=0 s=1, dimensions baked into vertices, oversize reported never rescaled), per-DCC units/naming/UV table (Blender/Maya/Houdini/Unreal), naming idempotency, preset guidance. Answered from the file only — no LLM, no network. Pattern credit: seehiong/blender-mcp-bridge design-rules tools.

Agent workflow: call these BEFORE writing execute_code with unfamiliar operators — check, don't guess.

MCP Socket 2.4.0

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 20 Sep 23:49

Offscreen render

render_offscreen renders to a file without opening the render window:

  • mode viewport — fast OpenGL render of the current 3D view (no overlays/gizmos in the output)
  • mode camera — full scene-engine render (Eevee/Cycles as configured) from the scene camera; Cycles renders can be slow, bridge timeout is 180 s

Output path/format follow the file extension (png/jpg/webp/bmp/tga/exr), resolution and percent are overridable per call. scene.render settings are saved and always restored — a render via the bridge never leaks settings into the scene (Blender 5.2 media_type VIDEO quirk handled).

Also: Render sub-panel in the N-panel (offscreen button), the handler is the 16th native MCP tool of mcp_server/server.py.

Zip install (Get Extensions → Install from Disk). Updating from 2.2.x/2.3.x in place — port, protocol and preferences unchanged.

v2.3.0 — own MCP server (phase 2)

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 20 Sep 23:24

v2.3.0 — phase 2: own MCP server

The repo now ships a thin stdio MCP server (mcp_server/server.py, stdlib only, hand-rolled JSON-RPC — same proven pattern as the Maya bridge on this machine). It exposes every bridge handler as a native MCP tool with typed parameters:

ping, get_scene_info, get_object_info, get_hierarchy, get_object_data, get_material_info, get_images_report, get_console_log, clear_console_log, list_instances, list_presets, export_fbx, import_fbx, get_viewport_screenshot, execute_code

Register it in any MCP client's config:

"mcp-socket": {
  "command": "python",
  "args": ["<repo>/mcp_server/server.py"]
}

Multi-instance: a second config entry with --port 9877 (the addon auto-offsets ports; list_instances discovers who is where). The Blender addon is unchanged — the server is a thin proxy over the same TCP protocol, and the blender-mcp wire compatibility stays.

v2.3.0 — фаза 2: собственный MCP-сервер

В репо теперь лежит тонкий stdio MCP-сервер (mcp_server/server.py, только stdlib, рукописный JSON-RPC — проверенный паттерн Maya-моста на этой машине). Он превращает каждый хендлер моста в нативный MCP-тул с типизированными параметрами (список выше). Регистрация в конфиге любого MCP-клиента — JSON выше. Мульти-инстанс: вторая запись с --port 9877. Аддон не изменился — сервер тонкий прокси над тем же TCP-протоколом, blender-mcp-совместимость сохранена.

v2.2.0 — pipeline FBX export/import (PROKLADKA rules)

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 20 Sep 23:14

v2.2.0 — pipeline FBX export/import (PROKLADKA rules)

New handler-layer commands (via any client's code-execution hatch: from bl_ext.user_default.mcp_socket import pipeline):

  • export_fbx(path, preset="maya", scope="selected", overrides={}) — neutral FBX per the PROKLADKA philosophy: meters, Y-up, binary, modifiers baked. Presets: maya / houdini / ue / neutral (same FBX settings by design — receivers adapt; per-DCC receiver contracts documented in the report). Children of selected Empties are included automatically (children_recursive). Per-call overrides merge over the preset and are echoed in the report — every deviation is explicit. Unknown override keys are rejected.
  • import_fbx(path, container=True) — the receiver rule: the asset lands in a container EMPTY with t=0 r=0 s=1 at the world origin; dimensions live in the geometry, no compensating transforms. Oversized meshes (>50 m) are REPORTED, never rescaled — no magic multipliers.
  • list_presets() — all presets with resolved settings and receiver notes.

Roundtrip verified live: loc/rot/scale survive exactly.

Panel: new Pipeline sub-panel — Export FBX / Import FBX buttons (file browser, preset picker). Panel header now reads MCP Socket X.Y.Z (dropped the redundant "Bridge").

v2.2.0 — пайплайн FBX экспорт/импорт (правила PROKLADKA)

Новые команды (через code-execution лаз: from bl_ext.user_default.mcp_socket import pipeline):

  • export_fbx(path, preset="maya", scope="selected", overrides={}) — нейтральный FBX по философии PROKLADKA: метры, Y-up, binary, модификаторы запечены. Пресеты: maya / houdini / ue / neutral (настройки одинаковые намеренно — адаптируется приёмник; контракты приёмников задокументированы в отчёте). Дети выделенных Empty включаются автоматически. Переопределения на вызове сливаются с пресетом и эхом отражаются в отчёте; неизвестные ключи отклоняются.
  • import_fbx(path, container=True) — правило приёмника: ассет в контейнер EMPTY с t=0 r=0 s=1 в мировом нуле; габариты живут в геометрии, компенсирующих трансформов нет. Переразмерные меши (>50 м) — в отчёт, без авто-рескала.
  • list_presets() — все пресеты с настройками и контрактами приёмников.

Раундтрип проверен вживую: loc/rot/scale сохраняются точно.

Панель: суб-панель Pipeline с кнопками Export FBX / Import FBX; шапка панели — MCP Socket X.Y.Z.

v2.1.0 — Undo Agent Work

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 20 Sep 22:56

v2.1.0 — Undo Agent Work

The panel gains an Undo Agent Work button. Script-level changes made through the bridge are invisible to Blender's undo stack, so the bridge now drops an undo checkpoint (memfile snapshot) before the first execute_code command of each agent session — a code command arriving after a 10 s idle gap. One click on the button (or one Ctrl+Z) then rolls back everything the agent changed in that session. Read-only queries never trigger checkpoints. Toggle: Preferences → "Undo checkpoint per agent session" (disable on huge scenes if the snapshot push is slow).

Also fixed: the console ring buffer could silently die after an addon reinstall performed through the bridge itself (redirect_stdout restores the stale stdout tee captured at exec start). The heartbeat now self-heals the tees every ~10 s — same watchdog pattern as the TOCHKA keymap sentinel.

v2.1.0 — кнопка Undo Agent Work

Скриптовые изменения через мост невидимы для undo-стека Blender, поэтому мост ставит undo-чекпоинт (memfile-снимок) перед первой командой execute_code каждой агентской сессии — командой кода после паузы 10 с. Один клик по кнопке (или один Ctrl+Z) откатывает всё, что агент изменил за сессию. Запросы только на чтение чекпоинты не создают. Переключатель: Preferences → "Undo checkpoint per agent session" (на огромных сценах можно отключить).

Также исправлено: лог-кольцо могло молча умирать после переустановки аддона через сам мост (redirect_stdout восстанавливал устаревший stdout-tee). Хартбит теперь самолечит tee каждые ~10 с — тот же паттерн сторожа, что у keymap-сентинела TOCHKA.

v2.0.0 — MCP Socket

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 20 Sep 22:36

v2.0.0 — renamed to MCP Socket

The bridge was never ZCode-specific: any blender-mcp 1.6.x-compatible client can talk to it. The product now carries a neutral name.

Migration: uninstall the old "ZCode MCP" extension, then install this one. Port (9876), wire protocol and all commands are unchanged — no client config changes needed.

  • module id mcp_socket, N-panel MCP Socket, repo abyrvalg379/mcp-socket
  • everything from 1.3.0 included (extension commands, console ring buffer, multi-instance)

v2.0.0 — переименование в MCP Socket

Мост никогда не был привязан только к ZCode: с ним работает любой клиент, совместимый с blender-mcp 1.6.x. Продукт получил нейтральное имя.

Миграция: удалите старое расширение "ZCode MCP", установите это. Порт (9876), протокол и все команды не изменились — конфиг клиента править не нужно.

  • id расширения mcp_socket, N-панель MCP Socket, репо abyrvalg379/mcp-socket
  • всё из 1.3.0 на месте (расширенные команды, лог-кольцо, мульти-инстанс)

v1.3.0 — bridge extension commands, multi-instance

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 20 Sep 22:32

v1.3.0 — bridge extension commands, multi-instance

New handler-layer commands (reachable from any client via its code-execution escape hatch: from bl_ext.user_default.zcode_mcp import handlers; handlers.HANDLERS["get_console_log"](...)):

  • get_console_log / clear_console_log — ring buffer (500 lines) of Python-level console output: addon prints, tracebacks, logging. C-level console (register warnings, operator reports) is not visible to Python.
  • get_bridge_info — one-call identity card: bridge/Blender versions, pid, scene, filepath, counts, actual port.
  • get_hierarchy — collection tree with objects and visibility flags.
  • get_object_data — full read-only object dossier (modifiers, constraints, material slots, mesh stats, custom props, action).
  • get_material_info — nodes summary, image textures with colorspace and on-disk state.
  • get_images_report — all images: paths, colorspace, packed, missing files.
  • list_instances — live bridge instances on this machine (multi-instance discovery).

Multi-instance: if the preferred port is busy, the bridge binds the next port (9877, 9878, ...) and registers itself in %TEMP%/zcode_mcp_instances/pid_<pid>.json with a heartbeat — a second Blender instance runs its own bridge side by side with the first.

Panel: version in the header, new collapsed "Console Log" sub-panel (last lines + Save to File + Clear). Port shows the actual bound port.

v1.3.0 — расширенные команды, мульти-инстанс

Новые команды слоя хендлеров (доступны любому клиенту через code-execution лаз: from bl_ext.user_default.zcode_mcp import handlers; handlers.HANDLERS["get_console_log"](...)): лог-кольцо консоли (500 строк Python-вывода), визитка инстанса, дерево коллекций, полная карточка объекта, информация по материалам, отчёт по изображениям (пути/колорспейс/пропавшие), список живых инстансов.

Мульти-инстанс: занятый порт — мост берёт следующий (9877...) и регистрируется в %TEMP%/zcode_mcp_instances/ с хартбитом; второй Blender живёт со своим мостом параллельно.

Панель: версия в шапке, свёрнутая суб-панель Console Log (строки + Save to File + Clear), фактический порт.

v1.2.2 — round status icons restored

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 20 Sep 22:01

v1.2.2 — round status icons restored

The bridge always printed icon register failed (falling back) on startup: bpy.utils.previews is a lazy submodule — attribute access fails until something executes import bpy.utils.previews. Other addons used to import it first, masking the bug; on a clean environment nothing does. The explicit import is the whole fix — the generated green/red circle status icons work again.

No other changes.

v1.2.2 — круглые статус-иконки возвращены

Мост печатал icon register failed (falling back) при каждом старте: bpy.utils.previews — ленивый подмодуль, атрибут не существует, пока кто-то не выполнит import bpy.utils.previews. Раньше его импортировали другие аддоны раньше моста, маскируя баг; на чистой среде — никто. Фикс — явный импорт, зелёный/красный круг-статус снова на месте.

Больше никаких изменений.

v1.2.1 — manifest fix for Blender 5.2.2

Choose a tag to compare

@abyrvalg379 abyrvalg379 released this 20 Sep 21:44

v1.2.1 — manifest fix for Blender 5.2.2

The v1.2.0 zip fails to install on Blender 5.2.2: the strict manifest parser rejects the TOML table ("website" must be a str). v1.2.1 fixes the manifest (flat website string). No functional code changes.

Установка: Get Extensions → ▼ → Install from Disk → выберите zip.
Установка: GitHub → Releases → Download ZIP

v1.2.1 — фикс манифеста для Blender 5.2.2

Зип v1.2.0 не ставится на Blender 5.2.2 (строгий парсер манифеста: "website" must be a str). В v1.2.1 манифест исправлен (website плоской строкой). Код не менялся.

Установка: Get Extensions → ▼ → Install from Disk → выберите zip.