@writepanda/mcp 1.29.1 → 1.31.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 +18 -44
- package/package.json +1 -1
package/bin/server.mjs
CHANGED
|
@@ -489,7 +489,7 @@ const TOOLS = [
|
|
|
489
489
|
{
|
|
490
490
|
name: "project_add_motion_graphic",
|
|
491
491
|
description:
|
|
492
|
-
"Drop a motion-graphic MP4 (typically the output of
|
|
492
|
+
"Drop a motion-graphic MP4 (typically the output of motion_render_html) onto the timeline. Optional SFX plays when it appears.",
|
|
493
493
|
inputSchema: {
|
|
494
494
|
type: "object",
|
|
495
495
|
properties: {
|
|
@@ -520,7 +520,7 @@ const TOOLS = [
|
|
|
520
520
|
backdropBlurStrength: {
|
|
521
521
|
type: "number",
|
|
522
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
|
|
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 render (motion_render_html --transparent) so the overlay has alpha for the mask to read. Omit or pass 0 to disable.",
|
|
524
524
|
},
|
|
525
525
|
backdropBlurTint: {
|
|
526
526
|
type: "string",
|
|
@@ -1416,20 +1416,18 @@ const TOOLS = [
|
|
|
1416
1416
|
},
|
|
1417
1417
|
|
|
1418
1418
|
// ── motion graphics ─────────────────────────────────────────────
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
command: "motion.themes",
|
|
1432
|
-
},
|
|
1419
|
+
// `motion_list`, `motion_themes`, and `motion_generate` were
|
|
1420
|
+
// removed in v1.31.0. Those bundled-template tools are for the
|
|
1421
|
+
// in-app Gemma E2B local model (which can't author HTML); they
|
|
1422
|
+
// were never on the agent's surface from a product standpoint
|
|
1423
|
+
// but the MCP schema previously exposed them, and the mere
|
|
1424
|
+
// presence of `motion_generate` in the tool list lured agents
|
|
1425
|
+
// into picking it over the architecturally-correct
|
|
1426
|
+
// `motion_render_html`. The bundled templates use flat
|
|
1427
|
+
// solid-color backgrounds and CSS keyframes — they don't meet
|
|
1428
|
+
// the aesthetic baseline (the Hyperframes example gallery)
|
|
1429
|
+
// that agents are expected to clear. Removing the tools
|
|
1430
|
+
// eliminates the temptation. Agents now author HTML directly.
|
|
1433
1431
|
{
|
|
1434
1432
|
name: "media_generate_image",
|
|
1435
1433
|
description:
|
|
@@ -1464,32 +1462,8 @@ const TOOLS = [
|
|
|
1464
1462
|
},
|
|
1465
1463
|
command: "media.generate-image",
|
|
1466
1464
|
},
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
description:
|
|
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.",
|
|
1471
|
-
inputSchema: {
|
|
1472
|
-
type: "object",
|
|
1473
|
-
properties: {
|
|
1474
|
-
templateId: { type: "string", description: "From motion_list" },
|
|
1475
|
-
slots: { type: "object", description: "Slot values (theme already resolved)" },
|
|
1476
|
-
aspectRatio: { type: "string", description: "16:9 | 9:16 | 1:1" },
|
|
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
|
-
},
|
|
1488
|
-
},
|
|
1489
|
-
required: ["templateId", "slots"],
|
|
1490
|
-
},
|
|
1491
|
-
command: "motion.generate",
|
|
1492
|
-
},
|
|
1465
|
+
// `motion_generate` removed in v1.31.0 — see comment above the
|
|
1466
|
+
// motion-graphics section. Authoring path is `motion_render_html`.
|
|
1493
1467
|
{
|
|
1494
1468
|
name: "motion_render_html",
|
|
1495
1469
|
description:
|
|
@@ -1578,7 +1552,7 @@ const TOOLS = [
|
|
|
1578
1552
|
{
|
|
1579
1553
|
name: "motion_concat",
|
|
1580
1554
|
description:
|
|
1581
|
-
"Concatenate multiple MP4s into one final video using a lossless stream copy (no re-encode — fast). All clips must share the same resolution and codec; all motion_render_html
|
|
1555
|
+
"Concatenate multiple MP4s into one final video using a lossless stream copy (no re-encode — fast). All clips must share the same resolution and codec; all motion_render_html outputs qualify automatically. Use this after rendering individual scenes to assemble the final promo. Returns { outputPath, clipCount } directly.",
|
|
1582
1556
|
inputSchema: {
|
|
1583
1557
|
type: "object",
|
|
1584
1558
|
required: ["clips"],
|
|
@@ -1852,7 +1826,7 @@ const TOOLS = [
|
|
|
1852
1826
|
{
|
|
1853
1827
|
name: "job_wait",
|
|
1854
1828
|
description:
|
|
1855
|
-
"Block server-side until an async job (transcribe, audio_clean,
|
|
1829
|
+
"Block server-side until an async job (transcribe, audio_clean, motion_render_html, export_start) reaches a terminal state. Default timeout 60s, max 5 min. Always call this after kicking off async work.",
|
|
1856
1830
|
inputSchema: {
|
|
1857
1831
|
type: "object",
|
|
1858
1832
|
properties: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@writepanda/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.31.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",
|