@writepanda/mcp 1.24.0 → 1.25.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 +25 -3
- package/package.json +1 -1
package/bin/server.mjs
CHANGED
|
@@ -369,10 +369,32 @@ const TOOLS = [
|
|
|
369
369
|
{
|
|
370
370
|
name: "project_list",
|
|
371
371
|
description:
|
|
372
|
-
"List
|
|
373
|
-
inputSchema: {
|
|
372
|
+
"List projects in the active workspace (id, name, path, modifiedAt, clipCount, revision, workspaceId). Pass `allWorkspaces: true` to see across every workspace on the machine. Each row carries its workspaceId; the top-level response also returns currentWorkspaceId so you can detect cross-workspace mismatches.",
|
|
373
|
+
inputSchema: {
|
|
374
|
+
type: "object",
|
|
375
|
+
properties: {
|
|
376
|
+
allWorkspaces: {
|
|
377
|
+
type: "boolean",
|
|
378
|
+
description:
|
|
379
|
+
"When true, list across every workspace (each row tagged with workspaceId). Default false — current workspace only.",
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
},
|
|
374
383
|
command: "project.list",
|
|
375
384
|
},
|
|
385
|
+
{
|
|
386
|
+
name: "project_locate",
|
|
387
|
+
description:
|
|
388
|
+
"Look up a project's owning workspace WITHOUT reading the project body. Returns { id, filePath, workspaceId, workspaceName, isInActiveWorkspace }. **Cheap pre-flight you SHOULD call when given a project id with no other context** — before any edit, export, or publish. If isInActiveWorkspace is false, surface the mismatch to the user before proceeding (the YouTube account + Replicate key are workspace-scoped, so publishing to YouTube on the wrong workspace publishes to the wrong client's channel).",
|
|
389
|
+
inputSchema: {
|
|
390
|
+
type: "object",
|
|
391
|
+
properties: {
|
|
392
|
+
id: { type: "string", description: "Project UUID." },
|
|
393
|
+
},
|
|
394
|
+
required: ["id"],
|
|
395
|
+
},
|
|
396
|
+
command: "project.locate",
|
|
397
|
+
},
|
|
376
398
|
{
|
|
377
399
|
name: "project_current",
|
|
378
400
|
description:
|
|
@@ -396,7 +418,7 @@ const TOOLS = [
|
|
|
396
418
|
{
|
|
397
419
|
name: "project_read",
|
|
398
420
|
description:
|
|
399
|
-
"Read a project's full JSON. Returns { path, project, clipStates }. `clipStates` is a per-clip summary: { clipId, mediaPath, durationMs, transcribed, wordCount, audioCleaned, cleanedAudioPath? } — use it to decide whether to call transcript_transcribe or audio_clean before editing. Pass `project.revision` back as `expectedRevision` on subsequent writes for conflict-safe edits. **Performance tip:** pass `includeTranscript: false` after your first read to drop the per-clip transcript words from the response — they're typically 600+ KB on a 5-minute recording and most agent flows don't need them after pacing is done. clipStates always tells you the transcribed/wordCount status either way.",
|
|
421
|
+
"Read a project's full JSON. Returns { path, project, clipStates, workspaceId, workspaceName, isInActiveWorkspace }. `clipStates` is a per-clip summary: { clipId, mediaPath, durationMs, transcribed, wordCount, audioCleaned, cleanedAudioPath? } — use it to decide whether to call transcript_transcribe or audio_clean before editing. **Workspace fields:** every read includes the project's owning workspace; if `isInActiveWorkspace` is false, the YouTube account and Replicate key in scope are NOT the ones that own this project — surface the mismatch to the user before any export or publish. Pass `project.revision` back as `expectedRevision` on subsequent writes for conflict-safe edits. **Performance tip:** pass `includeTranscript: false` after your first read to drop the per-clip transcript words from the response — they're typically 600+ KB on a 5-minute recording and most agent flows don't need them after pacing is done. clipStates always tells you the transcribed/wordCount status either way.",
|
|
400
422
|
inputSchema: {
|
|
401
423
|
type: "object",
|
|
402
424
|
properties: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@writepanda/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.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",
|