@writepanda/mcp 1.100.0 → 1.106.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 +92 -0
  2. package/package.json +1 -1
package/bin/server.mjs CHANGED
@@ -1284,6 +1284,32 @@ const TOOLS = [
1284
1284
  description:
1285
1285
  "Blur strength in px sigma at 1080p (mode='blur' only; ignored for 'remove'). 1-120, default 18.",
1286
1286
  },
1287
+ outline: {
1288
+ type: "boolean",
1289
+ description:
1290
+ "Draw a person OUTLINE (colored keyline + drop shadow) around the cutout. Enable on 'remove' over a cream wallpaper for the VOX magazine-cutout look; also composes with 'blur'.",
1291
+ },
1292
+ outlineWidth: {
1293
+ type: "number",
1294
+ description: "Outline keyline width in px at 1080p. 1-120, default 36.",
1295
+ },
1296
+ outlineColor: {
1297
+ type: "string",
1298
+ description: "Outline color (hex/rgb). Default white '#ffffff'.",
1299
+ },
1300
+ outlineShadow: {
1301
+ type: "boolean",
1302
+ description: "Whether the outline casts a drop shadow (lifted-sticker look). Default true.",
1303
+ },
1304
+ matteContract: {
1305
+ type: "number",
1306
+ description:
1307
+ "Manually tune the person BOUNDARY, px at 1080p: >0 contracts the edge INWARD (kills background fringe / tightens the cutout), <0 expands it outward. -60..60, default 0.",
1308
+ },
1309
+ matteFeather: {
1310
+ type: "number",
1311
+ description: "Soften the matte edge, px at 1080p. 0..60, default 0.",
1312
+ },
1287
1313
  anchorSourceMs: {
1288
1314
  type: "number",
1289
1315
  description:
@@ -1840,6 +1866,44 @@ const TOOLS = [
1840
1866
  },
1841
1867
  command: "project.set-screen-transform",
1842
1868
  },
1869
+ {
1870
+ name: "project_set_backdrop",
1871
+ description:
1872
+ "Set what fills the canvas BEHIND the main video when it's scaled down / parked in a corner (via project_set_screen_transform). mode='blur-self' shows a blurred, cover-cropped copy of the main video itself — the Shorts / camera-in-a-corner look. mode='wallpaper' (default) clears it back to the configured wallpaper. Only visible when the main video doesn't fill the frame; for the full one-click corner layout use project_set_shorts_layout. Preview and export render it identically.",
1873
+ inputSchema: {
1874
+ type: "object",
1875
+ properties: {
1876
+ id: { type: "string" },
1877
+ path: { type: "string" },
1878
+ mode: {
1879
+ type: "string",
1880
+ enum: ["blur-self", "wallpaper"],
1881
+ description: "'blur-self' (blurred self-fill) or 'wallpaper' (default / clear).",
1882
+ },
1883
+ expectedRevision: { type: "number" },
1884
+ },
1885
+ },
1886
+ command: "project.set-backdrop",
1887
+ },
1888
+ {
1889
+ name: "project_set_shorts_layout",
1890
+ description:
1891
+ "One-shot vertical (9:16) layout for a camera-only clip — the automation equivalent of the editor's Layout picker. layout='full' = camera fills the frame (clears any transform + backdrop). layout='camera-corner' = camera shrinks to a draggable bottom-right tile over a blurred self-fill of itself (sets the main-clip transform AND backdrop together). For a screen-recording (screen+camera) clip, use project_set_webcam_layout with 'picture-in-picture' instead — that already gives screen-fills-with-camera-corner.",
1892
+ inputSchema: {
1893
+ type: "object",
1894
+ properties: {
1895
+ id: { type: "string" },
1896
+ path: { type: "string" },
1897
+ layout: {
1898
+ type: "string",
1899
+ enum: ["full", "camera-corner"],
1900
+ description: "'full' or 'camera-corner'.",
1901
+ },
1902
+ expectedRevision: { type: "number" },
1903
+ },
1904
+ },
1905
+ command: "project.set-shorts-layout",
1906
+ },
1843
1907
  {
1844
1908
  name: "project_set_focal_point",
1845
1909
  description:
@@ -2193,6 +2257,34 @@ const TOOLS = [
2193
2257
  },
2194
2258
  command: "transcript.delete-words",
2195
2259
  },
2260
+ {
2261
+ name: "transcript_insert_words",
2262
+ description:
2263
+ "Add word(s) the transcription MISSED — the counterpart to transcript_find_replace (which only rewrites words that already exist). Speech-to-text sometimes drops a spoken word; this inserts it with plausible timing (fills the gap the drop left, sized to the local speaking rate; borrows a few ms from the previous word when neighbours are flush). Anchor with EITHER afterWordId (insert right after that word — usual) OR beforeWordId (insert right before it — to add at the very start). Word ids come from transcript_get. `text` may be multiple space-separated words. Non-destructive — existing word ids are untouched, so trims/zooms/captions anchored elsewhere are unaffected. Does NOT re-transcribe.",
2264
+ inputSchema: {
2265
+ type: "object",
2266
+ properties: {
2267
+ id: { type: "string" },
2268
+ path: { type: "string" },
2269
+ afterWordId: {
2270
+ type: "string",
2271
+ description: "Insert immediately AFTER this word id (from transcript_get).",
2272
+ },
2273
+ beforeWordId: {
2274
+ type: "string",
2275
+ description:
2276
+ "Insert immediately BEFORE this word id (use to add at the very start). Provide exactly one of afterWordId / beforeWordId.",
2277
+ },
2278
+ text: {
2279
+ type: "string",
2280
+ description: "The word(s) to insert. Space-separated text inserts multiple words.",
2281
+ },
2282
+ expectedRevision: { type: "number" },
2283
+ },
2284
+ required: ["text"],
2285
+ },
2286
+ command: "transcript.insert-words",
2287
+ },
2196
2288
  {
2197
2289
  name: "transcript_restore_words",
2198
2290
  description:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@writepanda/mcp",
3
- "version": "1.100.0",
3
+ "version": "1.106.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",