@pinepaper.studio/mcp-server 1.6.22 → 1.6.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.de.md +1 -1
  2. package/README.es.md +1 -1
  3. package/README.fr.md +1 -1
  4. package/README.hi.md +1 -1
  5. package/README.ja.md +1 -1
  6. package/README.ko.md +1 -1
  7. package/README.md +115 -5
  8. package/README.pt-BR.md +1 -1
  9. package/README.zh-CN.md +1 -1
  10. package/SECURITY.md +46 -0
  11. package/dist/agent/types.d.ts +114 -106
  12. package/dist/agent/types.d.ts.map +1 -1
  13. package/dist/agent/types.js +1 -1
  14. package/dist/agent/types.js.map +1 -1
  15. package/dist/browser/puppeteer-controller.js +2 -2
  16. package/dist/browser/puppeteer-controller.js.map +1 -1
  17. package/dist/build-info.json +2 -2
  18. package/dist/design/design-systems.d.ts +50 -0
  19. package/dist/design/design-systems.d.ts.map +1 -1
  20. package/dist/design/design-systems.js +220 -35
  21. package/dist/design/design-systems.js.map +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +13 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/ontology/hints.d.ts.map +1 -1
  26. package/dist/ontology/hints.js +5 -1
  27. package/dist/ontology/hints.js.map +1 -1
  28. package/dist/ontology/upstream-vocabulary.d.ts +1 -1
  29. package/dist/ontology/upstream-vocabulary.js +1 -1
  30. package/dist/ontology/vocabulary.d.ts.map +1 -1
  31. package/dist/ontology/vocabulary.js +1 -0
  32. package/dist/ontology/vocabulary.js.map +1 -1
  33. package/dist/tools/batch-macros.d.ts +27 -0
  34. package/dist/tools/batch-macros.d.ts.map +1 -0
  35. package/dist/tools/batch-macros.js +157 -0
  36. package/dist/tools/batch-macros.js.map +1 -0
  37. package/dist/tools/choreograph.d.ts +4 -0
  38. package/dist/tools/choreograph.d.ts.map +1 -1
  39. package/dist/tools/choreograph.js +12 -2
  40. package/dist/tools/choreograph.js.map +1 -1
  41. package/dist/tools/compact-descriptions.js +3 -3
  42. package/dist/tools/compact-descriptions.js.map +1 -1
  43. package/dist/tools/definitions.d.ts.map +1 -1
  44. package/dist/tools/definitions.js +122 -15
  45. package/dist/tools/definitions.js.map +1 -1
  46. package/dist/tools/engine-lists.d.ts +2 -2
  47. package/dist/tools/engine-lists.js +2 -2
  48. package/dist/tools/engine-methods.d.ts.map +1 -1
  49. package/dist/tools/engine-methods.js +3 -0
  50. package/dist/tools/engine-methods.js.map +1 -1
  51. package/dist/tools/engine-surface.d.ts +1 -1
  52. package/dist/tools/engine-surface.d.ts.map +1 -1
  53. package/dist/tools/engine-surface.js +52 -6
  54. package/dist/tools/engine-surface.js.map +1 -1
  55. package/dist/tools/export-file-check.d.ts +31 -0
  56. package/dist/tools/export-file-check.d.ts.map +1 -0
  57. package/dist/tools/export-file-check.js +103 -0
  58. package/dist/tools/export-file-check.js.map +1 -0
  59. package/dist/tools/export-file-receipt.d.ts +56 -0
  60. package/dist/tools/export-file-receipt.d.ts.map +1 -0
  61. package/dist/tools/export-file-receipt.js +151 -0
  62. package/dist/tools/export-file-receipt.js.map +1 -0
  63. package/dist/tools/handlers/beats.d.ts +7 -44
  64. package/dist/tools/handlers/beats.d.ts.map +1 -1
  65. package/dist/tools/handlers/export.d.ts.map +1 -1
  66. package/dist/tools/handlers/export.js +31 -6
  67. package/dist/tools/handlers/export.js.map +1 -1
  68. package/dist/tools/handlers/generate.d.ts +41 -270
  69. package/dist/tools/handlers/generate.d.ts.map +1 -1
  70. package/dist/tools/handlers.d.ts +84 -1
  71. package/dist/tools/handlers.d.ts.map +1 -1
  72. package/dist/tools/handlers.js +389 -82
  73. package/dist/tools/handlers.js.map +1 -1
  74. package/dist/tools/lane.d.ts +34 -0
  75. package/dist/tools/lane.d.ts.map +1 -0
  76. package/dist/tools/lane.js +210 -0
  77. package/dist/tools/lane.js.map +1 -0
  78. package/dist/tools/minimal-descriptions.d.ts.map +1 -1
  79. package/dist/tools/minimal-descriptions.js +3 -2
  80. package/dist/tools/minimal-descriptions.js.map +1 -1
  81. package/dist/tools/nested-ignored.d.ts +16 -0
  82. package/dist/tools/nested-ignored.d.ts.map +1 -0
  83. package/dist/tools/nested-ignored.js +83 -0
  84. package/dist/tools/nested-ignored.js.map +1 -0
  85. package/dist/tools/shape-params.d.ts +2 -2
  86. package/dist/tools/shape-params.d.ts.map +1 -1
  87. package/dist/tools/shape-params.js +9 -2
  88. package/dist/tools/shape-params.js.map +1 -1
  89. package/dist/tools/stick-vocabulary.d.ts +4 -4
  90. package/dist/tools/stick-vocabulary.d.ts.map +1 -1
  91. package/dist/tools/stick-vocabulary.js +8 -4
  92. package/dist/tools/stick-vocabulary.js.map +1 -1
  93. package/dist/tools/timeline.d.ts +136 -0
  94. package/dist/tools/timeline.d.ts.map +1 -0
  95. package/dist/tools/timeline.js +1036 -0
  96. package/dist/tools/timeline.js.map +1 -0
  97. package/dist/tools/toolkits.d.ts +1 -1
  98. package/dist/tools/toolkits.d.ts.map +1 -1
  99. package/dist/tools/toolkits.js +12 -2
  100. package/dist/tools/toolkits.js.map +1 -1
  101. package/dist/types/code-generator.d.ts +66 -3
  102. package/dist/types/code-generator.d.ts.map +1 -1
  103. package/dist/types/code-generator.js +629 -96
  104. package/dist/types/code-generator.js.map +1 -1
  105. package/dist/types/schemas.d.ts +5278 -24999
  106. package/dist/types/schemas.d.ts.map +1 -1
  107. package/dist/types/schemas.js +93 -40
  108. package/dist/types/schemas.js.map +1 -1
  109. package/manifest.json +5 -1
  110. package/package.json +8 -7
package/README.de.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  Der PinePaper MCP-Server lässt KI-Assistenten über das Model Context Protocol Grafiken in [PinePaper Studio](https://pinepaper.studio) erstellen und animieren. Funktioniert mit jeder KI, die MCP-Tool-Aufrufe unterstützt (Claude, GPT, Gemini, lokale Modelle usw.).
21
21
 
22
- Der Server bietet **177 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
22
+ Der Server bietet **178 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
23
23
 
24
24
  - Text, Formen, Geometrie und komplexe Grafiken erstellen
25
25
  - Mit deklarativen **Relationen** animieren statt mit Keyframes
package/README.es.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  El servidor MCP de PinePaper permite a los asistentes de IA crear y animar gráficos en [PinePaper Studio](https://pinepaper.studio) a través del Model Context Protocol. Funciona con cualquier IA que soporte llamadas a herramientas MCP (Claude, GPT, Gemini, modelos locales, etc.).
21
21
 
22
- Expone **177 herramientas**: dibujo, animación, diagramas, mapas, tipografía, física, edición de imágenes, visualización de datos y exportación:
22
+ Expone **178 herramientas**: dibujo, animación, diagramas, mapas, tipografía, física, edición de imágenes, visualización de datos y exportación:
23
23
 
24
24
  - Crear texto, formas, geometría y gráficos complejos
25
25
  - Animar con **relaciones** declarativas en lugar de fotogramas clave
package/README.fr.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  Le serveur MCP PinePaper permet aux assistants IA de créer et d'animer des graphiques dans [PinePaper Studio](https://pinepaper.studio) via le Model Context Protocol. Compatible avec toute IA gérant les appels d'outils MCP (Claude, GPT, Gemini, modèles locaux, etc.).
21
21
 
22
- Il expose **177 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
22
+ Il expose **178 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
23
23
 
24
24
  - Créer du texte, des formes, de la géométrie et des graphiques complexes
25
25
  - Animer avec des **relations** déclaratives plutôt que des images clés
package/README.hi.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  PinePaper MCP सर्वर AI असिस्टेंट्स को Model Context Protocol के ज़रिए [PinePaper Studio](https://pinepaper.studio) में ग्राफ़िक्स बनाने और एनिमेट करने देता है। MCP टूल कॉलिंग वाले किसी भी AI (Claude, GPT, Gemini, लोकल मॉडल आदि) के साथ काम करता है।
21
21
 
22
- सर्वर **177 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
22
+ सर्वर **178 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
23
23
 
24
24
  - टेक्स्ट, आकृतियाँ, ज्यामिति और जटिल ग्राफ़िक्स बनाना
25
25
  - कीफ़्रेम की जगह व्यवहार बताने वाले **रिलेशन** से एनिमेशन
package/README.ja.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  PinePaper MCP サーバーは、MCP 経由で AI アシスタントが [PinePaper Studio](https://pinepaper.studio) 上にグラフィックを作成・アニメーションさせるためのサーバーです。MCP ツールコールに対応した AI(Claude、GPT、Gemini、ローカルモデルなど)で動作します。
21
21
 
22
- **177 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
22
+ **178 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
23
23
 
24
24
  - テキスト、図形、ジオメトリ、複雑なグラフィックの作成
25
25
  - キーフレームではなく、ふるまいを宣言する**リレーション**でアニメーション
package/README.ko.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  PinePaper MCP 서버는 AI 어시스턴트가 MCP를 통해 [PinePaper Studio](https://pinepaper.studio)에서 그래픽을 만들고 애니메이션하게 해줍니다. MCP 툴 콜을 지원하는 모든 AI(Claude, GPT, Gemini, 로컬 모델 등)와 호환됩니다.
21
21
 
22
- **177개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
22
+ **178개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
23
23
 
24
24
  - 텍스트·도형·기하·복잡한 그래픽 생성
25
25
  - 키프레임 대신 행동을 선언하는 **릴레이션**으로 애니메이션
package/README.md CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  PinePaper MCP Server enables AI assistants to create and animate graphics in [PinePaper Studio](https://pinepaper.studio) via the Model Context Protocol (MCP). Works with any AI that supports MCP tool calling (Claude, GPT, Gemini, local models, etc.).
32
32
 
33
- The server exposes **177 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
33
+ The server exposes **178 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
34
34
 
35
35
  - Create geometric shapes, text collages, diagrams, and data charts
36
36
  - Apply 37+ character-level text effects and 28+ vertex deformation presets
@@ -41,7 +41,7 @@ The server exposes **177 tools** across drawing, animation, diagrams, maps, typo
41
41
 
42
42
  ## Running it: local or hosted
43
43
 
44
- **Local is free and complete.** Every one of the 177 tools works when you run
44
+ **Local is free and complete.** Every one of the 178 tools works when you run
45
45
  this server yourself. There is no reduced tier and nothing held back.
46
46
 
47
47
  What it needs:
@@ -240,6 +240,8 @@ If you do not want an agent executing anything, `code` mode is a first-class pat
240
240
 
241
241
  **What guards execution.** On current engine builds the snippet goes through `app.runGenerated(code, { source: 'agent' })` — a governor with seeded determinism, loop and item budgets, and a machine-readable report — rather than a bare `eval`. Older engine builds fall back to `eval`.
242
242
 
243
+ **Found a vulnerability?** Report it privately, as [SECURITY.md](SECURITY.md) describes, not in a public issue.
244
+
243
245
  **What to weigh before running it.**
244
246
 
245
247
  - Code an agent writes runs with whatever that browser page has. Give this server the same trust you would give anything else you let write and run code on your machine — which is the trust you already extend to an MCP client with tool access.
@@ -247,6 +249,111 @@ If you do not want an agent executing anything, `code` mode is a first-class pat
247
249
  - Puppeteer itself is an **optional** peer dependency, kept out of the default tree precisely because a headless browser plus an install script is what scanners flag hardest. Install it only if you want the executing mode.
248
250
  - The server itself fetches the images, SVGs and media a tool call names by URL, and reads local files named by path. URLs that resolve to loopback, private, link-local or reserved addresses are refused, redirects included, and so are cloud metadata addresses. Local files are read only from the working directory, the export folder, and folders listed in `PINEPAPER_ASSET_DIRS`. `PINEPAPER_ALLOW_PRIVATE_NETWORK=1` allows local and LAN hosts. Metadata addresses stay refused even with it set.
249
251
 
252
+ ## What's new in 1.6.24
253
+
254
+ ### Added
255
+
256
+ - `pinepaper_pattern`: one stored declaration moves many items, with no
257
+ keyframes on each. `phase_wave` sends a wave through the members, `stagger`
258
+ offsets them in turn. Members are chosen by id, by name pattern or by tag.
259
+ `create`, `modify`, `remove`, `list` and `get` manage patterns afterwards.
260
+ - A five-tool toolkit for agents, `PINEPAPER_TOOLKIT=lane`:
261
+ `pinepaper_agent_batch_execute`, `pinepaper_keyframe_animate`,
262
+ `pinepaper_pattern`, `pinepaper_agent_export` and `pinepaper_lint_scene`,
263
+ with descriptions written to be read on their own.
264
+ - Batch operations `ring`, `grid`, `orbit`, `stagger` and `patch`.
265
+ - `ring` and `grid` lay out many items in one operation. Each item is made
266
+ the same way `create` makes it and fills the next `$N` slot.
267
+ - `orbit` binds an orbiting item to a centre, making the orbiting item if
268
+ you pass `itemType`.
269
+ - `stagger` plays the same keyframes on several items, one after another.
270
+ - `patch` changes an item by its name.
271
+ - Batch operation `timeline`: GSAP-style tweens written as JSON (`to`, `from`,
272
+ `at`, `stagger`, `ease`, `repeat`, `yoyo`, labels), turned into ordinary
273
+ keyframe tracks, so the result exports, saves and edits like hand-written
274
+ keyframes. A tween that cannot be built is refused before anything runs,
275
+ with the path of the bad value. The result says what each tween became.
276
+ - `pinepaper_agent_export` returns the saved file's `sha256` and size. When
277
+ the studio reports per-frame hashes, it also returns a `frameDigest`, so two
278
+ renders can be compared in one field. When `ffprobe` is installed, the saved
279
+ video is checked against what the studio encoded, and any field that
280
+ disagrees is named (`PINEPAPER_FFPROBE=off` turns this off).
281
+ - `pinepaper_execute_custom_code` and `pinepaper_agent_batch_execute` return
282
+ the scene lint's warnings (`lintWarnings`), such as a title that runs out of
283
+ the frame. Every failed step is listed in `failures` as
284
+ `{ step, itemId, reason }`.
285
+
286
+ ### Fixed
287
+
288
+ - An atomic batch that fails removes the items it created, so it can be fixed
289
+ and sent again without making them twice. Changes it made to items that
290
+ already existed are not undone, and the result says what was removed.
291
+ - An argument a tool ignores is now also named when it is nested, at its full
292
+ path (for example `keyframes[1].ease`). Keys that a batch operation reads
293
+ directly (`content`, `fontSize`, `x`, `y`, `timeOffset` and the like) are
294
+ not reported.
295
+ - No export reports success without a file. Every saved file is read back
296
+ from disk and must exist and not be empty. A failure names its step, the
297
+ path and the reason.
298
+ - A batch `modify` or `patch` addressed by a name that several items hold is
299
+ refused, and the result lists their ids. It used to change whichever of them
300
+ was made first.
301
+ - Item ids and colours in batch operations are always quoted correctly in the
302
+ generated code.
303
+ - `pinepaper_choreograph` with `sound: true` now plays a launch sound at the
304
+ start of a `bounce`, as it already did for a `hop`.
305
+ - `pinepaper_emitter` accepts `velocities` and `offsets` written as
306
+ `[{ x, y }, …]` as well as `[[x, y], …]`. Before, the object form was
307
+ dropped and the particles had no velocity. The reply now warns when a
308
+ burst's `count` differs from the number of `velocities`.
309
+ - A `letterSpacing` set on a text item in `pinepaper_create_item` or
310
+ `pinepaper_modify_item` is applied. It was reported as ignored at creation
311
+ and only took effect through keyframes.
312
+
313
+ ### Security
314
+
315
+ - `pinepaper_import_scene` reads only from the working directory, the export
316
+ folder and `PINEPAPER_ASSET_DIRS`, like image and media imports. A path
317
+ outside them gets the same refusal whether or not the file exists, so the
318
+ error no longer shows what is on disk. Restoring a scene that
319
+ `pinepaper_export_scene` saved still works: it saves to the export folder.
320
+ - The `pinepaper://docs/readme` resource accepts only a language code after
321
+ the slash (such as `/ja` or `/pt-BR`). Anything else is refused.
322
+ - Dependency updates clear published advisories in `body-parser`, `fast-uri`,
323
+ `ip-address`, `hono` and `zod` (now zod 4).
324
+ - [SECURITY.md](SECURITY.md) explains how to report a vulnerability privately.
325
+
326
+ ## What's new in 1.6.23
327
+
328
+ ### Fixed
329
+
330
+ - Every tool now says when it ignored an argument. A top-level argument a
331
+ tool does not take used to be dropped silently, and the call still reported
332
+ success. The reply now names it ("IGNORED ARGUMENTS: … had no effect"), and
333
+ lists it under `_meta["pinepaper.studio/ignoredArguments"]`.
334
+ - `pinepaper_keyframe_animate` accepts `mode: 'merge'` (the same as
335
+ `append: true`), which the studio's own warning recommends, on the tool and
336
+ in batch operations.
337
+ - `pinepaper_import_image` applies `shadowColor`, `shadowBlur` and
338
+ `shadowOffset`.
339
+ - `pinepaper_design_system` `compose`: cyberpunk scanlines are drawn as lines,
340
+ the HUD frame keeps its angled corners, and neon glows carry over to shapes
341
+ and text. Bauhaus and Memphis circles are drawn as circles. Text that lands
342
+ on a shape at a canvas size the style was not laid out for is reported in
343
+ `layoutCollisions`.
344
+ - Tool docs give the units for emitter `jitter` and `spin`, say what
345
+ `quality` controls on MP4 and WebM, and say how timing works on an equation
346
+ route in `moves_along_path`.
347
+ - `pinepaper_choreograph` anchors each move at where the actor is on the beat,
348
+ not wherever the playhead was left, and a roll on a picture turns by its
349
+ drawn size.
350
+ - An equation route in `moves_along_path` keeps its `duration`.
351
+ - A radial gradient is centred on the item it fills.
352
+ - An export whose platform preset sizes the file differently from the canvas
353
+ says so (`platformSize`, `platform_size_differs_from_canvas`).
354
+ - `fillOpacity` is no longer reported as ignored, and tabular figures report
355
+ whether they really applied.
356
+
250
357
  ## What's new in 1.6.22
251
358
 
252
359
  ### Changed
@@ -1604,7 +1711,7 @@ Fourteen new tools (121 → 135) and new actions across the surface — the rele
1604
1711
 
1605
1712
  ## Toolkits & Token Budget
1606
1713
 
1607
- 177 tools is a lot of context. The server ships a **toolkit** system that serves only the tools a given client needs, plus a **verbosity** system that controls how long each tool description is.
1714
+ 178 tools is a lot of context. The server ships a **toolkit** system that serves only the tools a given client needs, plus a **verbosity** system that controls how long each tool description is.
1608
1715
 
1609
1716
  **Toolkit profiles** (`PINEPAPER_TOOLKIT`):
1610
1717
 
@@ -1616,6 +1723,7 @@ Fourteen new tools (121 → 135) and new actions across the surface — the rele
1616
1723
  | `map` | Canvas + map + query/export |
1617
1724
  | `font` | Canvas + font + letter collage + export |
1618
1725
  | `minimal` | Agent, browser, canvas, and guide only |
1726
+ | `lane` | **The agent lane**: exactly five tools — `pinepaper_agent_batch_execute`, `pinepaper_keyframe_animate`, `pinepaper_pattern`, `pinepaper_agent_export`, `pinepaper_lint_scene` — shown with descriptions that carry the rules an agent otherwise learns by failing (the keyframe shape, an item's words and look inside `properties`, a position being the item's centre, the export's 5 s default). The whole contract, instructions included, is ~3.3k tokens. For scripted builds of shapes, text, keyframes and relations; use `agent` for characters, styled scenes, maps, diagrams and sound |
1619
1727
 
1620
1728
  **Verbosity tiers** (`PINEPAPER_VERBOSITY`): `verbose`, `compact` (default), `minimal`.
1621
1729
 
@@ -1807,7 +1915,7 @@ Generate instruction/code pairs for LLM fine-tuning:
1807
1915
 
1808
1916
  ## Tools Reference
1809
1917
 
1810
- All 177 tools, grouped by the tag used for toolkit filtering.
1918
+ All 178 tools, grouped by the tag used for toolkit filtering.
1811
1919
 
1812
1920
  ### Canvas (`canvas`)
1813
1921
  | Tool | Description |
@@ -1872,6 +1980,7 @@ All 177 tools, grouped by the tag used for toolkit filtering.
1872
1980
  | `pinepaper_choreograph` | Acting for any item: hop, bounce, roll, fly, peek with squash and stretch |
1873
1981
  | `pinepaper_play_timeline` | Control playback, rate, progress, scroll-driven scrubbing |
1874
1982
  | `pinepaper_stagger` | Shape a delay across many items |
1983
+ | `pinepaper_pattern` | Move many items with one stored declaration (wave, stagger) |
1875
1984
  | `pinepaper_flip` | Animate a layout change without describing the motion |
1876
1985
  | `pinepaper_get_animatable_properties` | List animatable properties |
1877
1986
  | `pinepaper_get_available_easings` | List easing functions |
@@ -2330,7 +2439,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
2330
2439
  | `PINEPAPER_EXECUTION_MODE` | `puppeteer` (execute in a real browser) or `code` (return generated code only) | `puppeteer` |
2331
2440
  | `PINEPAPER_EXPORT_DIR` | Directory for exported files | `<tmpdir>/pinepaper-exports` |
2332
2441
  | `PINEPAPER_LOCALE` | Language locale code | `en` |
2333
- | `PINEPAPER_TOOLKIT` | Toolkit profile (`full`/`agent`/`diagram`/`map`/`font`/`minimal`) | auto-detected |
2442
+ | `PINEPAPER_TOOLKIT` | Toolkit profile (`full`/`agent`/`diagram`/`map`/`font`/`minimal`/`lane`) | auto-detected |
2334
2443
  | `PINEPAPER_TOOLS` | Explicit comma-separated tool allowlist | unset |
2335
2444
  | `PINEPAPER_VERBOSITY` | Description verbosity (`verbose`/`compact`/`minimal`) | `compact` |
2336
2445
  | `PINEPAPER_TOOL_VERBOSITY` | Deprecated alias for `PINEPAPER_VERBOSITY` | unset |
@@ -2344,6 +2453,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
2344
2453
  | `PINEPAPER_GOVERNOR` | `off` runs code by raw eval — no governor report, no error codes, no seeded determinism | on |
2345
2454
  | `PINEPAPER_ASSET_DIRS` | Extra folders local image and media imports may read from, separated by `:` (`;` on Windows). The working directory and the export folder are always allowed | unset |
2346
2455
  | `PINEPAPER_ALLOW_PRIVATE_NETWORK` | `1` lets URL imports reach loopback, private and LAN addresses, for a local dev server. Cloud metadata addresses stay refused | unset |
2456
+ | `PINEPAPER_FFPROBE` | `off` skips the ffprobe check of a saved video export. Without `ffprobe` on `PATH` the check is skipped and the result says so | on |
2347
2457
 
2348
2458
  Behind a proxy, or against a Studio with analytics or polling connections open,
2349
2459
  `networkidle2` may never settle: set `PINEPAPER_WAIT_UNTIL` only if you need the
package/README.pt-BR.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  O servidor MCP do PinePaper permite que assistentes de IA criem e animem gráficos no [PinePaper Studio](https://pinepaper.studio) via Model Context Protocol. Funciona com qualquer IA que suporte chamadas de ferramenta MCP (Claude, GPT, Gemini, modelos locais etc.).
21
21
 
22
- São **177 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
22
+ São **178 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
23
23
 
24
24
  - Criar texto, formas, geometria e gráficos complexos
25
25
  - Animar com **relações** declarativas em vez de keyframes
package/README.zh-CN.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  PinePaper MCP 服务器让 AI 助手通过 MCP 协议在 [PinePaper Studio](https://pinepaper.studio) 中创建和驱动图形动画。兼容任何支持 MCP 工具调用的 AI(Claude、GPT、Gemini、本地模型等)。
21
21
 
22
- 服务器提供 **177 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
22
+ 服务器提供 **178 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
23
23
 
24
24
  - 创建文本、形状、几何图形与复杂图稿
25
25
  - 用行为驱动的**关系(relations)**做动画,而不是逐帧关键帧
package/SECURITY.md ADDED
@@ -0,0 +1,46 @@
1
+ # Security policy
2
+
3
+ ## Reporting a vulnerability
4
+
5
+ Please report security issues privately, through GitHub's private vulnerability reporting:
6
+
7
+ **[Report a vulnerability](https://github.com/pinepaper/mcp-server/security/advisories/new)**
8
+
9
+ Please don't open a public issue, pull request or discussion for a security problem. A private report reaches the maintainers without exposing users before a fix is out.
10
+
11
+ A useful report includes:
12
+
13
+ - the version of `@pinepaper.studio/mcp-server` (`npx @pinepaper.studio/mcp-server --version`, or the version in your MCP client's config);
14
+ - the tool call or input that triggers it, and what happens as a result;
15
+ - the execution mode (`puppeteer` or `code`) and any `PINEPAPER_*` environment variables you set;
16
+ - what an attacker gains, and what they need to control to get it (for example, a URL in a tool call, a file on disk, or a web page the server visits).
17
+
18
+ You don't need a working exploit. If you aren't sure whether something counts, report it anyway.
19
+
20
+ ## What happens next
21
+
22
+ The report becomes a draft security advisory that only you and the maintainers can see. We follow up in that thread: to confirm the issue, ask questions, and tell you which release fixes it. Once a fixed version is published to npm, we publish the advisory with the affected and fixed versions, and request a CVE for it. With your agreement, we credit you by name.
23
+
24
+ ## Supported versions
25
+
26
+ Fixes ship in a new patch release of the latest version. Older versions do not get backported fixes, so upgrade to the latest release to pick one up:
27
+
28
+ ```
29
+ npm install @pinepaper.studio/mcp-server@latest
30
+ ```
31
+
32
+ ## Scope
33
+
34
+ This package is an MCP server that runs on your machine and drives PinePaper Studio in a browser page.
35
+
36
+ **Executing JavaScript in the studio page is the design, not a vulnerability.** Every tool compiles to a snippet that runs against your canvas, and `pinepaper_execute_custom_code` runs a snippet the agent writes. The README's [security section](README.md#security-yes-it-executes-code) explains what runs where, and how `code` mode avoids executing anything.
37
+
38
+ Examples of what is in scope:
39
+
40
+ - the server process fetching what it should not, such as private or loopback addresses or cloud metadata endpoints (server-side request forgery);
41
+ - reading or writing files outside the folders the server is allowed to use (path traversal);
42
+ - tool input that escapes the generated snippet and runs in the server process instead of the page;
43
+ - exposing a credential such as `PINEPAPER_API_KEY`, or sending it somewhere it should not go;
44
+ - a crash or hang of the server caused by a single crafted tool call.
45
+
46
+ The server's own defences, `PINEPAPER_ALLOW_PRIVATE_NETWORK` and `PINEPAPER_ASSET_DIRS`, are documented in the README. Bypassing either one is in scope.
@@ -245,138 +245,146 @@ export interface ResetOptions {
245
245
  /** New background color */
246
246
  backgroundColor?: string;
247
247
  }
248
- export declare const PlatformSchema: z.ZodEnum<["instagram", "instagram-story", "tiktok", "youtube", "youtube-thumbnail", "twitter", "linkedin", "web", "print-a4", "print-letter"]>;
249
- export declare const ExportFormatSchema: z.ZodEnum<["svg", "png", "gif", "mp4", "webm", "pdf"]>;
250
- export declare const ScreenshotPolicySchema: z.ZodEnum<["none", "on_error", "on_complete", "on_request"]>;
248
+ export declare const PlatformSchema: z.ZodEnum<{
249
+ instagram: "instagram";
250
+ "instagram-story": "instagram-story";
251
+ tiktok: "tiktok";
252
+ youtube: "youtube";
253
+ "youtube-thumbnail": "youtube-thumbnail";
254
+ twitter: "twitter";
255
+ linkedin: "linkedin";
256
+ web: "web";
257
+ "print-a4": "print-a4";
258
+ "print-letter": "print-letter";
259
+ }>;
260
+ export declare const ExportFormatSchema: z.ZodEnum<{
261
+ svg: "svg";
262
+ png: "png";
263
+ gif: "gif";
264
+ mp4: "mp4";
265
+ webm: "webm";
266
+ pdf: "pdf";
267
+ }>;
268
+ export declare const ScreenshotPolicySchema: z.ZodEnum<{
269
+ none: "none";
270
+ on_error: "on_error";
271
+ on_complete: "on_complete";
272
+ on_request: "on_request";
273
+ }>;
251
274
  export declare const JobOptionsSchema: z.ZodObject<{
252
275
  name: z.ZodOptional<z.ZodString>;
253
276
  headless: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
254
- screenshotPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "on_error", "on_complete", "on_request"]>>>;
255
- canvasPreset: z.ZodOptional<z.ZodEnum<["instagram", "instagram-story", "tiktok", "youtube", "youtube-thumbnail", "twitter", "linkedin", "web", "print-a4", "print-letter"]>>;
277
+ screenshotPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
278
+ none: "none";
279
+ on_error: "on_error";
280
+ on_complete: "on_complete";
281
+ on_request: "on_request";
282
+ }>>>;
283
+ canvasPreset: z.ZodOptional<z.ZodEnum<{
284
+ instagram: "instagram";
285
+ "instagram-story": "instagram-story";
286
+ tiktok: "tiktok";
287
+ youtube: "youtube";
288
+ "youtube-thumbnail": "youtube-thumbnail";
289
+ twitter: "twitter";
290
+ linkedin: "linkedin";
291
+ web: "web";
292
+ "print-a4": "print-a4";
293
+ "print-letter": "print-letter";
294
+ }>>;
256
295
  canvasSize: z.ZodOptional<z.ZodObject<{
257
296
  width: z.ZodNumber;
258
297
  height: z.ZodNumber;
259
- }, "strip", z.ZodTypeAny, {
260
- width: number;
261
- height: number;
262
- }, {
263
- width: number;
264
- height: number;
265
- }>>;
298
+ }, z.core.$strip>>;
266
299
  backgroundColor: z.ZodOptional<z.ZodString>;
267
- }, "strip", z.ZodTypeAny, {
268
- headless: boolean;
269
- screenshotPolicy: "none" | "on_error" | "on_complete" | "on_request";
270
- name?: string | undefined;
271
- backgroundColor?: string | undefined;
272
- canvasPreset?: "instagram" | "instagram-story" | "tiktok" | "youtube" | "youtube-thumbnail" | "twitter" | "linkedin" | "web" | "print-a4" | "print-letter" | undefined;
273
- canvasSize?: {
274
- width: number;
275
- height: number;
276
- } | undefined;
277
- }, {
278
- name?: string | undefined;
279
- backgroundColor?: string | undefined;
280
- headless?: boolean | undefined;
281
- screenshotPolicy?: "none" | "on_error" | "on_complete" | "on_request" | undefined;
282
- canvasPreset?: "instagram" | "instagram-story" | "tiktok" | "youtube" | "youtube-thumbnail" | "twitter" | "linkedin" | "web" | "print-a4" | "print-letter" | undefined;
283
- canvasSize?: {
284
- width: number;
285
- height: number;
286
- } | undefined;
300
+ }, z.core.$strip>;
301
+ export declare const BatchOperationTypeSchema: z.ZodEnum<{
302
+ canvas: "canvas";
303
+ create: "create";
304
+ generator: "generator";
305
+ animate: "animate";
306
+ modify: "modify";
307
+ delete: "delete";
308
+ relation: "relation";
287
309
  }>;
288
- export declare const BatchOperationTypeSchema: z.ZodEnum<["create", "modify", "delete", "animate", "relation", "canvas", "generator"]>;
289
310
  export declare const BatchOperationSchema: z.ZodObject<{
290
- type: z.ZodEnum<["create", "modify", "delete", "animate", "relation", "canvas", "generator"]>;
311
+ type: z.ZodEnum<{
312
+ canvas: "canvas";
313
+ create: "create";
314
+ generator: "generator";
315
+ animate: "animate";
316
+ modify: "modify";
317
+ delete: "delete";
318
+ relation: "relation";
319
+ }>;
291
320
  itemType: z.ZodOptional<z.ZodString>;
292
321
  params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
293
322
  sourceRef: z.ZodOptional<z.ZodString>;
294
323
  targetRef: z.ZodOptional<z.ZodString>;
295
- }, "strip", z.ZodTypeAny, {
296
- params: Record<string, unknown>;
297
- type: "canvas" | "create" | "generator" | "animate" | "modify" | "delete" | "relation";
298
- itemType?: string | undefined;
299
- sourceRef?: string | undefined;
300
- targetRef?: string | undefined;
301
- }, {
302
- params: Record<string, unknown>;
303
- type: "canvas" | "create" | "generator" | "animate" | "modify" | "delete" | "relation";
304
- itemType?: string | undefined;
305
- sourceRef?: string | undefined;
306
- targetRef?: string | undefined;
307
- }>;
324
+ }, z.core.$strip>;
308
325
  export declare const BatchExecuteInputSchema: z.ZodObject<{
309
326
  operations: z.ZodArray<z.ZodObject<{
310
- type: z.ZodEnum<["create", "modify", "delete", "animate", "relation", "canvas", "generator"]>;
327
+ type: z.ZodEnum<{
328
+ canvas: "canvas";
329
+ create: "create";
330
+ generator: "generator";
331
+ animate: "animate";
332
+ modify: "modify";
333
+ delete: "delete";
334
+ relation: "relation";
335
+ }>;
311
336
  itemType: z.ZodOptional<z.ZodString>;
312
337
  params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
313
338
  sourceRef: z.ZodOptional<z.ZodString>;
314
339
  targetRef: z.ZodOptional<z.ZodString>;
315
- }, "strip", z.ZodTypeAny, {
316
- params: Record<string, unknown>;
317
- type: "canvas" | "create" | "generator" | "animate" | "modify" | "delete" | "relation";
318
- itemType?: string | undefined;
319
- sourceRef?: string | undefined;
320
- targetRef?: string | undefined;
321
- }, {
322
- params: Record<string, unknown>;
323
- type: "canvas" | "create" | "generator" | "animate" | "modify" | "delete" | "relation";
324
- itemType?: string | undefined;
325
- sourceRef?: string | undefined;
326
- targetRef?: string | undefined;
327
- }>, "many">;
340
+ }, z.core.$strip>>;
328
341
  atomic: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
329
- }, "strip", z.ZodTypeAny, {
330
- operations: {
331
- params: Record<string, unknown>;
332
- type: "canvas" | "create" | "generator" | "animate" | "modify" | "delete" | "relation";
333
- itemType?: string | undefined;
334
- sourceRef?: string | undefined;
335
- targetRef?: string | undefined;
336
- }[];
337
- atomic: boolean;
338
- }, {
339
- operations: {
340
- params: Record<string, unknown>;
341
- type: "canvas" | "create" | "generator" | "animate" | "modify" | "delete" | "relation";
342
- itemType?: string | undefined;
343
- sourceRef?: string | undefined;
344
- targetRef?: string | undefined;
345
- }[];
346
- atomic?: boolean | undefined;
347
- }>;
342
+ }, z.core.$strip>;
348
343
  export declare const ResetOptionsSchema: z.ZodObject<{
349
344
  preserveCanvasSize: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
350
345
  preserveBackground: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
351
- canvasPreset: z.ZodOptional<z.ZodEnum<["instagram", "instagram-story", "tiktok", "youtube", "youtube-thumbnail", "twitter", "linkedin", "web", "print-a4", "print-letter"]>>;
346
+ canvasPreset: z.ZodOptional<z.ZodEnum<{
347
+ instagram: "instagram";
348
+ "instagram-story": "instagram-story";
349
+ tiktok: "tiktok";
350
+ youtube: "youtube";
351
+ "youtube-thumbnail": "youtube-thumbnail";
352
+ twitter: "twitter";
353
+ linkedin: "linkedin";
354
+ web: "web";
355
+ "print-a4": "print-a4";
356
+ "print-letter": "print-letter";
357
+ }>>;
352
358
  backgroundColor: z.ZodOptional<z.ZodString>;
353
- }, "strip", z.ZodTypeAny, {
354
- preserveCanvasSize: boolean;
355
- preserveBackground: boolean;
356
- backgroundColor?: string | undefined;
357
- canvasPreset?: "instagram" | "instagram-story" | "tiktok" | "youtube" | "youtube-thumbnail" | "twitter" | "linkedin" | "web" | "print-a4" | "print-letter" | undefined;
358
- }, {
359
- backgroundColor?: string | undefined;
360
- canvasPreset?: "instagram" | "instagram-story" | "tiktok" | "youtube" | "youtube-thumbnail" | "twitter" | "linkedin" | "web" | "print-a4" | "print-letter" | undefined;
361
- preserveCanvasSize?: boolean | undefined;
362
- preserveBackground?: boolean | undefined;
363
- }>;
359
+ }, z.core.$strip>;
364
360
  export declare const SmartExportOptionsSchema: z.ZodObject<{
365
- platform: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodEnum<["instagram", "instagram-story", "tiktok", "youtube", "youtube-thumbnail", "twitter", "linkedin", "web", "print-a4", "print-letter"]>, z.ZodLiteral<"auto">]>>>;
366
- format: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodEnum<["svg", "png", "gif", "mp4", "webm", "pdf"]>, z.ZodLiteral<"auto">]>>>;
367
- quality: z.ZodDefault<z.ZodOptional<z.ZodEnum<["draft", "standard", "high"]>>>;
361
+ platform: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
362
+ instagram: "instagram";
363
+ "instagram-story": "instagram-story";
364
+ tiktok: "tiktok";
365
+ youtube: "youtube";
366
+ "youtube-thumbnail": "youtube-thumbnail";
367
+ twitter: "twitter";
368
+ linkedin: "linkedin";
369
+ web: "web";
370
+ "print-a4": "print-a4";
371
+ "print-letter": "print-letter";
372
+ }>, z.ZodLiteral<"auto">]>>>;
373
+ format: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
374
+ svg: "svg";
375
+ png: "png";
376
+ gif: "gif";
377
+ mp4: "mp4";
378
+ webm: "webm";
379
+ pdf: "pdf";
380
+ }>, z.ZodLiteral<"auto">]>>>;
381
+ quality: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
382
+ high: "high";
383
+ standard: "standard";
384
+ draft: "draft";
385
+ }>>>;
368
386
  includeRecommendations: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
369
- }, "strip", z.ZodTypeAny, {
370
- quality: "high" | "standard" | "draft";
371
- format: "auto" | "svg" | "png" | "gif" | "mp4" | "webm" | "pdf";
372
- platform: "auto" | "instagram" | "instagram-story" | "tiktok" | "youtube" | "youtube-thumbnail" | "twitter" | "linkedin" | "web" | "print-a4" | "print-letter";
373
- includeRecommendations: boolean;
374
- }, {
375
- quality?: "high" | "standard" | "draft" | undefined;
376
- format?: "auto" | "svg" | "png" | "gif" | "mp4" | "webm" | "pdf" | undefined;
377
- platform?: "auto" | "instagram" | "instagram-story" | "tiktok" | "youtube" | "youtube-thumbnail" | "twitter" | "linkedin" | "web" | "print-a4" | "print-letter" | undefined;
378
- includeRecommendations?: boolean | undefined;
379
- }>;
387
+ }, z.core.$strip>;
380
388
  export type JobOptionsInput = z.infer<typeof JobOptionsSchema>;
381
389
  export type BatchOperationInput = z.infer<typeof BatchOperationSchema>;
382
390
  export type BatchExecuteInput = z.infer<typeof BatchExecuteInputSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
@@ -118,7 +118,7 @@ export const BatchOperationTypeSchema = z.enum([
118
118
  export const BatchOperationSchema = z.object({
119
119
  type: BatchOperationTypeSchema,
120
120
  itemType: z.string().optional().describe('Item type for create operations'),
121
- params: z.record(z.unknown()).describe('Operation parameters'),
121
+ params: z.record(z.string(), z.unknown()).describe('Operation parameters'),
122
122
  sourceRef: z.string().optional().describe('Reference to source item ($0, $1, etc.)'),
123
123
  targetRef: z.string().optional().describe('Reference to target item'),
124
124
  }).describe('Single batch operation');