@writepanda/mcp 1.26.0 → 1.30.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/bin/server.mjs +73 -3
- package/package.json +1 -1
package/bin/server.mjs
CHANGED
|
@@ -517,12 +517,51 @@ const TOOLS = [
|
|
|
517
517
|
description:
|
|
518
518
|
"Optional anchor end (source ms) for ranged anchoring — the region's duration tracks the source-time span instead of preserving its visible duration.",
|
|
519
519
|
},
|
|
520
|
+
backdropBlurStrength: {
|
|
521
|
+
type: "number",
|
|
522
|
+
description:
|
|
523
|
+
"Frosted-glass backdrop blur sigma in 1080p-px. The compositor blurs the camera through the overlay's alpha shape — blur follows the visible content, not the bounding box. Editor's 'Glass' default is 24; 12 is subtle, 36+ is heavy. Pair with a transparent / glassMode render (motion_generate --transparent --glassMode OR motion_render_html --transparent) so the overlay has alpha for the mask to read. Omit or pass 0 to disable.",
|
|
524
|
+
},
|
|
525
|
+
backdropBlurTint: {
|
|
526
|
+
type: "string",
|
|
527
|
+
description:
|
|
528
|
+
"Optional CSS color string composited over the blurred backdrop. Editor default: 'rgba(10,10,10,0.18)' (slight dark glass). Only applied when backdropBlurStrength > 0.",
|
|
529
|
+
},
|
|
520
530
|
expectedRevision: { type: "number" },
|
|
521
531
|
},
|
|
522
532
|
required: ["file", "durationMs"],
|
|
523
533
|
},
|
|
524
534
|
command: "project.add-motion-graphic",
|
|
525
535
|
},
|
|
536
|
+
{
|
|
537
|
+
name: "project_set_overlay_backdrop_blur",
|
|
538
|
+
description:
|
|
539
|
+
"Set or clear the frosted-glass backdrop-blur effect on an existing media-overlay region. Compositor blurs the camera (or whatever is underneath) through the overlay's alpha mask, so blur follows visible content shape — not a rectangular halo. Works on any media overlay (image / video / motion graphic) but visible only when the overlay has alpha; opaque overlays show no effect. Pass strength=0 to disable.",
|
|
540
|
+
inputSchema: {
|
|
541
|
+
type: "object",
|
|
542
|
+
properties: {
|
|
543
|
+
id: { type: "string" },
|
|
544
|
+
path: { type: "string" },
|
|
545
|
+
regionId: {
|
|
546
|
+
type: "string",
|
|
547
|
+
description: "Media-overlay region id from project.read.",
|
|
548
|
+
},
|
|
549
|
+
strength: {
|
|
550
|
+
type: "number",
|
|
551
|
+
description:
|
|
552
|
+
"Blur sigma in 1080p-px. 0 disables. Editor default 24; 12 subtle; 36+ heavy.",
|
|
553
|
+
},
|
|
554
|
+
tint: {
|
|
555
|
+
type: "string",
|
|
556
|
+
description:
|
|
557
|
+
"Optional CSS color string. Editor default: 'rgba(10,10,10,0.18)'. Ignored when strength is 0.",
|
|
558
|
+
},
|
|
559
|
+
expectedRevision: { type: "number" },
|
|
560
|
+
},
|
|
561
|
+
required: ["regionId"],
|
|
562
|
+
},
|
|
563
|
+
command: "project.set-overlay-backdrop-blur",
|
|
564
|
+
},
|
|
526
565
|
{
|
|
527
566
|
name: "project_add_fx",
|
|
528
567
|
description: "Drop an FX overlay (bundled fxId or custom video URL) onto the timeline.",
|
|
@@ -857,6 +896,27 @@ const TOOLS = [
|
|
|
857
896
|
},
|
|
858
897
|
command: "project.split-clip",
|
|
859
898
|
},
|
|
899
|
+
{
|
|
900
|
+
name: "project_move_clip",
|
|
901
|
+
description:
|
|
902
|
+
"Reorder a clip on the main track. `clipId` identifies the clip; `toIndex` is its new 0-based position after the move. Project-level regions (zooms, trims, speeds, annotations, FX, lower-thirds, media overlays, clip transforms) automatically migrate to follow their original clips so the user-perceived edits stay attached to the same content — a zoom that was 'into the explanation in clip 2' is still pointing at the same explanation after clip 2 moves to position 0. Per-clip transcripts ride on the clips themselves and don't need separate migration.",
|
|
903
|
+
inputSchema: {
|
|
904
|
+
type: "object",
|
|
905
|
+
properties: {
|
|
906
|
+
id: { type: "string" },
|
|
907
|
+
path: { type: "string" },
|
|
908
|
+
clipId: { type: "string", description: "Clip id to move" },
|
|
909
|
+
toIndex: {
|
|
910
|
+
type: "number",
|
|
911
|
+
description:
|
|
912
|
+
"0-based target position in the clips array (post-move). Out-of-range values clamp to bounds.",
|
|
913
|
+
},
|
|
914
|
+
expectedRevision: { type: "number" },
|
|
915
|
+
},
|
|
916
|
+
required: ["clipId", "toIndex"],
|
|
917
|
+
},
|
|
918
|
+
command: "project.move-clip",
|
|
919
|
+
},
|
|
860
920
|
|
|
861
921
|
// ── compose: edit existing regions ─────────────────────────────
|
|
862
922
|
{
|
|
@@ -1407,7 +1467,7 @@ const TOOLS = [
|
|
|
1407
1467
|
{
|
|
1408
1468
|
name: "motion_generate",
|
|
1409
1469
|
description:
|
|
1410
|
-
"Render a motion graphic asynchronously. Returns { jobId, outputPath }; call job_wait. Output is an MP4 you can pass to project_add_motion_graphic. Use templateId=youtube-lower-third (slots: channelName, handle, accentColor) for YouTube-style name plates with avatar + Subscribe button.",
|
|
1470
|
+
"Render a motion graphic asynchronously. Returns { jobId, outputPath }; call job_wait. Output is an MP4 you can pass to project_add_motion_graphic — OR a transparent WebM when `transparent` / `glassMode` is set. Use templateId=youtube-lower-third (slots: channelName, handle, accentColor) for YouTube-style name plates with avatar + Subscribe button. Set glassMode=true to render the template as a frosted-glass card on a transparent canvas — pair with backdropBlurStrength on project_add_motion_graphic for the full Apple/Premiere-grade glass look.",
|
|
1411
1471
|
inputSchema: {
|
|
1412
1472
|
type: "object",
|
|
1413
1473
|
properties: {
|
|
@@ -1415,6 +1475,16 @@ const TOOLS = [
|
|
|
1415
1475
|
slots: { type: "object", description: "Slot values (theme already resolved)" },
|
|
1416
1476
|
aspectRatio: { type: "string", description: "16:9 | 9:16 | 1:1" },
|
|
1417
1477
|
outputName: { type: "string", description: "Optional filename stem" },
|
|
1478
|
+
transparent: {
|
|
1479
|
+
type: "boolean",
|
|
1480
|
+
description:
|
|
1481
|
+
"Render with a transparent background (alpha WebM via VP9/yuva420p). Required when you intend to attach backdropBlurStrength on the resulting region — frosted-glass blur only reads through an alpha-shape mask. Output extension is .webm, not .mp4.",
|
|
1482
|
+
},
|
|
1483
|
+
glassMode: {
|
|
1484
|
+
type: "boolean",
|
|
1485
|
+
description:
|
|
1486
|
+
"Apply the shared glass-mode CSS pass before rendering — hides the template's solid-bg decorations (vignette, perspective grid, film-grain) and wraps content in a translucent rounded glass card. Implies transparent=true (alpha WebM output). Pair with backdropBlurStrength=24 + backdropBlurTint='rgba(10,10,10,0.18)' on project_add_motion_graphic to deliver the full frosted-glass look the in-app 'Glass' background mode produces. The motion graphic's content (text, accents, items) renders crisp on top of the camera-blurred glass card.",
|
|
1487
|
+
},
|
|
1418
1488
|
},
|
|
1419
1489
|
required: ["templateId", "slots"],
|
|
1420
1490
|
},
|
|
@@ -1633,7 +1703,7 @@ const TOOLS = [
|
|
|
1633
1703
|
{
|
|
1634
1704
|
name: "export_start",
|
|
1635
1705
|
description:
|
|
1636
|
-
"Render the project to MP4 via the same
|
|
1706
|
+
"Render the project to MP4 via the same Tier-3 PixiJS pipeline the editor's Export Video button uses (v1.24+ — convergence release). When an editor window is already open on the target project, the agent reuses it. Otherwise the agent spawns a hidden editor window for the duration of the render and closes it after. ASYNC — returns { jobId, outputPath }; call job_wait. Honours every region/style/caption/FX/lower-third/motion-graphic in the project. Video overlays (motion graphics added via project_add_motion_graphic) — opaque MP4 and transparent WebM/VP9+alpha — composite inline in the export pipeline; no extra call needed.",
|
|
1637
1707
|
inputSchema: {
|
|
1638
1708
|
type: "object",
|
|
1639
1709
|
properties: {
|
|
@@ -1829,7 +1899,7 @@ const TOOLS = [
|
|
|
1829
1899
|
const server = new Server(
|
|
1830
1900
|
{
|
|
1831
1901
|
name: "pandastudio",
|
|
1832
|
-
version: "1.
|
|
1902
|
+
version: "1.17.0",
|
|
1833
1903
|
},
|
|
1834
1904
|
{
|
|
1835
1905
|
capabilities: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@writepanda/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.30.0",
|
|
4
4
|
"description": "Model Context Protocol server for PandaStudio. Exposes the desktop video editor's automation surface to Cursor, Continue, Cline, Claude Desktop, and any MCP-compliant client.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pandastudio",
|