@mthines/reaper-mcp 0.1.1 → 0.1.3
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/main.js +11 -5
- package/package.json +5 -1
package/main.js
CHANGED
|
@@ -541,6 +541,11 @@ import { copyFileSync, existsSync, mkdirSync, readdirSync, statSync } from "node
|
|
|
541
541
|
import { join as join2, dirname } from "node:path";
|
|
542
542
|
import { fileURLToPath } from "node:url";
|
|
543
543
|
var __dirname = dirname(fileURLToPath(import.meta.url));
|
|
544
|
+
function resolveAssetDir(name) {
|
|
545
|
+
const sibling = join2(__dirname, name);
|
|
546
|
+
if (existsSync(sibling)) return sibling;
|
|
547
|
+
return join2(__dirname, "..", name);
|
|
548
|
+
}
|
|
544
549
|
function copyDirSync(src, dest) {
|
|
545
550
|
if (!existsSync(src)) return 0;
|
|
546
551
|
mkdirSync(dest, { recursive: true });
|
|
@@ -573,7 +578,8 @@ async function setup() {
|
|
|
573
578
|
`);
|
|
574
579
|
const scriptsDir = getReaperScriptsPath();
|
|
575
580
|
mkdirSync(scriptsDir, { recursive: true });
|
|
576
|
-
const
|
|
581
|
+
const reaperDir = resolveAssetDir("reaper");
|
|
582
|
+
const luaSrc = join2(reaperDir, "mcp_bridge.lua");
|
|
577
583
|
const luaDest = join2(scriptsDir, "mcp_bridge.lua");
|
|
578
584
|
console.log("Installing Lua bridge...");
|
|
579
585
|
installFile(luaSrc, luaDest, "mcp_bridge.lua");
|
|
@@ -587,7 +593,7 @@ async function setup() {
|
|
|
587
593
|
];
|
|
588
594
|
console.log("\nInstalling JSFX analyzers...");
|
|
589
595
|
for (const jsfx of jsfxFiles) {
|
|
590
|
-
const src = join2(
|
|
596
|
+
const src = join2(reaperDir, jsfx);
|
|
591
597
|
const dest = join2(effectsDir, jsfx);
|
|
592
598
|
installFile(src, dest, jsfx);
|
|
593
599
|
}
|
|
@@ -602,7 +608,7 @@ async function setup() {
|
|
|
602
608
|
async function installSkills() {
|
|
603
609
|
console.log("REAPER MCP \u2014 Install AI Mix Engineer Skills\n");
|
|
604
610
|
const targetDir = process.cwd();
|
|
605
|
-
const knowledgeSrc =
|
|
611
|
+
const knowledgeSrc = resolveAssetDir("knowledge");
|
|
606
612
|
const knowledgeDest = join2(targetDir, "knowledge");
|
|
607
613
|
if (existsSync(knowledgeSrc)) {
|
|
608
614
|
const count = copyDirSync(knowledgeSrc, knowledgeDest);
|
|
@@ -610,7 +616,7 @@ async function installSkills() {
|
|
|
610
616
|
} else {
|
|
611
617
|
console.log("Knowledge base not found in package. Skipping.");
|
|
612
618
|
}
|
|
613
|
-
const rulesSrc =
|
|
619
|
+
const rulesSrc = resolveAssetDir("claude-rules");
|
|
614
620
|
const rulesDir = join2(targetDir, ".claude", "rules");
|
|
615
621
|
if (existsSync(rulesSrc)) {
|
|
616
622
|
const count = copyDirSync(rulesSrc, rulesDir);
|
|
@@ -618,7 +624,7 @@ async function installSkills() {
|
|
|
618
624
|
} else {
|
|
619
625
|
console.log("Claude rules not found in package. Skipping.");
|
|
620
626
|
}
|
|
621
|
-
const skillsSrc =
|
|
627
|
+
const skillsSrc = resolveAssetDir("claude-skills");
|
|
622
628
|
const skillsDir = join2(targetDir, ".claude", "skills");
|
|
623
629
|
if (existsSync(skillsSrc)) {
|
|
624
630
|
const count = copyDirSync(skillsSrc, skillsDir);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mthines/reaper-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "MCP server for controlling REAPER DAW — real-time mixing, FX control, and frequency analysis for AI agents",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,6 +26,10 @@
|
|
|
26
26
|
"bin": {
|
|
27
27
|
"reaper-mcp": "./main.js"
|
|
28
28
|
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
31
|
+
"zod": "^3.24.0"
|
|
32
|
+
},
|
|
29
33
|
"engines": {
|
|
30
34
|
"node": ">=20.0.0"
|
|
31
35
|
},
|