@vibeframe/mcp-server 0.75.0 → 0.76.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 (3) hide show
  1. package/README.md +24 -19
  2. package/dist/index.js +18 -18
  3. package/package.json +3 -3
package/README.md CHANGED
@@ -8,7 +8,7 @@ Confirmed MCP hosts today: **Claude Desktop**, **Cursor**, **OpenCode**, and **C
8
8
 
9
9
  | Surface | Package | How you call it |
10
10
  |---------|---------|-----------------|
11
- | MCP host (Claude Desktop / Cursor / OpenCode / Claude Code) | `@vibeframe/mcp-server` *(this)* | host calls tool by name, for example `mcp__vibeframe__scene_build({...})` |
11
+ | MCP host (Claude Desktop / Cursor / OpenCode / Claude Code) | `@vibeframe/mcp-server` *(this)* | host calls tool by name, for example `mcp__vibeframe__build({...})` |
12
12
  | Shell / scripts (any agent host: Codex / Aider / Gemini CLI / etc.) | `@vibeframe/cli` | `vibe init my-video && vibe build my-video && vibe render my-video` |
13
13
  | Standalone agent REPL | `@vibeframe/cli` (`vibe agent`) | natural language -> CLI calls |
14
14
 
@@ -74,7 +74,7 @@ claude mcp add vibeframe -- npx -y @vibeframe/mcp-server
74
74
  Once connected, your MCP host can resolve prompts like these into typed tool calls:
75
75
 
76
76
  > "Scaffold a 12-second Swiss-Pulse promo project, three beats, and render it"
77
- > *→ `scene_init` + 3× `scene_add` + `scene_render`*
77
+ > *→ `init` + 3× `scene_add` + `render`*
78
78
 
79
79
  > "Generate a cinematic backdrop image, animate it for 5 seconds, add narration"
80
80
  > *→ `generate_image` + `generate_motion` + `generate_speech`*
@@ -84,20 +84,25 @@ Once connected, your MCP host can resolve prompts like these into typed tool cal
84
84
 
85
85
  ## Available Tools
86
86
 
87
- Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows them as `mcp__vibeframe__scene_init`). Each one wraps the same engine call as the matching `vibe` CLI subcommand.
87
+ Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows them as `mcp__vibeframe__init`). Each one wraps the same engine call as the matching `vibe` CLI subcommand.
88
88
 
89
- ### Scene authoring
89
+ ### Project flow (top-level)
90
+
91
+ | Tool | Description |
92
+ |------|-------------|
93
+ | `init` | Scaffold a video project with `STORYBOARD.md` + `DESIGN.md` |
94
+ | `build` | Build a storyboard project: narration TTS, image assets, scene HTML composition |
95
+ | `render` | Deterministic Hyperframes render → MP4/WebM/MOV |
96
+
97
+ ### Scene authoring (lower-level)
90
98
 
91
99
  | Tool | Description |
92
100
  |------|-------------|
93
- | `scene_init` | Low-level scene project scaffold with `STORYBOARD.md` + `DESIGN.md` |
94
101
  | `scene_styles` | List the 8 vendored visual identities (Swiss Pulse, Data Drift, …) or fetch one |
95
102
  | `scene_add` | Append a beat (narration + backdrop + composed HTML) |
96
103
  | `scene_install_skill` | Install the Hyperframes skill bundle into a scene project |
97
104
  | `scene_lint` | Validate composition HTML against the visual identity |
98
- | `scene_render` | Deterministic Hyperframes render → MP4 |
99
105
  | `scene_compose_prompts` | Emit the per-beat compose plan without making an LLM call |
100
- | `scene_build` | Build a storyboard project from `STORYBOARD.md` cues with narration, image assets, composition, and render steps |
101
106
 
102
107
  ### Generation (13)
103
108
 
@@ -139,7 +144,7 @@ Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows th
139
144
  | Tool | Description |
140
145
  |------|-------------|
141
146
  | `audio_dub` | AI voice dubbing (ElevenLabs) |
142
- | `audio_voice_clone` | Voice clone from sample |
147
+ | `audio_clone_voice` | Voice clone from sample |
143
148
  | `audio_isolate` | Vocal / background isolation |
144
149
  | `audio_duck` | Auto-duck BGM under speech |
145
150
  | `audio_transcribe` | Transcript with word-level timing (Whisper) |
@@ -152,14 +157,14 @@ Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows th
152
157
  | `detect_scenes` | Find shot boundaries |
153
158
  | `detect_beats` | Find music beats |
154
159
 
155
- ### Analysis (4)
160
+ ### Inspection (4)
156
161
 
157
162
  | Tool | Description |
158
163
  |------|-------------|
159
- | `analyze_media` | Unified image / video / YouTube analysis (Gemini) |
160
- | `analyze_video` | Temporal video understanding (Gemini) |
161
- | `analyze_review` | AI video review + auto-fix suggestions |
162
- | `analyze_suggest` | Natural-language project edit suggestions (Gemini); optional auto-apply |
164
+ | `inspect_media` | Unified image / video / YouTube analysis (Gemini) |
165
+ | `inspect_video` | Temporal video understanding (Gemini) |
166
+ | `inspect_review` | AI video review + auto-fix suggestions |
167
+ | `inspect_suggest` | Natural-language project edit suggestions (Gemini); optional auto-apply |
163
168
 
164
169
  ### Timeline (10)
165
170
 
@@ -179,14 +184,14 @@ Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows th
179
184
  | `project_create` / `project_info` | `.vibe.json` lifecycle |
180
185
  | `export_video` | Export project to MP4/WebM/MOV via FFmpeg |
181
186
 
182
- ### Pipelines (4)
187
+ ### Remix & pipelines (4)
183
188
 
184
189
  | Tool | Description |
185
190
  |------|-------------|
186
- | `pipeline_run` | Execute a multi-stage YAML pipeline |
187
- | `pipeline_highlights` | Long-form → highlight clips |
188
- | `pipeline_auto_shorts` | Long-form → vertical shorts |
189
- | `pipeline_regenerate_scene` | Re-render a single scene against an existing storyboard.{yaml,json} |
191
+ | `run` | Execute a multi-stage YAML pipeline (`vibe run pipeline.yaml`) |
192
+ | `remix_highlights` | Long-form → highlight clips |
193
+ | `remix_auto_shorts` | Long-form → vertical shorts |
194
+ | `remix_regenerate_scene` | Re-render a single scene against an existing storyboard.{yaml,json} |
190
195
 
191
196
  ### Walkthrough (1)
192
197
 
@@ -225,7 +230,7 @@ API keys are read from the host's environment (`~/.zshrc`, MCP config `env` bloc
225
230
  | Variable | Used by |
226
231
  |----------|---------|
227
232
  | `OPENAI_API_KEY` | gpt-image-2, Whisper, GPT |
228
- | `ANTHROPIC_API_KEY` | Claude (translate-srt, highlights, scene_build compose pipeline) |
233
+ | `ANTHROPIC_API_KEY` | Claude (translate-srt, highlights, build compose pipeline) |
229
234
  | `GOOGLE_API_KEY` | Gemini (analyze, review, silence-cut, narrate) |
230
235
  | `ELEVENLABS_API_KEY` | TTS, voice-clone, dubbing, SFX |
231
236
  | `XAI_API_KEY` | Grok |
package/dist/index.js CHANGED
@@ -462655,7 +462655,7 @@ var sceneStylesTool = defineTool({
462655
462655
  name: "scene_styles",
462656
462656
  category: "scene",
462657
462657
  cost: "free",
462658
- description: "List the 8 vendored visual identities available for `scene_init --visual-style` (Swiss Pulse, Data Drift, \u2026) or, when `name` is provided, return the full DESIGN.md hard-gate body for one style. The DESIGN.md content is what the LLM uses as a non-negotiable visual rulebook during compose-scenes-with-skills.",
462658
+ description: "List the 8 vendored visual identities available for `init --visual-style` (Swiss Pulse, Data Drift, \u2026) or, when `name` is provided, return the full DESIGN.md hard-gate body for one style. The DESIGN.md content is what the LLM uses as a non-negotiable visual rulebook during compose-scenes-with-skills.",
462659
462659
  schema: sceneStylesSchema,
462660
462660
  async execute(args) {
462661
462661
  if (args.name) {
@@ -462715,7 +462715,7 @@ var sceneInitSchema = z.object({
462715
462715
  duration: z.number().optional().describe("Default root composition duration in seconds. Default 10.")
462716
462716
  });
462717
462717
  var sceneInitTool = defineTool({
462718
- name: "scene_init",
462718
+ name: "init",
462719
462719
  category: "scene",
462720
462720
  cost: "free",
462721
462721
  description: "Scaffold a new VibeFrame video scene project. Supports minimal, agent, and full profiles; full includes the current HTML render backend metadata. Idempotent: re-running keeps user-authored files and merges backend config instead of overwriting. No API keys required.",
@@ -462882,7 +462882,7 @@ var sceneRenderSchema = z.object({
462882
462882
  workers: z.number().optional().describe("Capture worker count (1-16). Default 1.")
462883
462883
  });
462884
462884
  var sceneRenderTool = defineTool({
462885
- name: "scene_render",
462885
+ name: "render",
462886
462886
  category: "scene",
462887
462887
  cost: "free",
462888
462888
  description: "Render a scene project to MP4/WebM/MOV via the Hyperframes producer. Requires Chrome installed locally. Output defaults to renders/<projectName>-<isoStamp>.<format>.",
@@ -462899,7 +462899,7 @@ var sceneRenderTool = defineTool({
462899
462899
  workers: args.workers
462900
462900
  });
462901
462901
  if (!result.success) {
462902
- return { success: false, error: result.error ?? "scene_render failed" };
462902
+ return { success: false, error: result.error ?? "render failed" };
462903
462903
  }
462904
462904
  return {
462905
462905
  success: true,
@@ -462937,10 +462937,10 @@ var sceneBuildSchema = z.object({
462937
462937
  force: z.boolean().optional().describe("Re-dispatch primitives even when cached assets exist.")
462938
462938
  });
462939
462939
  var sceneBuildTool = defineTool({
462940
- name: "scene_build",
462940
+ name: "build",
462941
462941
  category: "scene",
462942
462942
  cost: "high",
462943
- description: "v0.60 one-shot orchestrator: read STORYBOARD.md per-beat YAML cues (narration / backdrop / duration), dispatch TTS + image generation per beat, compose scene HTML via the compose-scenes-with-skills pipeline, then render to MP4. Use this instead of chaining scene_init + scene_add + scene_render manually. Caches by SHA256 of (DESIGN.md + cue body) so re-runs are idempotent and cheap.",
462943
+ description: "v0.60 one-shot orchestrator: read STORYBOARD.md per-beat YAML cues (narration / backdrop / duration), dispatch TTS + image generation per beat, compose scene HTML via the compose-scenes-with-skills pipeline, then render to MP4. Use this instead of chaining init + scene_add + render manually. Caches by SHA256 of (DESIGN.md + cue body) so re-runs are idempotent and cheap.",
462944
462944
  schema: sceneBuildSchema,
462945
462945
  async execute(args, ctx) {
462946
462946
  const projectDir = args.projectDir ? resolve23(ctx.workingDirectory, args.projectDir) : ctx.workingDirectory;
@@ -462960,7 +462960,7 @@ var sceneBuildTool = defineTool({
462960
462960
  force: args.force
462961
462961
  });
462962
462962
  if (!result.success) {
462963
- return { success: false, error: result.error ?? "scene_build failed" };
462963
+ return { success: false, error: result.error ?? "build failed" };
462964
462964
  }
462965
462965
  return {
462966
462966
  success: true,
@@ -463043,7 +463043,7 @@ var sceneComposePromptsTool = defineTool({
463043
463043
  name: "scene_compose_prompts",
463044
463044
  category: "scene",
463045
463045
  cost: "free",
463046
- description: "Emit the per-beat compose plan for the host agent to author scene HTML itself. Reads STORYBOARD.md + DESIGN.md and returns each beat's outputPath + userPrompt + cues + body, plus references to the project's SKILL.md (Hyperframes rules) and DESIGN.md (visual identity). The host agent writes each compositions/scene-<id>.html file directly \u2014 VibeFrame makes NO LLM call here. Pairs with scene_install_skill (Phase H1). Phase H2 of the agentic-native composer plan; the internal-LLM batch path (scene_build) remains as a fallback for non-agent contexts.",
463046
+ description: "Emit the per-beat compose plan for the host agent to author scene HTML itself. Reads STORYBOARD.md + DESIGN.md and returns each beat's outputPath + userPrompt + cues + body, plus references to the project's SKILL.md (Hyperframes rules) and DESIGN.md (visual identity). The host agent writes each compositions/scene-<id>.html file directly \u2014 VibeFrame makes NO LLM call here. Pairs with scene_install_skill (Phase H1). Phase H2 of the agentic-native composer plan; the internal-LLM batch path (build) remains as a fallback for non-agent contexts.",
463047
463047
  schema: sceneComposePromptsSchema,
463048
463048
  async execute(args, ctx) {
463049
463049
  const projectDir = resolve23(ctx.workingDirectory, args.projectDir);
@@ -463136,7 +463136,7 @@ var audioIsolateTool = defineTool({
463136
463136
  }
463137
463137
  });
463138
463138
  var audioVoiceCloneTool = defineTool({
463139
- name: "audio_voice_clone",
463139
+ name: "audio_clone_voice",
463140
463140
  category: "audio",
463141
463141
  cost: "low",
463142
463142
  description: "Clone a voice from audio samples using ElevenLabs. Requires ELEVENLABS_API_KEY.",
@@ -463923,7 +463923,7 @@ async function executeSuggestEdit(options) {
463923
463923
 
463924
463924
  // ../cli/src/tools/manifest/analyze.ts
463925
463925
  var analyzeMediaTool = defineTool({
463926
- name: "analyze_media",
463926
+ name: "inspect_media",
463927
463927
  category: "analyze",
463928
463928
  cost: "low",
463929
463929
  description: "Analyze media (image, video, or YouTube URL) using Gemini AI. Requires GOOGLE_API_KEY.",
@@ -463951,7 +463951,7 @@ var analyzeMediaTool = defineTool({
463951
463951
  }
463952
463952
  });
463953
463953
  var analyzeVideoTool = defineTool({
463954
- name: "analyze_video",
463954
+ name: "inspect_video",
463955
463955
  category: "analyze",
463956
463956
  cost: "low",
463957
463957
  description: "Analyze video content using Gemini AI with temporal understanding. Requires GOOGLE_API_KEY.",
@@ -463979,7 +463979,7 @@ var analyzeVideoTool = defineTool({
463979
463979
  }
463980
463980
  });
463981
463981
  var analyzeReviewTool = defineTool({
463982
- name: "analyze_review",
463982
+ name: "inspect_review",
463983
463983
  category: "analyze",
463984
463984
  cost: "low",
463985
463985
  description: "AI video review: analyzes quality, suggests fixes, and optionally auto-applies them. Requires GOOGLE_API_KEY.",
@@ -464007,7 +464007,7 @@ var analyzeReviewTool = defineTool({
464007
464007
  }
464008
464008
  });
464009
464009
  var analyzeSuggestTool = defineTool({
464010
- name: "analyze_suggest",
464010
+ name: "inspect_suggest",
464011
464011
  category: "analyze",
464012
464012
  cost: "low",
464013
464013
  description: "Get natural-language edit suggestions for a project from Gemini. Returns suggestions array with type/confidence/clipIds. With `apply: true`, applies the first suggestion in place. Requires GOOGLE_API_KEY.",
@@ -465325,7 +465325,7 @@ async function executePipeline(manifest2, options = {}) {
465325
465325
 
465326
465326
  // ../cli/src/tools/manifest/pipeline.ts
465327
465327
  var pipelineHighlightsTool = defineTool({
465328
- name: "pipeline_highlights",
465328
+ name: "remix_highlights",
465329
465329
  category: "pipeline",
465330
465330
  cost: "low",
465331
465331
  description: "Extract highlight clips from a longer video using AI analysis. Requires OPENAI_API_KEY+ANTHROPIC_API_KEY or GOOGLE_API_KEY (with --use-gemini).",
@@ -465358,10 +465358,10 @@ var pipelineHighlightsTool = defineTool({
465358
465358
  }
465359
465359
  });
465360
465360
  var pipelineAutoShortsTool = defineTool({
465361
- name: "pipeline_auto_shorts",
465361
+ name: "remix_auto_shorts",
465362
465362
  category: "pipeline",
465363
465363
  cost: "medium",
465364
- description: "Automatically generate short-form content (Reels/TikTok/Shorts) from a longer video. Same API key requirements as pipeline_highlights.",
465364
+ description: "Automatically generate short-form content (Reels/TikTok/Shorts) from a longer video. Same API key requirements as remix_highlights.",
465365
465365
  schema: z6.object({
465366
465366
  video: z6.string().describe("Path to the input video file"),
465367
465367
  outputDir: z6.string().optional().describe("Output directory for shorts"),
@@ -465395,7 +465395,7 @@ var pipelineAutoShortsTool = defineTool({
465395
465395
  }
465396
465396
  });
465397
465397
  var pipelineRunTool = defineTool({
465398
- name: "pipeline_run",
465398
+ name: "run",
465399
465399
  category: "pipeline",
465400
465400
  cost: "very-high",
465401
465401
  surfaces: ["mcp"],
@@ -465474,7 +465474,7 @@ var pipelineRunTool = defineTool({
465474
465474
  }
465475
465475
  });
465476
465476
  var pipelineRegenerateSceneTool = defineTool({
465477
- name: "pipeline_regenerate_scene",
465477
+ name: "remix_regenerate_scene",
465478
465478
  category: "pipeline",
465479
465479
  cost: "high",
465480
465480
  description: "Regenerate specific scenes against an existing storyboard.{yaml,json} on disk. Can regenerate video, image, or narration independently.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/mcp-server",
3
- "version": "0.75.0",
3
+ "version": "0.76.0",
4
4
  "description": "VibeFrame MCP Server - AI-native video editing via Model Context Protocol",
5
5
  "type": "module",
6
6
  "bin": {
@@ -57,8 +57,8 @@
57
57
  "tsx": "^4.21.0",
58
58
  "typescript": "^5.3.3",
59
59
  "vitest": "^1.2.2",
60
- "@vibeframe/cli": "0.75.0",
61
- "@vibeframe/core": "0.75.0"
60
+ "@vibeframe/core": "0.76.0",
61
+ "@vibeframe/cli": "0.76.0"
62
62
  },
63
63
  "engines": {
64
64
  "node": ">=20"