@pinepaper.studio/mcp-server 1.5.5 → 1.6.0
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/README.de.md +71 -0
- package/README.es.md +71 -0
- package/README.fr.md +71 -0
- package/README.hi.md +71 -0
- package/README.ja.md +71 -0
- package/README.ko.md +71 -0
- package/README.md +513 -272
- package/README.pt-BR.md +71 -0
- package/README.zh-CN.md +71 -0
- package/assets/easing-splashes.svg +152 -0
- package/assets/equation-path.svg +77 -0
- package/assets/hero.svg +126 -0
- package/assets/live-badge.svg +62 -0
- package/assets/poster-sunburst.svg +106 -0
- package/dist/__tests__/fixtures/mock-relations.d.ts +48 -0
- package/dist/__tests__/fixtures/mock-relations.d.ts.map +1 -1
- package/dist/__tests__/fixtures/mock-relations.js +31 -0
- package/dist/__tests__/fixtures/mock-relations.js.map +1 -1
- package/dist/agent/types.d.ts +6 -6
- package/dist/browser/puppeteer-controller.d.ts +34 -0
- package/dist/browser/puppeteer-controller.d.ts.map +1 -1
- package/dist/browser/puppeteer-controller.js +116 -5
- package/dist/browser/puppeteer-controller.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/ontology/index.d.ts +2 -0
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +2 -0
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/ontology-compiler.d.ts +78 -0
- package/dist/ontology/ontology-compiler.d.ts.map +1 -0
- package/dist/ontology/ontology-compiler.js +235 -0
- package/dist/ontology/ontology-compiler.js.map +1 -0
- package/dist/ontology/ontology-validator.d.ts +103 -0
- package/dist/ontology/ontology-validator.d.ts.map +1 -0
- package/dist/ontology/ontology-validator.js +573 -0
- package/dist/ontology/ontology-validator.js.map +1 -0
- package/dist/ontology/types.d.ts +1 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validator.d.ts +6 -0
- package/dist/ontology/validator.d.ts.map +1 -1
- package/dist/ontology/validator.js +34 -5
- package/dist/ontology/validator.js.map +1 -1
- package/dist/ontology/vocabulary.d.ts.map +1 -1
- package/dist/ontology/vocabulary.js +91 -3
- package/dist/ontology/vocabulary.js.map +1 -1
- package/dist/tools/definitions.d.ts +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +978 -27
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers/maps.d.ts.map +1 -1
- package/dist/tools/handlers/maps.js +54 -1
- package/dist/tools/handlers/maps.js.map +1 -1
- package/dist/tools/handlers/ontology.d.ts.map +1 -1
- package/dist/tools/handlers/ontology.js +15 -3
- package/dist/tools/handlers/ontology.js.map +1 -1
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +137 -6
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/minimal-descriptions.d.ts.map +1 -1
- package/dist/tools/minimal-descriptions.js +20 -1
- package/dist/tools/minimal-descriptions.js.map +1 -1
- package/dist/tools/toolkits.d.ts.map +1 -1
- package/dist/tools/toolkits.js +25 -2
- package/dist/tools/toolkits.js.map +1 -1
- package/dist/types/code-generator.d.ts +190 -2
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +1068 -30
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +2726 -116
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +594 -4
- package/dist/types/schemas.js.map +1 -1
- package/manifest.json +299 -71
- package/package.json +14 -3
package/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "pinepaper-mcp",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.6.0",
|
|
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).",
|
|
@@ -79,6 +79,26 @@
|
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
"tools": [
|
|
82
|
+
{
|
|
83
|
+
"name": "pinepaper_set_background_color",
|
|
84
|
+
"description": "Set the canvas background color"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "pinepaper_set_canvas_size",
|
|
88
|
+
"description": "Set canvas dimensions"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"name": "pinepaper_get_canvas_size",
|
|
92
|
+
"description": "Get current canvas dimensions"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "pinepaper_clear_canvas",
|
|
96
|
+
"description": "Remove all items from the canvas"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"name": "pinepaper_refresh_page",
|
|
100
|
+
"description": "Refresh the PinePaper page"
|
|
101
|
+
},
|
|
82
102
|
{
|
|
83
103
|
"name": "pinepaper_create_item",
|
|
84
104
|
"description": "Create text, shapes, or graphics on the PinePaper canvas"
|
|
@@ -99,6 +119,26 @@
|
|
|
99
119
|
"name": "pinepaper_create_diagonal_stripes",
|
|
100
120
|
"description": "Create a diagonal stripe pattern"
|
|
101
121
|
},
|
|
122
|
+
{
|
|
123
|
+
"name": "pinepaper_import_svg",
|
|
124
|
+
"description": "Import SVG content onto the canvas"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "pinepaper_import_mermaid",
|
|
128
|
+
"description": "Import a Mermaid diagram (flowchart|graph|stateDiagram|sequenceDiagram|erDiagram|classDiagram). mermaidText, autoLayout, clearExisting."
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"name": "pinepaper_import_image",
|
|
132
|
+
"description": "Import a raster image (PNG/JPG/WebP) onto the canvas."
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "pinepaper_search_assets",
|
|
136
|
+
"description": "Search for SVG assets from open repositories (SVGRepo, OpenClipart, Iconify, FontAwesome)"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"name": "pinepaper_import_asset",
|
|
140
|
+
"description": "Import and place an asset from search results onto the canvas"
|
|
141
|
+
},
|
|
102
142
|
{
|
|
103
143
|
"name": "pinepaper_batch_create",
|
|
104
144
|
"description": "Create multiple items at once with single history save"
|
|
@@ -111,6 +151,74 @@
|
|
|
111
151
|
"name": "pinepaper_create_grid",
|
|
112
152
|
"description": "Create a grid of lines on the canvas"
|
|
113
153
|
},
|
|
154
|
+
{
|
|
155
|
+
"name": "pinepaper_geometry",
|
|
156
|
+
"description": "Exact geometry construction (polygon vertices, intersections, circumcircle, tangents); optionally creates an item from the result. {operation, args, createAs?}"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"name": "pinepaper_equation_path",
|
|
160
|
+
"description": "Create a path item from a math equation (deterministic, Expression IR). kind: function|parametric|fourier|preset (spiral/rose/lissajous/astroid/heart/spirograph). {kind, expr|xExpr/yExpr|harmonics|preset, min, max, samples, scale, x, y, style}"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"name": "pinepaper_event",
|
|
164
|
+
"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)."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "pinepaper_construction_sequence",
|
|
168
|
+
"description": "Reveal a figure step by step on the timeline (build/play/clear/list). {action, steps?, stepDuration?}"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "pinepaper_group",
|
|
172
|
+
"description": "Group a composite object's parts into ONE entity, ungroup, or break_apart an imported SVG into movable parts. {action: group|ungroup|break_apart, itemIds?, itemId?, groupName?, groupId?}"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "pinepaper_camera_director",
|
|
176
|
+
"description": "Cinematic camera walkthrough from a shot list (auto: one shot per item, or explicit shots). Compiles to one camera_animates track. {action: auto|shots, shots?, order?, establishing?, loop?}"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "pinepaper_detect_objects",
|
|
180
|
+
"description": "On-device image detection: DETR 80-class, or queries:[…] open-vocabulary (OWL-ViT). asNodes:true → image-anchored design nodes. {itemId?, threshold?, asNodes?, queries?}"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"name": "pinepaper_extract_object",
|
|
184
|
+
"description": "Detect + crop the best-matching object out of an imported image into a new item. {label?, itemId?, x?, y?, threshold?}"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "pinepaper_arrange",
|
|
188
|
+
"description": "Change an item's z-order (stacking). {itemId, action: front|back|forward|backward}"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "pinepaper_validate_scene",
|
|
192
|
+
"description": "Audit the live canvas (dangling refs, unknown types/props, keyframes, cycles) → structured diagnostics. Optional ops[] to pre-validate proposed mutations."
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "pinepaper_capture_frames",
|
|
196
|
+
"description": "Deterministic frame capture at given times (seeded random). Returns per-frame hashes (or data URLs) to verify reproducibility/motion. {times, seed?, includeDataUrls?}"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "pinepaper_media",
|
|
200
|
+
"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?, ...}"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"name": "pinepaper_crop_image",
|
|
204
|
+
"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?}"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "pinepaper_chroma_key",
|
|
208
|
+
"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?}"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"name": "pinepaper_rigging",
|
|
212
|
+
"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)."
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "pinepaper_instantiate_ontology",
|
|
216
|
+
"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}."
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"name": "pinepaper_lint_scene",
|
|
220
|
+
"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?}"
|
|
221
|
+
},
|
|
114
222
|
{
|
|
115
223
|
"name": "pinepaper_add_relation",
|
|
116
224
|
"description": "Add animation relations between items (orbits, follows, attached_to)"
|
|
@@ -123,6 +231,14 @@
|
|
|
123
231
|
"name": "pinepaper_query_relations",
|
|
124
232
|
"description": "Query existing relations for an item"
|
|
125
233
|
},
|
|
234
|
+
{
|
|
235
|
+
"name": "pinepaper_register_custom_relation",
|
|
236
|
+
"description": "Register a custom relation type with JavaScript update function."
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"name": "pinepaper_execute_custom_code",
|
|
240
|
+
"description": "Execute arbitrary JavaScript in the PinePaper browser context."
|
|
241
|
+
},
|
|
126
242
|
{
|
|
127
243
|
"name": "pinepaper_animate",
|
|
128
244
|
"description": "Apply simple loop animations to items"
|
|
@@ -136,96 +252,112 @@
|
|
|
136
252
|
"description": "Control animation playback"
|
|
137
253
|
},
|
|
138
254
|
{
|
|
139
|
-
"name": "
|
|
140
|
-
"description": "
|
|
255
|
+
"name": "pinepaper_apply_animated_mask",
|
|
256
|
+
"description": "Apply mask. itemId, preset: wipeLeft|wipeRight|iris|irisOut|star|heart|curtainH|curtainV|cinematic|diagonalWipe|revealUp|revealDown."
|
|
141
257
|
},
|
|
142
258
|
{
|
|
143
|
-
"name": "
|
|
144
|
-
"description": "
|
|
259
|
+
"name": "pinepaper_apply_custom_mask",
|
|
260
|
+
"description": "Apply a custom mask shape to an item."
|
|
145
261
|
},
|
|
146
262
|
{
|
|
147
|
-
"name": "
|
|
148
|
-
"description": "
|
|
263
|
+
"name": "pinepaper_remove_mask",
|
|
264
|
+
"description": "Remove mask from an item."
|
|
149
265
|
},
|
|
150
266
|
{
|
|
151
|
-
"name": "
|
|
152
|
-
"description": "
|
|
267
|
+
"name": "pinepaper_get_animatable_properties",
|
|
268
|
+
"description": "List animatable properties for an item type."
|
|
153
269
|
},
|
|
154
270
|
{
|
|
155
|
-
"name": "
|
|
156
|
-
"description": "
|
|
271
|
+
"name": "pinepaper_get_available_easings",
|
|
272
|
+
"description": "List available easing functions."
|
|
157
273
|
},
|
|
158
274
|
{
|
|
159
|
-
"name": "
|
|
160
|
-
"description": "
|
|
275
|
+
"name": "pinepaper_get_mask_types",
|
|
276
|
+
"description": "List available mask types."
|
|
161
277
|
},
|
|
162
278
|
{
|
|
163
|
-
"name": "
|
|
164
|
-
"description": "
|
|
279
|
+
"name": "pinepaper_get_mask_animations",
|
|
280
|
+
"description": "List available mask animation presets."
|
|
165
281
|
},
|
|
166
282
|
{
|
|
167
|
-
"name": "
|
|
168
|
-
"description": "
|
|
283
|
+
"name": "pinepaper_camera_animate",
|
|
284
|
+
"description": "Camera keyframes. Per-kf: zoom, focus ([x,y]|id|{item,offset}), pitch, yaw, easing; curved via pathOut/pathIn or pathMode:arc+pivot / custom+path."
|
|
169
285
|
},
|
|
170
286
|
{
|
|
171
|
-
"name": "
|
|
172
|
-
"description": "
|
|
287
|
+
"name": "pinepaper_camera",
|
|
288
|
+
"description": "Camera control. action: zoom|pan|move_to|reset|stop|state|fit_view. zoom: direction in|out, level. pan: direction or {x,y}, amount. move_to: {x,y,zoom}. duration default 0.5s."
|
|
173
289
|
},
|
|
174
290
|
{
|
|
175
|
-
"name": "
|
|
176
|
-
"description": "
|
|
291
|
+
"name": "pinepaper_create_scene",
|
|
292
|
+
"description": "Create a complete scene with multiple items, relations, and animations in a single operation"
|
|
177
293
|
},
|
|
178
294
|
{
|
|
179
|
-
"name": "
|
|
180
|
-
"description": "
|
|
295
|
+
"name": "pinepaper_manage_scenes",
|
|
296
|
+
"description": "Scene CRUD. action: save|load|list|delete|rename|duplicate|reorder|info|export|import. name, sceneId, transition: none|fade|zoom-in|zoom-out."
|
|
181
297
|
},
|
|
182
298
|
{
|
|
183
|
-
"name": "
|
|
184
|
-
"description": "
|
|
299
|
+
"name": "pinepaper_scene_playback",
|
|
300
|
+
"description": "Scene chain playback. action: create_chain|play|pause|resume|stop|toggle_loop|jump. sceneIds, defaultDuration (secs), loop."
|
|
185
301
|
},
|
|
186
302
|
{
|
|
187
|
-
"name": "
|
|
188
|
-
"description": "
|
|
303
|
+
"name": "pinepaper_selection",
|
|
304
|
+
"description": "Manage selection. action: select|select_all|deselect_all|get|delete_selected. itemIds, mode: replace|add|remove."
|
|
189
305
|
},
|
|
190
306
|
{
|
|
191
|
-
"name": "
|
|
192
|
-
"description": "
|
|
307
|
+
"name": "pinepaper_transform",
|
|
308
|
+
"description": "Transform items. action: nudge|flip|reorder. dx,dy. direction: horizontal|vertical. order: bringToFront|sendToBack|moveUp|moveDown."
|
|
193
309
|
},
|
|
194
310
|
{
|
|
195
|
-
"name": "
|
|
196
|
-
"description": "
|
|
311
|
+
"name": "pinepaper_history",
|
|
312
|
+
"description": "Undo/redo. action: undo|redo|get_state."
|
|
197
313
|
},
|
|
198
314
|
{
|
|
199
|
-
"name": "
|
|
200
|
-
"description": "
|
|
315
|
+
"name": "pinepaper_image_filter",
|
|
316
|
+
"description": "GPU image filters. action: apply|chain. itemId, filterName, params, filters[]."
|
|
201
317
|
},
|
|
202
318
|
{
|
|
203
|
-
"name": "
|
|
204
|
-
"description": "
|
|
319
|
+
"name": "pinepaper_lasso",
|
|
320
|
+
"description": "Lasso selection. action: activate|apply. itemId."
|
|
205
321
|
},
|
|
206
322
|
{
|
|
207
|
-
"name": "
|
|
208
|
-
"description": "
|
|
323
|
+
"name": "pinepaper_cutout_style",
|
|
324
|
+
"description": "Style cutouts. action: apply|list. itemId, preset, options."
|
|
209
325
|
},
|
|
210
326
|
{
|
|
211
|
-
"name": "
|
|
212
|
-
"description": "
|
|
327
|
+
"name": "pinepaper_precomp",
|
|
328
|
+
"description": "Nested compositions. action: create|add|remove. itemIds, name, precompId, itemId."
|
|
213
329
|
},
|
|
214
330
|
{
|
|
215
|
-
"name": "
|
|
216
|
-
"description": "
|
|
331
|
+
"name": "pinepaper_background",
|
|
332
|
+
"description": "Background. action: set|clear|get. mode: color|pattern|generator."
|
|
217
333
|
},
|
|
218
334
|
{
|
|
219
|
-
"name": "
|
|
220
|
-
"description": "
|
|
335
|
+
"name": "pinepaper_query",
|
|
336
|
+
"description": "Canvas queries. action: get_by_id|hit_test|is_empty. itemId, x, y, tolerance."
|
|
221
337
|
},
|
|
222
338
|
{
|
|
223
|
-
"name": "
|
|
224
|
-
"description": "
|
|
339
|
+
"name": "pinepaper_deform",
|
|
340
|
+
"description": "Vertex deformation. action: apply|trigger|remove. itemId, preset: fold|squeeze|squash|twist|ripple|wave|breathe|wobble..., phase, amplitude."
|
|
225
341
|
},
|
|
226
342
|
{
|
|
227
|
-
"name": "
|
|
228
|
-
"description": "
|
|
343
|
+
"name": "pinepaper_sprite_sheet",
|
|
344
|
+
"description": "Sprite sheets. action: generate|play|export. skeletonId, spriteSheetId, poses, animations, format."
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"name": "pinepaper_interaction",
|
|
348
|
+
"description": "Physics behaviors. action: add_behavior|remove_behavior|trigger_action|get_state. behaviorType: repel|attract|follow|orbit|slingshot."
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"name": "pinepaper_export_widget",
|
|
352
|
+
"description": "Export scene as pp:PinePaper ontology JSON. download, filename, includeInteractions, minify."
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"name": "pinepaper_export_widget_html",
|
|
356
|
+
"description": "Export scene as self-contained HTML with tree-shaken runtime. title, download."
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"name": "pinepaper_apply_template",
|
|
360
|
+
"description": "Apply pre-built template (templateId), or list available (listOnly:true). 13 categories. DESTRUCTIVE: replaces canvas."
|
|
229
361
|
},
|
|
230
362
|
{
|
|
231
363
|
"name": "pinepaper_create_diagram_shape",
|
|
@@ -263,6 +395,98 @@
|
|
|
263
395
|
"name": "pinepaper_diagram_mode",
|
|
264
396
|
"description": "Control diagram mode for interactive editing (activate, deactivate, set tool mode)"
|
|
265
397
|
},
|
|
398
|
+
{
|
|
399
|
+
"name": "pinepaper_map",
|
|
400
|
+
"description": "Map load + viewport. action: load|pan|zoom|export_config|import_custom. mapId: usa|world|worldHighRes|<custom>."
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"name": "pinepaper_map_regions",
|
|
404
|
+
"description": "Map region styling/selection. action: highlight|unhighlight|apply_colors|add_marker|add_labels|get_at_point|select|deselect|get_highlighted."
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"name": "pinepaper_map_animation",
|
|
408
|
+
"description": "Map region animation. action: animate_regions|animate_wave|stop|get_animated. duration, loop."
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"name": "pinepaper_map_data",
|
|
412
|
+
"description": "Map import/export. action: export_csv|import_csv|export_geojson|export_original_geojson|source_info."
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"name": "pinepaper_globe",
|
|
416
|
+
"description": "Globe mode + world tour. action: enable|rotate_to|spin|world_tour|stop_tour|pin_item|tour_item. world_tour needs regions or coords."
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
"name": "pinepaper_font",
|
|
420
|
+
"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)."
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"name": "pinepaper_create_letter_collage",
|
|
424
|
+
"description": "Create stylized text with per-letter customization (Wordle, magazine cutout, gradient styles)"
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"name": "pinepaper_animate_letter_collage",
|
|
428
|
+
"description": "Apply staggered animation to letter collage letters"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"name": "pinepaper_execute_generator",
|
|
432
|
+
"description": "Run procedural background generators"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"name": "pinepaper_list_generators",
|
|
436
|
+
"description": "List available background generators"
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"name": "pinepaper_apply_effect",
|
|
440
|
+
"description": "Apply visual effects to items"
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"name": "pinepaper_add_filter",
|
|
444
|
+
"description": "Add a visual filter effect to the canvas"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"name": "pinepaper_get_items",
|
|
448
|
+
"description": "Get all items on the canvas"
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"name": "pinepaper_get_relation_stats",
|
|
452
|
+
"description": "Get statistics about relations"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"name": "pinepaper_export_svg",
|
|
456
|
+
"description": "Export canvas as animated SVG"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"name": "pinepaper_export_training_data",
|
|
460
|
+
"description": "Export instruction/code pairs for LLM training"
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"name": "pinepaper_export_scene",
|
|
464
|
+
"description": "Export scene definition as JSON."
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"name": "pinepaper_browser_connect",
|
|
468
|
+
"description": "Connect to PinePaper Studio in browser"
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"name": "pinepaper_browser_disconnect",
|
|
472
|
+
"description": "Disconnect from browser"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"name": "pinepaper_browser_screenshot",
|
|
476
|
+
"description": "Take a screenshot of the canvas"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
"name": "pinepaper_browser_status",
|
|
480
|
+
"description": "Check browser connection status"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"name": "pinepaper_get_performance_metrics",
|
|
484
|
+
"description": "Get execution timing metrics and performance statistics"
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
"name": "pinepaper_diagnostic_report",
|
|
488
|
+
"description": "Generate diagnostic report with token budget analysis."
|
|
489
|
+
},
|
|
266
490
|
{
|
|
267
491
|
"name": "pinepaper_agent_start_job",
|
|
268
492
|
"description": "Start an agent job session for batch content creation workflows"
|
|
@@ -288,52 +512,56 @@
|
|
|
288
512
|
"description": "Analyze canvas content for export recommendations"
|
|
289
513
|
},
|
|
290
514
|
{
|
|
291
|
-
"name": "
|
|
292
|
-
"description": "
|
|
515
|
+
"name": "pinepaper_p5_draw",
|
|
516
|
+
"description": "Execute p5.js-style drawing code on the canvas (subset of p5.js API)"
|
|
293
517
|
},
|
|
294
518
|
{
|
|
295
|
-
"name": "
|
|
296
|
-
"description": "
|
|
519
|
+
"name": "pinepaper_register_item",
|
|
520
|
+
"description": "Register an existing Paper.js item in the PinePaper registry."
|
|
297
521
|
},
|
|
298
522
|
{
|
|
299
|
-
"name": "
|
|
300
|
-
"description": "
|
|
523
|
+
"name": "pinepaper_get_canvas_ontology",
|
|
524
|
+
"description": "Capture live canvas as compact pp: triples + item summary. Prefer over get_items for composition reasoning. maxItems, maxChildren, includeViewport."
|
|
301
525
|
},
|
|
302
526
|
{
|
|
303
|
-
"name": "
|
|
304
|
-
"description": "
|
|
527
|
+
"name": "pinepaper_analyze_design",
|
|
528
|
+
"description": "Analyze template definition → typed graph, patterns, math functions, semantics, fingerprint, JSON-LD."
|
|
305
529
|
},
|
|
306
530
|
{
|
|
307
|
-
"name": "
|
|
308
|
-
"description": "
|
|
531
|
+
"name": "pinepaper_validate_design",
|
|
532
|
+
"description": "Validate + score template definition. 5-dimension quality scoring: completeness, animation, semantics, composition, structure."
|
|
309
533
|
},
|
|
310
534
|
{
|
|
311
|
-
"name": "
|
|
312
|
-
"description": "
|
|
535
|
+
"name": "pinepaper_validate",
|
|
536
|
+
"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."
|
|
313
537
|
},
|
|
314
538
|
{
|
|
315
|
-
"name": "
|
|
316
|
-
"description": "
|
|
539
|
+
"name": "pinepaper_query_ontology",
|
|
540
|
+
"description": "Query design knowledge graph. query: list_types|list_edges|list_generators|list_effects|type_hierarchy|type_properties|animatable_properties|is_subtype|node_type|edge_type."
|
|
317
541
|
},
|
|
318
542
|
{
|
|
319
|
-
"name": "
|
|
320
|
-
"description": "
|
|
543
|
+
"name": "pinepaper_tool_guide",
|
|
544
|
+
"description": "Get detailed guidance for any tool, category, or the full AI Agent Guide"
|
|
321
545
|
},
|
|
322
546
|
{
|
|
323
|
-
"name": "
|
|
324
|
-
"description": "
|
|
547
|
+
"name": "pinepaper_set_toolkit",
|
|
548
|
+
"description": "Switch toolkit profile and/or verbosity level at runtime"
|
|
325
549
|
},
|
|
326
550
|
{
|
|
327
|
-
"name": "
|
|
328
|
-
"description": "
|
|
551
|
+
"name": "pinepaper_create_chart",
|
|
552
|
+
"description": "Charts. action: create|update|reconfigure|remove. chartType: bar|line|scatter|area. data, options, chartId. Bar opts: orient:\"horizontal\", labelArrangement: auto|slanted|vertical|truncate|wrap."
|
|
329
553
|
},
|
|
330
554
|
{
|
|
331
|
-
"name": "
|
|
332
|
-
"description": "
|
|
555
|
+
"name": "pinepaper_magic",
|
|
556
|
+
"description": "Auto-animation. action: animate|remix. mood: calm|professional|energetic|dramatic|whimsical. selectionOnly."
|
|
333
557
|
},
|
|
334
558
|
{
|
|
335
|
-
"name": "
|
|
336
|
-
"description": "
|
|
559
|
+
"name": "pinepaper_physics",
|
|
560
|
+
"description": "Rigid body sim. action: init|add_body|remove_body|apply_force|apply_impulse|set_velocity|get_state|create_ground|create_joint. gravity, bodyType, mass, friction."
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
"name": "pinepaper_measurement",
|
|
564
|
+
"description": "Rulers/grid. action: set_rulers|set_grid|get_dimensions|set_snap. enabled, itemId."
|
|
337
565
|
}
|
|
338
566
|
]
|
|
339
567
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pinepaper.studio/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
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",
|
|
@@ -36,7 +36,9 @@
|
|
|
36
36
|
"test:coverage": "bun test --coverage",
|
|
37
37
|
"lint": "eslint src/**/*.ts",
|
|
38
38
|
"typecheck": "tsc --noEmit",
|
|
39
|
-
"
|
|
39
|
+
"check:manifest": "bun scripts/check-manifest-tools.mjs",
|
|
40
|
+
"fix:manifest": "bun scripts/check-manifest-tools.mjs --fix",
|
|
41
|
+
"prepublishOnly": "bun run check:manifest && bun run build"
|
|
40
42
|
},
|
|
41
43
|
"keywords": [
|
|
42
44
|
"mcp",
|
|
@@ -74,6 +76,15 @@
|
|
|
74
76
|
"dist",
|
|
75
77
|
"manifest.json",
|
|
76
78
|
"README.md",
|
|
77
|
-
"LICENSE"
|
|
79
|
+
"LICENSE",
|
|
80
|
+
"assets",
|
|
81
|
+
"README.zh-CN.md",
|
|
82
|
+
"README.ja.md",
|
|
83
|
+
"README.ko.md",
|
|
84
|
+
"README.es.md",
|
|
85
|
+
"README.pt-BR.md",
|
|
86
|
+
"README.fr.md",
|
|
87
|
+
"README.de.md",
|
|
88
|
+
"README.hi.md"
|
|
78
89
|
]
|
|
79
90
|
}
|