@pinepaper.studio/mcp-server 1.6.2 → 1.6.4

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.
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": "0.3",
3
3
  "name": "pinepaper-mcp",
4
- "version": "1.6.2",
4
+ "version": "1.6.4",
5
5
  "display_name": "PinePaper Studio",
6
6
  "description": "Create animated graphics with AI using PinePaper Studio",
7
7
  "long_description": "PinePaper MCP Server enables Claude to create, animate, and export graphics through PinePaper Studio. Features include shape creation, relation-based animations (orbits, follows, attached_to), procedural generators, visual effects, SVG export with animations, asset search & import from 4 open repositories (500k+ icons), performance metrics tracking, diagram tools for flowcharts/UML/network diagrams with smart connectors and auto-layout, enhanced error messages with canvas context, Agent Flow Mode for content automation pipelines with batch operations and smart platform exports (Instagram, TikTok, YouTube, etc.), interactive triggers (click, hover, drag events), quiz/LMS integration with SCORM/xAPI support, Letter Collage for stylized text with per-letter customization (Wordle, magazine cutout, gradient styles with 24+ palettes), and canvas presets for social media platforms. Supports two execution modes: Puppeteer (live browser execution) and Code (generate code for manual paste).",
@@ -177,7 +177,7 @@
177
177
  },
178
178
  {
179
179
  "name": "pinepaper_event",
180
- "description": "Event channel for scene chains (S11). action:'create' {name}\u2192eventId, or 'pulse' {eventId}. Wire beats with on_event_fire_after/add_relation/set_color relations (event as sourceId)."
180
+ "description": "Event channel for scene chains (S11). action:'create' {name}→eventId, or 'pulse' {eventId}. Wire beats with on_event_fire_after/add_relation/set_color relations (event as sourceId)."
181
181
  },
182
182
  {
183
183
  "name": "pinepaper_construction_sequence",
@@ -193,7 +193,7 @@
193
193
  },
194
194
  {
195
195
  "name": "pinepaper_detect_objects",
196
- "description": "On-device image detection: DETR 80-class, or queries:[\u2026] open-vocabulary (OWL-ViT). asNodes:true \u2192 image-anchored design nodes. {itemId?, threshold?, asNodes?, queries?}"
196
+ "description": "On-device image detection: DETR 80-class, or queries:[…] open-vocabulary (OWL-ViT). asNodes:true → image-anchored design nodes. {itemId?, threshold?, asNodes?, queries?}"
197
197
  },
198
198
  {
199
199
  "name": "pinepaper_extract_object",
@@ -205,7 +205,7 @@
205
205
  },
206
206
  {
207
207
  "name": "pinepaper_validate_scene",
208
- "description": "Audit the live canvas (dangling refs, unknown types/props, keyframes, cycles) \u2192 structured diagnostics. Optional ops[] to pre-validate proposed mutations."
208
+ "description": "Audit the live canvas (dangling refs, unknown types/props, keyframes, cycles) → structured diagnostics. Optional ops[] to pre-validate proposed mutations."
209
209
  },
210
210
  {
211
211
  "name": "pinepaper_capture_frames",
@@ -215,6 +215,10 @@
215
215
  "name": "pinepaper_media",
216
216
  "description": "Video/audio on the canvas from a URL. action: upload_video|upload_audio|list|remove|set_playback_rate. Uploads are first-class items. {action, url?, id?, rate?, ...}"
217
217
  },
218
+ {
219
+ "name": "pinepaper_text_style",
220
+ "description": "Display text styles + variable fonts. action: apply_style (stacked-layer title, adopts the text id)|set_font_axes (weight/width/slant, animatable)|list_styles."
221
+ },
218
222
  {
219
223
  "name": "pinepaper_crop_image",
220
224
  "description": "One-shot crop of an image item to a canvas-coords rect (clamped; keeps the registry id). {itemId, rect: {x,y,width,height}, aspectRatio?}"
@@ -223,17 +227,33 @@
223
227
  "name": "pinepaper_chroma_key",
224
228
  "description": "One-shot green-screen background removal on an image item (keeps the registry id). Omit threshold/smoothing to auto-estimate. {itemId, color?, threshold?, smoothing?}"
225
229
  },
230
+ {
231
+ "name": "pinepaper_shatter_image",
232
+ "description": "Split a raster into a grid of tiles (inert until animated). Group adopts the original id. {itemId, pieces?|rows?+cols?, keepSource?}"
233
+ },
234
+ {
235
+ "name": "pinepaper_import_layered_character",
236
+ "description": "Import decomposer output (layer manifest + images) as role-bound parts; blink/smile work immediately. CHECK rolesWired>0. {info, images}"
237
+ },
238
+ {
239
+ "name": "pinepaper_game",
240
+ "description": "Game logic: pathfind (A* world-coords waypoints for moves_along_path)|create_tilemap (board data + grid + merged collision rects). Pure data, draws nothing."
241
+ },
242
+ {
243
+ "name": "pinepaper_world3d",
244
+ "description": "3D world under the canvas: create (forest|snowMountain|field|jungle)|describe (engine schema)|configure|add_actor (live sprites)|set_actor_pose|set_camera (follow|fixed|orbit)|objects|remove_world."
245
+ },
226
246
  {
227
247
  "name": "pinepaper_rigging",
228
248
  "description": "Skeletal rigging + animation. action: create_skeleton|add_bone|attach_item|create_ik_chain|add_pose_keyframe|set_target_path|save_pose|save_shape_key. Pose keyframes carry S12 breakdown controls (favor/breakdown/boneOffsets/movingHold)."
229
249
  },
230
250
  {
231
251
  "name": "pinepaper_instantiate_ontology",
232
- "description": "Compile a pp: JSON-LD design graph (typed nodes + structural edges like on_top_of) into a live scene \u2014 roots placed, the rest positioned by relations. {doc, canvas?, defaultGeometry?} \u2192 {itemIds, diagnostics}."
252
+ "description": "Compile a pp: JSON-LD design graph (typed nodes + structural edges like on_top_of) into a live scene — roots placed, the rest positioned by relations. {doc, canvas?, defaultGeometry?} → {itemIds, diagnostics}."
233
253
  },
234
254
  {
235
255
  "name": "pinepaper_lint_scene",
236
- "description": "Read-only relational-density audit of the live scene \u2192 {density, suggestions}. Flags coordinate-driven scenes and proposes structural relations for unrelated items already in position. {eps?, cap?}"
256
+ "description": "Read-only relational-density audit of the live scene → {density, suggestions}. Flags coordinate-driven scenes and proposes structural relations for unrelated items already in position. {eps?, cap?}"
237
257
  },
238
258
  {
239
259
  "name": "pinepaper_add_relation",
@@ -323,6 +343,42 @@
323
343
  "name": "pinepaper_transform",
324
344
  "description": "Transform items. action: nudge|flip|reorder. dx,dy. direction: horizontal|vertical. order: bringToFront|sendToBack|moveUp|moveDown."
325
345
  },
346
+ {
347
+ "name": "pinepaper_compose",
348
+ "description": "Arrange items into a named composition + film it. action: list_patterns (call first — each takes a set slot count) | apply {pattern, itemIds in slot order, treatment?} | list_treatments | set_treatment {rootId, treatment}. Wires relations, not coordinates."
349
+ },
350
+ {
351
+ "name": "pinepaper_brand_kit",
352
+ "description": "Apply a brand kit — colours, fonts and roles — across the scene."
353
+ },
354
+ {
355
+ "name": "pinepaper_component",
356
+ "description": "Reusable components with per-instance overrides — a master and its instances."
357
+ },
358
+ {
359
+ "name": "pinepaper_artboard",
360
+ "description": "Resize the artboard and control how items reflow when it changes."
361
+ },
362
+ {
363
+ "name": "pinepaper_comment",
364
+ "description": "Notes pinned to a place and a moment — review feedback on a scene."
365
+ },
366
+ {
367
+ "name": "pinepaper_provenance",
368
+ "description": "Where an item came from and what depends on it."
369
+ },
370
+ {
371
+ "name": "pinepaper_scene_diff",
372
+ "description": "What changed between two states of the scene — added, removed and modified items."
373
+ },
374
+ {
375
+ "name": "pinepaper_audio_beats",
376
+ "description": "Detect beats in audio and bake an item's animation onto them."
377
+ },
378
+ {
379
+ "name": "pinepaper_template_params",
380
+ "description": "Templates that take typed inputs — the same scene rebuilt for your text and colours."
381
+ },
326
382
  {
327
383
  "name": "pinepaper_history",
328
384
  "description": "Undo/redo. action: undo|redo|get_state."
@@ -433,7 +489,7 @@
433
489
  },
434
490
  {
435
491
  "name": "pinepaper_font",
436
- "description": "Font Studio. action: show_studio|set_name|create_glyph|create_space|remove_glyph|set_metrics|export|cleanup_path|\u2026 (16 actions; see pinepaper_tool_guide)."
492
+ "description": "Font Studio. action: show_studio|set_name|create_glyph|create_space|remove_glyph|set_metrics|export|cleanup_path|… (16 actions; see pinepaper_tool_guide)."
437
493
  },
438
494
  {
439
495
  "name": "pinepaper_create_letter_collage",
@@ -541,7 +597,7 @@
541
597
  },
542
598
  {
543
599
  "name": "pinepaper_analyze_design",
544
- "description": "Analyze template definition \u2192 typed graph, patterns, math functions, semantics, fingerprint, JSON-LD."
600
+ "description": "Analyze template definition → typed graph, patterns, math functions, semantics, fingerprint, JSON-LD."
545
601
  },
546
602
  {
547
603
  "name": "pinepaper_validate_design",
@@ -549,7 +605,7 @@
549
605
  },
550
606
  {
551
607
  "name": "pinepaper_validate",
552
- "description": "Semantic validation of the live scene/op \u2192 structured diagnostics {code, severity, message, fix}. mode:'scene'|'op'. Catches missing targets (+did-you-mean), bad params, cycles."
608
+ "description": "Semantic validation of the live scene/op → structured diagnostics {code, severity, message, fix}. mode:'scene'|'op'. Catches missing targets (+did-you-mean), bad params, cycles."
553
609
  },
554
610
  {
555
611
  "name": "pinepaper_query_ontology",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pinepaper.studio/mcp-server",
3
- "version": "1.6.2",
3
+ "version": "1.6.4",
4
4
  "mcpName": "io.github.pinepaper/mcp-server",
5
5
  "description": "MCP Server for PinePaper Studio - Create animated graphics with AI",
6
6
  "type": "module",
@@ -68,9 +68,9 @@
68
68
  "@types/bun": "latest",
69
69
  "@types/node": "^20.10.0",
70
70
  "typescript": "^5.3.0",
71
- "eslint": "^8.55.0",
72
- "@typescript-eslint/eslint-plugin": "^6.13.0",
73
- "@typescript-eslint/parser": "^6.13.0"
71
+ "eslint": "^10.8.1",
72
+ "@typescript-eslint/eslint-plugin": "^8.66.0",
73
+ "@typescript-eslint/parser": "^8.66.0"
74
74
  },
75
75
  "files": [
76
76
  "dist",