@writepanda/mcp 1.286.0 → 1.288.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 +6 -4
- package/package.json +1 -1
package/bin/server.mjs
CHANGED
|
@@ -608,7 +608,7 @@ const MOTION_ELEMENT_PROPS = {
|
|
|
608
608
|
content: {
|
|
609
609
|
type: ["object", "string", "array"],
|
|
610
610
|
description:
|
|
611
|
-
'keyword/chip/stamp/slam/behind/highlight { text } (or a bare string); count { value, to?, prefix?, suffix?, label?, decimals? } (value "20-30" = range); steps { items[], cues? (ms offsets from start) }; lowerThird { title, subtitle? (<=320 chars, wraps), look?: plate|plain|typewriter, typeSpeed? (typewriter pace, 5-80 chars/s, default ~22) }; endCard { lines: [a, b] }; progress { label?, fromMs?, toMs? }; iconPop { emoji } | { icon }; frame { look: viewfinder | selection | corners, label? }; sticker { image: transparent PNG path or "@speaker" (the speaker cut out of her shot), label?, twin? (mirrored pair, one each side) }; ticker { text (one story per line, <=2000 chars), label?, speed? (40-600 px/s) }; credits { title?, entries: [{ role?, name }] | "Role: Name" strings (<=200) }; crawl { title?, text (<=6000 chars), tilt? (0-80), turn? (-60..60) }. Creator effects (picture slots take a path or "@speaker" = the speaker\'s own live shot, the default): reelWall { images?, count? 4-24 } (tiles of her shot behind her); cardFan { images?, count? 3-9 } (card reveal: cards fan in an arc behind her head); orbit { images?, count? 2-6 } (cards circle her, layer around); polaroids { images?, count? 2-8, captions? } (scattered around her, layer around); wordWall { text, rows? 3-14, background? } (word repeated in rows behind her); neon { text, flicker? }; bloom { text } (colour bloom); scrapbook { text } (ransom-note letters); keycaps { text <=24 } (keys falling, pile at the bottom); productCard { title, subtitle?, price?, image?, button? ("Add to cart"), done? ("Added") }; scrollList { title?, items: (string | { title, subtitle?, image? })[] <=30, look?: playlist|feed } (phone list scrolling); splitScreen { panels? 2|3, images?, zooms? 1-4 } (three scenes). Any script, symbols and emoji draw.',
|
|
611
|
+
'keyword/chip/stamp/slam/behind/highlight { text } (or a bare string); count { value, to?, prefix?, suffix?, label?, decimals? } (value "20-30" = range); steps { items[], cues? (ms offsets from start; omit = equal time per item, the last too; a cue in the last ~1.5 s is pulled in so its item still holds) }; lowerThird { title, subtitle? (<=320 chars, wraps), look?: plate|plain|typewriter, typeSpeed? (typewriter pace, 5-80 chars/s, default ~22) }; endCard { lines: [a, b] }; progress { label?, fromMs?, toMs? }; iconPop { emoji } | { icon }; frame { look: viewfinder | selection | corners, label? }; sticker { image: transparent PNG path or "@speaker" (the speaker cut out of her shot), label?, twin? (mirrored pair, one each side) }; ticker { text (one story per line, <=2000 chars), label?, speed? (40-600 px/s) }; credits { title?, entries: [{ role?, name }] | "Role: Name" strings (<=200) }; crawl { title?, text (<=6000 chars), tilt? (0-80), turn? (-60..60) }. Creator effects (picture slots take a path or "@speaker" = the speaker\'s own live shot, the default): reelWall { images?, count? 4-24 } (tiles of her shot behind her); cardFan { images?, count? 3-9 } (card reveal: cards fan in an arc behind her head); orbit { images?, count? 2-6 } (cards circle her, layer around); polaroids { images?, count? 2-8, captions? } (scattered around her, layer around); wordWall { text, rows? 3-14, background? } (word repeated in rows behind her); neon { text, flicker? }; bloom { text } (colour bloom); scrapbook { text } (ransom-note letters); keycaps { text <=24 } (keys falling, pile at the bottom); productCard { title, subtitle?, price?, image?, button? ("Add to cart"), done? ("Added") }; scrollList { title?, items: (string | { title, subtitle?, image? })[] <=30, look?: playlist|feed } (phone list scrolling); splitScreen { panels? 2|3, images?, zooms? 1-4 } (three scenes). Any script, symbols and emoji draw.',
|
|
612
612
|
},
|
|
613
613
|
atMs: { type: "number", description: "Start, edited ms. Or wordId." },
|
|
614
614
|
wordId: {
|
|
@@ -621,7 +621,8 @@ const MOTION_ELEMENT_PROPS = {
|
|
|
621
621
|
cueWordIds: {
|
|
622
622
|
type: "array",
|
|
623
623
|
items: { type: "string" },
|
|
624
|
-
description:
|
|
624
|
+
description:
|
|
625
|
+
"steps: one word id per item. End the element >= 1.5 s after the last one (a later cue is pulled in).",
|
|
625
626
|
},
|
|
626
627
|
style: {
|
|
627
628
|
type: "object",
|
|
@@ -998,6 +999,7 @@ const TOOLS = [
|
|
|
998
999
|
"marathi",
|
|
999
1000
|
"gujarati",
|
|
1000
1001
|
"punjabi",
|
|
1002
|
+
"turkish",
|
|
1001
1003
|
],
|
|
1002
1004
|
},
|
|
1003
1005
|
},
|
|
@@ -1032,7 +1034,7 @@ const TOOLS = [
|
|
|
1032
1034
|
{
|
|
1033
1035
|
name: "connector_list",
|
|
1034
1036
|
description:
|
|
1035
|
-
'List MCP connectors and their state. If the one needed isn\'t connected, tell the user its howToConnect line; you cannot connect connectors. status "connected, last check failed" (connected:false, lastCheck with reason, host and fix) means PandaStudio\'s own last use of it failed. needsReconnect:true (state needs_auth, status "needs sign-in again", HTTP 401) = the service refused its sign-in (e.g. a stale Replicate API token): nothing on it runs until the user presses Reconnect in Settings; relay howToConnect, don\'t retry. auth "api-key" + needsKey: the user must paste a key in Settings (never ask for it in chat). native:true (fal): no connector_tools/connector_call; use its usedThrough tools (fal: media_generate_video).',
|
|
1037
|
+
'List MCP connectors and their state. If the one needed isn\'t connected, tell the user its howToConnect line; you cannot connect connectors. status "connected, last check failed" (connected:false, lastCheck with reason, host and fix) means PandaStudio\'s own last use of it failed. needsReconnect:true (state needs_auth, status "needs sign-in again", HTTP 401) = the service refused its sign-in (e.g. a stale Replicate API token): nothing on it runs until the user presses Reconnect in Settings; relay howToConnect, don\'t retry. auth "api-key" + needsKey: the user must paste a key in Settings (never ask for it in chat). native:true (fal): no connector_tools/connector_call; use its usedThrough tools (fal: media_generate_video). bestFor = what a service is the first choice for: Fish Audio (fishaudio) is excellent for voice cloning and voice/speech generation, so when connected prefer it for a cloned voice or natural narration (connector_call create_voice_clone / text_to_speech, then media_import the audio URL).',
|
|
1036
1038
|
inputSchema: {
|
|
1037
1039
|
type: "object",
|
|
1038
1040
|
properties: {
|
|
@@ -6798,7 +6800,7 @@ const TOOLS = [
|
|
|
6798
6800
|
{
|
|
6799
6801
|
name: "media_generate_narration",
|
|
6800
6802
|
description:
|
|
6801
|
-
"Generate voiceover audio; returns { audioPath, durationMs } for project_add_audio. Default local Kokoro (English); cloud models add voices and languages.",
|
|
6803
|
+
"Generate voiceover audio; returns { audioPath, durationMs } for project_add_audio. Default local Kokoro (English); cloud models add voices and languages. A cloned voice or premium narration with Fish Audio connected (connector_list): use its text_to_speech via connector_call instead (excellent for cloning and natural speech), media_import the URL, then project_add_audio.",
|
|
6802
6804
|
inputSchema: {
|
|
6803
6805
|
type: "object",
|
|
6804
6806
|
properties: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@writepanda/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.288.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",
|