@vibeframe/mcp-server 0.75.0 → 0.77.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/README.md +25 -20
- package/dist/index.js +36 -36
- 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 `
|
|
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
|
-
> *→ `
|
|
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 `
|
|
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
|
-
###
|
|
89
|
+
### Project flow (top-level)
|
|
90
90
|
|
|
91
91
|
| Tool | Description |
|
|
92
92
|
|------|-------------|
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
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)
|
|
98
|
+
|
|
99
|
+
| Tool | Description |
|
|
100
|
+
|------|-------------|
|
|
101
|
+
| `scene_list_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
|
-
| `
|
|
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
|
-
###
|
|
160
|
+
### Inspection (4)
|
|
156
161
|
|
|
157
162
|
| Tool | Description |
|
|
158
163
|
|------|-------------|
|
|
159
|
-
| `
|
|
160
|
-
| `
|
|
161
|
-
| `
|
|
162
|
-
| `
|
|
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
|
-
###
|
|
187
|
+
### Remix & pipelines (4)
|
|
183
188
|
|
|
184
189
|
| Tool | Description |
|
|
185
190
|
|------|-------------|
|
|
186
|
-
| `
|
|
187
|
-
| `
|
|
188
|
-
| `
|
|
189
|
-
| `
|
|
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,
|
|
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
|
@@ -7410,7 +7410,7 @@ function buildEmptyRootHtml(opts) {
|
|
|
7410
7410
|
}
|
|
7411
7411
|
function buildDesignMd(opts) {
|
|
7412
7412
|
const { name, style } = opts;
|
|
7413
|
-
const intro = style ? `Visual identity for **${name}**, scaffolded from the **${style.name}** style (after ${style.designer}). Customise freely \u2014 this file is the single source of truth for every scene's palette, typography, and motion.` : `Visual identity for **${name}**. Fill the sections below before authoring any scene HTML or generating any backdrop. Pick a named style with \`vibe scene styles\` if you want a credible starting point.`;
|
|
7413
|
+
const intro = style ? `Visual identity for **${name}**, scaffolded from the **${style.name}** style (after ${style.designer}). Customise freely \u2014 this file is the single source of truth for every scene's palette, typography, and motion.` : `Visual identity for **${name}**. Fill the sections below before authoring any scene HTML or generating any backdrop. Pick a named style with \`vibe scene list-styles\` if you want a credible starting point.`;
|
|
7414
7414
|
const moodLine = style ? `**Mood:** ${style.mood} \xB7 **Best for:** ${style.bestFor}` : `**Mood:** _(one line \u2014 what should the viewer FEEL?)_`;
|
|
7415
7415
|
const palette = style ? `${style.palette.map((c) => `- \`${c}\``).join("\n")}
|
|
7416
7416
|
|
|
@@ -7468,7 +7468,7 @@ ${avoid}
|
|
|
7468
7468
|
|
|
7469
7469
|
---
|
|
7470
7470
|
|
|
7471
|
-
_Browse other named styles: \`vibe scene styles\`_
|
|
7471
|
+
_Browse other named styles: \`vibe scene list-styles\`_
|
|
7472
7472
|
${style ? `_This file was seeded by \`vibe scene init --visual-style "${style.name}"\`._` : `_Seed this file from a named style: \`vibe scene init <dir> --visual-style "<name>"\`._`}
|
|
7473
7473
|
`;
|
|
7474
7474
|
}
|
|
@@ -7534,7 +7534,7 @@ typography, motion, and transition rules. Both the agent-driven path and
|
|
|
7534
7534
|
the fallback emit reference it; scenes that contradict DESIGN.md are
|
|
7535
7535
|
rejected by the Hyperframes \`hyperframes\` skill.
|
|
7536
7536
|
|
|
7537
|
-
Browse named styles: \`vibe scene styles\`. Re-seed from one with
|
|
7537
|
+
Browse named styles: \`vibe scene list-styles\`. Re-seed from one with
|
|
7538
7538
|
\`vibe scene init . --visual-style "Swiss Pulse"\` (idempotent).
|
|
7539
7539
|
|
|
7540
7540
|
## Skills \u2014 USE THESE FIRST
|
|
@@ -18508,8 +18508,8 @@ var init_elevenlabs = __esm({
|
|
|
18508
18508
|
"generate speech",
|
|
18509
18509
|
"generate sound-effect",
|
|
18510
18510
|
"generate music",
|
|
18511
|
-
"audio voices",
|
|
18512
|
-
"audio voice
|
|
18511
|
+
"audio list-voices",
|
|
18512
|
+
"audio clone-voice",
|
|
18513
18513
|
"audio dub"
|
|
18514
18514
|
]
|
|
18515
18515
|
});
|
|
@@ -454660,7 +454660,7 @@ Run 'vibe schema edit.<command>' for structured parameter info.
|
|
|
454660
454660
|
exitWithError(generalError(`Frame interpolation failed: ${msg}`));
|
|
454661
454661
|
}
|
|
454662
454662
|
});
|
|
454663
|
-
editCommand.command("upscale
|
|
454663
|
+
editCommand.command("upscale").description("Upscale video resolution using AI or FFmpeg").argument("<video>", "Video file path").option("-o, --output <path>", "Output file path").option("-s, --scale <factor>", "Scale factor: 2 or 4", "2").option("-m, --model <model>", "Model: real-esrgan, topaz", "real-esrgan").option("--ffmpeg", "Use FFmpeg lanczos (free, no API)").option("-k, --api-key <key>", "Replicate API token (or set REPLICATE_API_TOKEN env)").option("--no-wait", "Start processing and return task ID without waiting").option("--dry-run", "Preview parameters without executing").action(async (videoPath, options) => {
|
|
454664
454664
|
const startedAt = Date.now();
|
|
454665
454665
|
try {
|
|
454666
454666
|
if (options.output) {
|
|
@@ -454673,7 +454673,7 @@ Run 'vibe schema edit.<command>' for structured parameter info.
|
|
|
454673
454673
|
}
|
|
454674
454674
|
if (options.dryRun) {
|
|
454675
454675
|
outputSuccess({
|
|
454676
|
-
command: "edit upscale
|
|
454676
|
+
command: "edit upscale",
|
|
454677
454677
|
startedAt,
|
|
454678
454678
|
dryRun: true,
|
|
454679
454679
|
data: {
|
|
@@ -454709,7 +454709,7 @@ Run 'vibe schema edit.<command>' for structured parameter info.
|
|
|
454709
454709
|
spinner3.succeed(source_default.green(`Upscaled to ${newWidth}x${newHeight}`));
|
|
454710
454710
|
if (isJsonMode()) {
|
|
454711
454711
|
outputSuccess({
|
|
454712
|
-
command: "edit upscale
|
|
454712
|
+
command: "edit upscale",
|
|
454713
454713
|
startedAt,
|
|
454714
454714
|
data: {
|
|
454715
454715
|
dimensions: `${newWidth}x${newHeight}`,
|
|
@@ -462016,7 +462016,7 @@ Examples:
|
|
|
462016
462016
|
$ vibe scene lint # Validate every scene against composition rules
|
|
462017
462017
|
$ vibe scene lint --fix # Auto-fix mechanical issues (e.g. missing class="clip")
|
|
462018
462018
|
$ vibe scene lint --json # Structured output for agent loops
|
|
462019
|
-
$ vibe scene styles # Browse seed visual styles for DESIGN.md
|
|
462019
|
+
$ vibe scene list-styles # Browse seed visual styles for DESIGN.md
|
|
462020
462020
|
|
|
462021
462021
|
For the project flow (init / build / render), use the top-level commands.
|
|
462022
462022
|
The \`scene init\`, \`scene build\`, and \`scene render\` legacy aliases
|
|
@@ -462131,13 +462131,13 @@ sceneCommand.command("compose-prompts").description("Emit the per-beat compose p
|
|
|
462131
462131
|
console.log();
|
|
462132
462132
|
console.log(source_default.dim("Re-run with --json to get the full per-beat userPrompt + cues for direct consumption."));
|
|
462133
462133
|
});
|
|
462134
|
-
sceneCommand.command("styles").description("List vendored visual styles (or show one) for DESIGN.md seeding").argument("[name]", "Style name to inspect (omit to list all)").action((name) => {
|
|
462134
|
+
sceneCommand.command("list-styles").description("List vendored visual styles (or show one) for DESIGN.md seeding").argument("[name]", "Style name to inspect (omit to list all)").action((name) => {
|
|
462135
462135
|
const startedAt = Date.now();
|
|
462136
462136
|
if (!name) {
|
|
462137
462137
|
const all = listVisualStyles();
|
|
462138
462138
|
if (isJsonMode()) {
|
|
462139
462139
|
outputSuccess({
|
|
462140
|
-
command: "scene styles",
|
|
462140
|
+
command: "scene list-styles",
|
|
462141
462141
|
startedAt,
|
|
462142
462142
|
data: {
|
|
462143
462143
|
count: all.length,
|
|
@@ -462161,7 +462161,7 @@ sceneCommand.command("styles").description("List vendored visual styles (or show
|
|
|
462161
462161
|
);
|
|
462162
462162
|
}
|
|
462163
462163
|
console.log();
|
|
462164
|
-
console.log(source_default.dim("Show details: "), source_default.cyan('vibe scene styles "<name>"'));
|
|
462164
|
+
console.log(source_default.dim("Show details: "), source_default.cyan('vibe scene list-styles "<name>"'));
|
|
462165
462165
|
console.log(source_default.dim("Seed DESIGN.md:"), source_default.cyan('vibe scene init <dir> --visual-style "<name>"'));
|
|
462166
462166
|
return;
|
|
462167
462167
|
}
|
|
@@ -462177,7 +462177,7 @@ sceneCommand.command("styles").description("List vendored visual styles (or show
|
|
|
462177
462177
|
}
|
|
462178
462178
|
if (isJsonMode()) {
|
|
462179
462179
|
outputSuccess({
|
|
462180
|
-
command: "scene styles",
|
|
462180
|
+
command: "scene list-styles",
|
|
462181
462181
|
startedAt,
|
|
462182
462182
|
data: { style }
|
|
462183
462183
|
});
|
|
@@ -462652,10 +462652,10 @@ var sceneStylesSchema = z.object({
|
|
|
462652
462652
|
)
|
|
462653
462653
|
});
|
|
462654
462654
|
var sceneStylesTool = defineTool({
|
|
462655
|
-
name: "
|
|
462655
|
+
name: "scene_list_styles",
|
|
462656
462656
|
category: "scene",
|
|
462657
462657
|
cost: "free",
|
|
462658
|
-
description: "List the 8 vendored visual identities available for `
|
|
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) {
|
|
@@ -462663,7 +462663,7 @@ var sceneStylesTool = defineTool({
|
|
|
462663
462663
|
if (!style) {
|
|
462664
462664
|
return {
|
|
462665
462665
|
success: false,
|
|
462666
|
-
error: `Unknown visual style "${args.name}". Run
|
|
462666
|
+
error: `Unknown visual style "${args.name}". Run scene_list_styles with no name to list all 8.`
|
|
462667
462667
|
};
|
|
462668
462668
|
}
|
|
462669
462669
|
return {
|
|
@@ -462703,7 +462703,7 @@ var sceneStylesTool = defineTool({
|
|
|
462703
462703
|
(s) => ` \u2022 ${s.name} (${s.slug}) \u2014 ${s.mood}; best for ${s.bestFor}`
|
|
462704
462704
|
),
|
|
462705
462705
|
``,
|
|
462706
|
-
`Run
|
|
462706
|
+
`Run scene_list_styles { name: "<slug>" } to fetch the full DESIGN.md hard-gate body for one style.`
|
|
462707
462707
|
]
|
|
462708
462708
|
};
|
|
462709
462709
|
}
|
|
@@ -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: "
|
|
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: "
|
|
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 ?? "
|
|
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: "
|
|
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
|
|
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 ?? "
|
|
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 (
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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
|
|
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: "
|
|
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: "
|
|
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.",
|
|
@@ -467728,7 +467728,7 @@ Safe to invoke on user-provided projects.
|
|
|
467728
467728
|
|
|
467729
467729
|
\`\`\`bash
|
|
467730
467730
|
vibe scene init <dir> [-r 16:9|9:16|1:1|4:5] [-d <sec>] [--visual-style "<name>"]
|
|
467731
|
-
vibe scene styles [<name>] # list / show vendored visual identities
|
|
467731
|
+
vibe scene list-styles [<name>] # list / show vendored visual identities
|
|
467732
467732
|
vibe scene install-skill [<dir>] [--host all] # retroactive composition-rules install
|
|
467733
467733
|
vibe scene add <name> --style <preset> [...]
|
|
467734
467734
|
vibe scene compose-prompts [<dir>] [--beat <id>] # H2: emit plan, no LLM call
|
|
@@ -467916,7 +467916,7 @@ var META = {
|
|
|
467916
467916
|
],
|
|
467917
467917
|
relatedCommands: [
|
|
467918
467918
|
"vibe init",
|
|
467919
|
-
"vibe scene styles",
|
|
467919
|
+
"vibe scene list-styles",
|
|
467920
467920
|
"vibe scene install-skill",
|
|
467921
467921
|
"vibe scene compose-prompts",
|
|
467922
467922
|
"vibe build",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibeframe/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.77.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.
|
|
61
|
-
"@vibeframe/core": "0.
|
|
60
|
+
"@vibeframe/cli": "0.77.0",
|
|
61
|
+
"@vibeframe/core": "0.77.0"
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
64
|
"node": ">=20"
|