@writepanda/mcp 1.211.0 → 1.213.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.
Files changed (2) hide show
  1. package/bin/server.mjs +123 -1
  2. package/package.json +1 -1
package/bin/server.mjs CHANGED
@@ -636,6 +636,84 @@ const MOTION_ELEMENT_PROPS = {
636
636
  anchor: { type: "string", enum: ["auto", "free"] },
637
637
  };
638
638
  const TOOLS = [
639
+ {
640
+ name: "folder_list",
641
+ description:
642
+ "Manage flat folders in the active workspace. Delete keeps projects unless deleteProjects is true.",
643
+ inputSchema: {
644
+ type: "object",
645
+ properties: {},
646
+ required: [],
647
+ },
648
+ command: "folder.list",
649
+ },
650
+ {
651
+ name: "folder_create",
652
+ description:
653
+ "Manage flat folders in the active workspace. Delete keeps projects unless deleteProjects is true.",
654
+ inputSchema: {
655
+ type: "object",
656
+ properties: {
657
+ name: {
658
+ type: "string",
659
+ },
660
+ },
661
+ required: ["name"],
662
+ },
663
+ command: "folder.create",
664
+ },
665
+ {
666
+ name: "folder_rename",
667
+ description:
668
+ "Manage flat folders in the active workspace. Delete keeps projects unless deleteProjects is true.",
669
+ inputSchema: {
670
+ type: "object",
671
+ properties: {
672
+ id: {
673
+ type: "string",
674
+ },
675
+ name: {
676
+ type: "string",
677
+ },
678
+ },
679
+ required: ["id", "name"],
680
+ },
681
+ command: "folder.rename",
682
+ },
683
+ {
684
+ name: "folder_delete",
685
+ description:
686
+ "Manage flat folders in the active workspace. Delete keeps projects unless deleteProjects is true.",
687
+ inputSchema: {
688
+ type: "object",
689
+ properties: {
690
+ id: {
691
+ type: "string",
692
+ },
693
+ deleteProjects: {
694
+ type: "boolean",
695
+ default: false,
696
+ },
697
+ },
698
+ required: ["id"],
699
+ },
700
+ command: "folder.delete",
701
+ },
702
+ {
703
+ name: "folder_contents",
704
+ description:
705
+ "Manage flat folders in the active workspace. Delete keeps projects unless deleteProjects is true.",
706
+ inputSchema: {
707
+ type: "object",
708
+ properties: {
709
+ id: {
710
+ type: "string",
711
+ },
712
+ },
713
+ required: ["id"],
714
+ },
715
+ command: "folder.contents",
716
+ },
639
717
  // ── system + discovery ──────────────────────────────────────────
640
718
  {
641
719
  name: "system_status",
@@ -1273,6 +1351,8 @@ const TOOLS = [
1273
1351
  inputSchema: {
1274
1352
  type: "object",
1275
1353
  properties: {
1354
+ folderId: { type: ["string", "null"], description: "Folder UUID" },
1355
+ topLevel: { type: "boolean" },
1276
1356
  allWorkspaces: { type: "boolean" },
1277
1357
  sortBy: { type: "string", enum: ["modifiedAt", "createdAt", "name"] },
1278
1358
  order: { type: "string", enum: ["desc", "asc"] },
@@ -1288,6 +1368,7 @@ const TOOLS = [
1288
1368
  inputSchema: {
1289
1369
  type: "object",
1290
1370
  properties: {
1371
+ folderId: { type: ["string", "null"], description: "Folder UUID" },
1291
1372
  id: { type: "string" },
1292
1373
  path: { type: "string" },
1293
1374
  folder: { type: "string" },
@@ -1315,6 +1396,7 @@ const TOOLS = [
1315
1396
  inputSchema: {
1316
1397
  type: "object",
1317
1398
  properties: {
1399
+ folderId: { type: ["string", "null"], description: "Folder UUID" },
1318
1400
  id: { type: "string" },
1319
1401
  path: { type: "string" },
1320
1402
  },
@@ -1377,6 +1459,9 @@ const TOOLS = [
1377
1459
  inputSchema: {
1378
1460
  type: "object",
1379
1461
  properties: {
1462
+ folderId: { type: ["string", "null"], description: "Folder UUID" },
1463
+ parentProjectId: { type: "string" },
1464
+ originKind: { type: "string", enum: ["agent", "recipe"] },
1380
1465
  name: { type: "string" },
1381
1466
  withMedia: { type: "array", items: { type: "string" } },
1382
1467
  },
@@ -1391,6 +1476,7 @@ const TOOLS = [
1391
1476
  inputSchema: {
1392
1477
  type: "object",
1393
1478
  properties: {
1479
+ folderId: { type: ["string", "null"], description: "Folder UUID" },
1394
1480
  exportId: { type: "string" },
1395
1481
  shotId: { type: "string" },
1396
1482
  aspectRatio: { type: "string", description: "Default 9:16." },
@@ -3700,16 +3786,52 @@ const TOOLS = [
3700
3786
  },
3701
3787
 
3702
3788
  // ── transcript-based editing ────────────────────────────────────
3789
+ {
3790
+ name: "transcript_detect_language",
3791
+ description:
3792
+ "Guess a clip's language locally from up to 30 seconds. Returns guess or null when unavailable. Confirm with the user before cloud transcription.",
3793
+ inputSchema: {
3794
+ type: "object",
3795
+ properties: { id: { type: "string" }, path: { type: "string" }, clipId: { type: "string" } },
3796
+ },
3797
+ command: "transcript.detect-language",
3798
+ },
3799
+
3800
+ {
3801
+ name: "system_set_transcription_preferences",
3802
+ description:
3803
+ "Save workspace language and provider atomically. Confirm consent to upload audio for cloud. Cloud cannot use auto.",
3804
+ inputSchema: {
3805
+ type: "object",
3806
+ required: ["language", "provider"],
3807
+ properties: {
3808
+ language: { type: "string" },
3809
+ provider: { type: "string", enum: ["local", "deepgram", "elevenlabs"] },
3810
+ },
3811
+ },
3812
+ command: "system.set-transcription-preferences",
3813
+ },
3814
+
3703
3815
  {
3704
3816
  name: "transcript_transcribe",
3705
3817
  description:
3706
- "Transcribe clips with word timestamps (default: only clips without words). To REDO a transcript (wrong language, bad run) fix the language first, then force: true (all clips) or clipId. Word fixes are re-applied; tell the user about result droppedWordEdits[] (fixes that may need redoing). Each clip is transcribed only over the part it plays (head trim to out-point, e.g. one half of a split; result transcribedRanges[]). ASYNC: { jobId }, job_wait. Concurrent saves are merged and retried (three attempts). Exhausted conflicts report code revision_conflict / status 409 (job.errorDetails for async jobs).",
3818
+ "Transcribe clips with word timestamps (default: only clips without words). To REDO a transcript (wrong language, bad run) confirm language, pass per-run language and provider overrides, then force: true (all clips) or clipId. Word fixes are re-applied; tell the user about result droppedWordEdits[] (fixes that may need redoing). Each clip is transcribed only over the part it plays (head trim to out-point, e.g. one half of a split; result transcribedRanges[]). ASYNC: { jobId }, job_wait. Concurrent saves are merged and retried (three attempts). Exhausted conflicts report code revision_conflict / status 409 (job.errorDetails for async jobs).",
3707
3819
  inputSchema: {
3708
3820
  type: "object",
3709
3821
  properties: {
3710
3822
  id: { type: "string" },
3711
3823
  path: { type: "string" },
3712
3824
  clipId: { type: "string", description: "Only this clip, even if already transcribed." },
3825
+ language: {
3826
+ type: "string",
3827
+ description:
3828
+ "Per-run spoken language name (english, tamil, etc.). Cloud cannot use auto.",
3829
+ },
3830
+ provider: {
3831
+ type: "string",
3832
+ enum: ["local", "deepgram", "elevenlabs"],
3833
+ description: "Per-run provider. Audio is sent to the selected cloud provider.",
3834
+ },
3713
3835
  force: { type: "boolean", description: "Re-transcribe clips that already have words." },
3714
3836
  },
3715
3837
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@writepanda/mcp",
3
- "version": "1.211.0",
3
+ "version": "1.213.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",