@writepanda/mcp 1.17.0 → 1.18.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 +66 -2
- package/package.json +1 -1
package/bin/server.mjs
CHANGED
|
@@ -171,6 +171,13 @@ const TOOLS = [
|
|
|
171
171
|
inputSchema: { type: "object", properties: {} },
|
|
172
172
|
command: "project.list",
|
|
173
173
|
},
|
|
174
|
+
{
|
|
175
|
+
name: "project_current",
|
|
176
|
+
description:
|
|
177
|
+
"Return the project currently loaded in the editor window: { project: {id, path, name, revision, clipCount} | null }. Use this when the user says 'edit what I'm working on' / 'the project that's open' — no need to ask them for an id. Returns { project: null } when no editor window is open.",
|
|
178
|
+
inputSchema: { type: "object", properties: {} },
|
|
179
|
+
command: "project.current",
|
|
180
|
+
},
|
|
174
181
|
{
|
|
175
182
|
name: "project_show",
|
|
176
183
|
description:
|
|
@@ -253,7 +260,7 @@ const TOOLS = [
|
|
|
253
260
|
{
|
|
254
261
|
name: "project_add_motion_graphic",
|
|
255
262
|
description:
|
|
256
|
-
"Drop a motion-graphic MP4 (typically the output of motion_generate) onto the timeline.",
|
|
263
|
+
"Drop a motion-graphic MP4 (typically the output of motion_generate) onto the timeline. Optional SFX plays when it appears.",
|
|
257
264
|
inputSchema: {
|
|
258
265
|
type: "object",
|
|
259
266
|
properties: {
|
|
@@ -262,6 +269,15 @@ const TOOLS = [
|
|
|
262
269
|
file: { type: "string", description: "Absolute path to MP4" },
|
|
263
270
|
durationMs: { type: "number" },
|
|
264
271
|
atMs: { type: "number", description: "Default: end of timeline" },
|
|
272
|
+
soundUrl: {
|
|
273
|
+
type: "string",
|
|
274
|
+
description:
|
|
275
|
+
"Optional SFX played when the motion graphic appears. Bundled id (bundled:sound/<id>) like bundled:sound/message-pop, bundled:sound/swoosh-fast, etc. — use asset_list_sounds to discover. No default.",
|
|
276
|
+
},
|
|
277
|
+
soundVolume: {
|
|
278
|
+
type: "number",
|
|
279
|
+
description: "Sound volume 0–1. Default 1 when soundUrl is set.",
|
|
280
|
+
},
|
|
265
281
|
expectedRevision: { type: "number" },
|
|
266
282
|
},
|
|
267
283
|
required: ["file", "durationMs"],
|
|
@@ -318,6 +334,15 @@ const TOOLS = [
|
|
|
318
334
|
},
|
|
319
335
|
fontSize: { type: "number", description: "Primary text font size in px. Default 28" },
|
|
320
336
|
fontFamily: { type: "string", description: "CSS font family name. Default Inter" },
|
|
337
|
+
soundUrl: {
|
|
338
|
+
type: "string",
|
|
339
|
+
description:
|
|
340
|
+
'SFX played when the lower third enters. Bundled id (bundled:sound/<id>). Default bundled:sound/mouse-click. Pass "none" for silent.',
|
|
341
|
+
},
|
|
342
|
+
soundVolume: {
|
|
343
|
+
type: "number",
|
|
344
|
+
description: "Sound volume 0–1. Default 0.8.",
|
|
345
|
+
},
|
|
321
346
|
expectedRevision: { type: "number" },
|
|
322
347
|
},
|
|
323
348
|
required: ["content", "atMs"],
|
|
@@ -329,7 +354,7 @@ const TOOLS = [
|
|
|
329
354
|
{
|
|
330
355
|
name: "project_add_zoom",
|
|
331
356
|
description:
|
|
332
|
-
"Add a zoom region — highlight a UI moment. Typical pattern: find 'click X' in transcript, drop zoom there.",
|
|
357
|
+
"Add a zoom region — highlight a UI moment. Typical pattern: find 'click X' in transcript, drop zoom there. Ships with a short swoosh SFX by default; pass soundUrl=\"none\" for silent.",
|
|
333
358
|
inputSchema: {
|
|
334
359
|
type: "object",
|
|
335
360
|
properties: {
|
|
@@ -340,12 +365,51 @@ const TOOLS = [
|
|
|
340
365
|
depth: { type: "number", description: "1 (mild) - 6 (extreme). Default 3" },
|
|
341
366
|
focusX: { type: "number", description: "Normalised 0-1 horizontal center. Default 0.5" },
|
|
342
367
|
focusY: { type: "number", description: "Normalised 0-1 vertical center. Default 0.5" },
|
|
368
|
+
soundUrl: {
|
|
369
|
+
type: "string",
|
|
370
|
+
description:
|
|
371
|
+
'SFX played at the zoom\'s leading edge. Bundled id (bundled:sound/<id>). Default bundled:sound/swoosh-fast. Pass "none" for silent.',
|
|
372
|
+
},
|
|
373
|
+
soundVolume: {
|
|
374
|
+
type: "number",
|
|
375
|
+
description: "Sound volume 0–1. Default 1.",
|
|
376
|
+
},
|
|
343
377
|
expectedRevision: { type: "number" },
|
|
344
378
|
},
|
|
345
379
|
required: ["atMs", "durationMs"],
|
|
346
380
|
},
|
|
347
381
|
command: "project.add-zoom",
|
|
348
382
|
},
|
|
383
|
+
{
|
|
384
|
+
name: "project_set_region_sound",
|
|
385
|
+
description:
|
|
386
|
+
'Set or clear the sound effect on an existing region (zoom / motionGraphic / lowerThird / fx). Use to swap the default zoom swoosh, add a ding to a motion graphic, or mute a lower-third click. Pass soundUrl="none" to clear.',
|
|
387
|
+
inputSchema: {
|
|
388
|
+
type: "object",
|
|
389
|
+
properties: {
|
|
390
|
+
id: { type: "string" },
|
|
391
|
+
path: { type: "string" },
|
|
392
|
+
regionId: { type: "string", description: "Target region id" },
|
|
393
|
+
regionType: {
|
|
394
|
+
type: "string",
|
|
395
|
+
enum: ["zoom", "motionGraphic", "lowerThird", "fx"],
|
|
396
|
+
description: "Region kind that owns the id",
|
|
397
|
+
},
|
|
398
|
+
soundUrl: {
|
|
399
|
+
type: "string",
|
|
400
|
+
description:
|
|
401
|
+
'Bundled id (bundled:sound/<id>), absolute path, or file:// URL. Pass "none" to clear.',
|
|
402
|
+
},
|
|
403
|
+
soundVolume: {
|
|
404
|
+
type: "number",
|
|
405
|
+
description: 'Sound volume 0–1. Ignored when soundUrl is "none". Default 1.',
|
|
406
|
+
},
|
|
407
|
+
expectedRevision: { type: "number" },
|
|
408
|
+
},
|
|
409
|
+
required: ["regionId", "regionType", "soundUrl"],
|
|
410
|
+
},
|
|
411
|
+
command: "project.set-region-sound",
|
|
412
|
+
},
|
|
349
413
|
{
|
|
350
414
|
name: "project_add_trim",
|
|
351
415
|
description: "Mark a span the exporter SKIPS. Use directly for manual cuts.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@writepanda/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.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",
|