П.ВИН
Tool

Pencil

API

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

[ Mindmap Процессов / v2.0 ]
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 на каждый слайд

Следующий кейс

18ai