@vibeframe/mcp-server 0.108.1 → 0.109.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 -1
  2. package/dist/index.js +39 -2
  3. package/package.json +4 -3
package/README.md CHANGED
@@ -41,7 +41,26 @@ args = ["-y", "@vibeframe/mcp-server"]
41
41
  enabled = true
42
42
  ```
43
43
 
44
- ### Claude Desktop
44
+ ### Claude Desktop (recommended: extension)
45
+
46
+ Install the prebuilt Desktop Extension — no Node, npx, or JSON editing needed:
47
+
48
+ 1. Download `vibeframe-<version>.mcpb` from the
49
+ [latest GitHub Release](https://github.com/vericontext/vibeframe/releases/latest).
50
+ 2. In Claude Desktop open **Settings → Extensions** and drag the `.mcpb` file in
51
+ (or double-click the file).
52
+ 3. In the extension's settings pick your **Workspace folder** (projects are
53
+ created there; a `.env` file in that folder is loaded for API keys) and
54
+ optionally paste provider keys.
55
+
56
+ Rendering still needs Google Chrome and `ffmpeg` on the machine. For free local
57
+ Kokoro TTS, run `npm i kokoro-js` once inside the workspace folder. To update,
58
+ download the new release's `.mcpb` and install it over the old one.
59
+
60
+ To build the bundle from source: `pnpm -F @vibeframe/mcp-server build:mcpb`
61
+ (output in `packages/mcp-server/dist-mcpb/`).
62
+
63
+ #### Claude Desktop (manual JSON config)
45
64
 
46
65
  Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
47
66
 
@@ -64,6 +83,10 @@ config and may not preserve a raw `cwd` field. It anchors relative project paths
64
83
  so prompts like "create a project named launch" create `launch/` under your
65
84
  workspace instead of a temporary directory.
66
85
 
86
+ Note: some Claude Desktop builds rewrite this file from memory and can mangle
87
+ hand-edited entries (the entry comes back as `"command": "custom"`). The
88
+ extension install above avoids that entirely and is the recommended path.
89
+
67
90
  ### Cursor
68
91
 
69
92
  Add to `.cursor/mcp.json`:
package/dist/index.js CHANGED
@@ -4730,13 +4730,32 @@ async function loadKokoroFactory() {
4730
4730
  const mod = await import("kokoro-js");
4731
4731
  return mod.KokoroTTS;
4732
4732
  } catch (err) {
4733
+ const fallback2 = await loadKokoroFromWorkspace();
4734
+ if (fallback2)
4735
+ return fallback2;
4733
4736
  throw mapKokoroImportError(err);
4734
4737
  }
4735
4738
  }
4739
+ async function loadKokoroFromWorkspace(baseDir = process.cwd()) {
4740
+ try {
4741
+ const { readFile: readFile45 } = await import("node:fs/promises");
4742
+ const { join: join44, resolve: resolve79 } = await import("node:path");
4743
+ const { pathToFileURL } = await import("node:url");
4744
+ const pkgDir = resolve79(baseDir, "node_modules", "kokoro-js");
4745
+ const pkg = JSON.parse(await readFile45(join44(pkgDir, "package.json"), "utf-8"));
4746
+ const entry = pkg.exports?.node?.import ?? pkg.exports?.default ?? pkg.module ?? pkg.main;
4747
+ if (!entry)
4748
+ return null;
4749
+ const mod = await import(pathToFileURL(join44(pkgDir, entry)).href);
4750
+ return mod.KokoroTTS ?? null;
4751
+ } catch {
4752
+ return null;
4753
+ }
4754
+ }
4736
4755
  function mapKokoroImportError(err) {
4737
4756
  const code = err instanceof Error && "code" in err ? err.code : void 0;
4738
4757
  if (code === "ERR_MODULE_NOT_FOUND" || code === "MODULE_NOT_FOUND") {
4739
- return new Error("Local Kokoro TTS is unavailable: optional dependency kokoro-js is not installed (its native dependencies may have failed to build on this platform). Install it with `npm i kokoro-js`, or set ELEVENLABS_API_KEY to use the elevenlabs TTS provider instead.");
4758
+ return new Error("Local Kokoro TTS is unavailable: optional dependency kokoro-js is not installed (its native dependencies may have failed to build on this platform). Install it with `npm i kokoro-js` \u2014 run it inside your workspace folder when using the Claude Desktop extension \u2014 or set ELEVENLABS_API_KEY to use the elevenlabs TTS provider instead.");
4740
4759
  }
4741
4760
  return err instanceof Error ? err : new Error(String(err));
4742
4761
  }
@@ -497687,7 +497706,23 @@ This creates a music video-style edit where cuts happen in rhythm with the music
497687
497706
  }
497688
497707
 
497689
497708
  // src/instructions.ts
497709
+ import { mkdirSync as mkdirSync13 } from "node:fs";
497690
497710
  import { isAbsolute as isAbsolute9, resolve as resolve78 } from "node:path";
497711
+ function applyWorkspaceEnv(env4 = process.env, chdir = (dir) => process.chdir(dir)) {
497712
+ const raw2 = env4.VIBE_MCP_WORKSPACE?.trim();
497713
+ if (!raw2) return null;
497714
+ const dir = resolve78(raw2);
497715
+ try {
497716
+ mkdirSync13(dir, { recursive: true });
497717
+ chdir(dir);
497718
+ return dir;
497719
+ } catch (error) {
497720
+ console.error(
497721
+ `[vibeframe] Could not use VIBE_MCP_WORKSPACE=${raw2} (${error instanceof Error ? error.message : String(error)}); staying in ${process.cwd()}`
497722
+ );
497723
+ return null;
497724
+ }
497725
+ }
497691
497726
  function resolveServerWorkspaceRoot(env4 = process.env, cwd = process.cwd()) {
497692
497727
  const initCwd = env4.INIT_CWD?.trim();
497693
497728
  if (!initCwd) return cwd;
@@ -497707,10 +497742,12 @@ function buildServerInstructions(cwd = resolveServerWorkspaceRoot()) {
497707
497742
  console.log = (...args) => console.error(...args);
497708
497743
  console.info = (...args) => console.error(...args);
497709
497744
  console.debug = (...args) => console.error(...args);
497745
+ applyWorkspaceEnv();
497710
497746
  var server2 = new Server(
497711
497747
  {
497712
497748
  name: "vibeframe",
497713
- version: "0.1.0"
497749
+ // Stamped with the package version by build.js at bundle time.
497750
+ version: "0.109.0"
497714
497751
  },
497715
497752
  {
497716
497753
  capabilities: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/mcp-server",
3
- "version": "0.108.1",
3
+ "version": "0.109.0",
4
4
  "description": "VibeFrame MCP Server - AI-native video editing via Model Context Protocol",
5
5
  "type": "module",
6
6
  "bin": {
@@ -60,14 +60,15 @@
60
60
  "tsx": "^4.21.0",
61
61
  "typescript": "^5.3.3",
62
62
  "vitest": "^1.2.2",
63
- "@vibeframe/core": "0.108.1",
64
- "@vibeframe/cli": "0.108.1"
63
+ "@vibeframe/core": "0.109.0",
64
+ "@vibeframe/cli": "0.109.0"
65
65
  },
66
66
  "engines": {
67
67
  "node": ">=20"
68
68
  },
69
69
  "scripts": {
70
70
  "build": "node build.js",
71
+ "build:mcpb": "node build-mcpb.js",
71
72
  "build:types": "tsc --emitDeclarationOnly",
72
73
  "dev": "tsx src/index.ts",
73
74
  "start": "node dist/index.js",