@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.
- package/README.md +24 -1
- package/dist/index.js +39 -2
- 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
|
|
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
|
|
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.
|
|
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.
|
|
64
|
-
"@vibeframe/cli": "0.
|
|
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",
|