Tool
Pencil
API
01. КатегорияTool
02. РольFull-stack, Product
03. Датамар 2026
BunTypeScriptJSON-RPCPencil MCPsystemdBunTypeScriptJSON-RPCPencil MCPsystemdBunTypeScriptJSON-RPCPencil MCPsystemdBunTypeScriptJSON-RPCPencil MCPsystemd
Генерация презентаций через API — задача, которая ломается из-за нестабильного состояния графического редактора. Цель — обернуть Pencil в надёжный микросервис: перезапускать процесс перед каждым запросом и возвращать готовый файл без участия человека.
Pencil API

Вызов
Нестабильный MCP
Pencil MCP накапливает открытые документы в памяти, из-за чего активный документ становится неоднозначным и генерация ломается.
- — После нескольких генераций export_nodes и batch_design падают с ошибкой «wrong .pen file»
- — Pencil не записывает .pen-файлы на диск — их нужно извлекать из памяти через batch_get
- — Явная передача filePath в MCP-инструменты вызывает нестабильные сбои
Решение
Чистый перезапуск
Перед каждой генерацией сервис перезапускает Pencil через systemd, гарантируя чистое состояние, и работает только с активным документом без явных путей.
- + Kill Pencil перед каждым запросом — systemd автоматически поднимает его заново за 5с
- + Все MCP-вызовы работают с активным документом через open_document, без передачи filePath
- + batch_get с nodeIds из snapshotLayout и readDepth: 10 извлекает полный .pen из памяти
Архитектура & Стек
Mindmap
NODE.01
HTTP сервер
Приём API-запросов
Bun · TypeScript
NODE.02
MCP Bridge
stdio JSON-RPC связь
Pencil MCP · JSON-RPC
COREEngine
NODE.03
Process Manager
Управление процессом
systemd · Bun spawn
NODE.04
Export Engine
Извлечение .pen файлов
batch_get · batch_design
NODE.01
HTTP сервер
Приём API-запросов
Bun · TypeScript
NODE.02
MCP Bridge
stdio JSON-RPC связь
Pencil MCP · JSON-RPC
NODE.03
Process Manager
Управление процессом
systemd · Bun spawn
NODE.04
Export Engine
Извлечение .pen файлов
batch_get · batch_design
COREEngine
Измеримый результат
Бизнес Импакт
0
ручной сборки слайдов
~10с
гарантированно чистый старт
3x
retry на каждый слайд