@writepanda/mcp 1.22.0 → 1.22.1

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 (2) hide show
  1. package/bin/server.mjs +33 -0
  2. package/package.json +1 -1
package/bin/server.mjs CHANGED
@@ -1378,6 +1378,39 @@ const TOOLS = [
1378
1378
  },
1379
1379
  command: "motion.concat",
1380
1380
  },
1381
+ {
1382
+ name: "motion_verify_frames",
1383
+ description:
1384
+ "Extract PNG frames at given timestamps from a rendered video so the agent can VISUALLY verify the motion graphics landed. This operationalises the 'lint passing ≠ design working — VIEW THE FRAMES' rule in reference/motion-philosophy.md §4. Call this after motion_render_html or export.start and BEFORE declaring a motion-graphics deliverable done. Pass either entryId (export-library entry) or videoPath (arbitrary MP4). Timestamps are in seconds, typically 8-15 spread across hero moments. Returns { frames: [{timestampSeconds, path}...] } — the agent must then Read each path as an image (multimodal) and confirm no cropped faces / text overflow / blank frames / forbidden-zone occlusion / flat-white headlines.",
1385
+ inputSchema: {
1386
+ type: "object",
1387
+ required: ["timestamps"],
1388
+ properties: {
1389
+ entryId: {
1390
+ type: "string",
1391
+ description:
1392
+ "Export library entry id. Mutually exclusive with videoPath — one must be provided.",
1393
+ },
1394
+ videoPath: {
1395
+ type: "string",
1396
+ description:
1397
+ "Absolute path to an MP4 (e.g. a motion.render-html intermediate output). Mutually exclusive with entryId.",
1398
+ },
1399
+ timestamps: {
1400
+ type: "array",
1401
+ items: { type: "number" },
1402
+ description:
1403
+ "Timestamps in seconds to extract frames at (e.g. [0.5, 1.5, 3.0, 5.0, 7.5, 10.0, 12.5, 15.0]). Max 30 per call.",
1404
+ },
1405
+ outputName: {
1406
+ type: "string",
1407
+ description:
1408
+ "Optional subdir stem for the output PNGs. Defaults to verify-<rand>. Frames land in RECORDINGS_DIR/<stem>/frame-<ms>.png.",
1409
+ },
1410
+ },
1411
+ },
1412
+ command: "motion.verify-frames",
1413
+ },
1381
1414
 
1382
1415
  // ── assets ──────────────────────────────────────────────────────
1383
1416
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@writepanda/mcp",
3
- "version": "1.22.0",
3
+ "version": "1.22.1",
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",