@ericdisero/aurora-mcp-server 0.1.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 ADDED
@@ -0,0 +1,36 @@
1
+ # @ericdisero/aurora-mcp-server
2
+
3
+ Stdio MCP server for **Aurora**, the AI audio workbench. Gives Claude (or any MCP client) full control of a local music library: generate tracks, style-transform covers, manufacture key/tempo-locked samples, split anything into 7 stems, layer the stack, export DAW-ready aligned WAVs. **27 tools.** Files land on disk in real project folders the Aurora app shows live.
4
+
5
+ ## Install
6
+
7
+ ```json
8
+ {
9
+ "mcpServers": {
10
+ "aurora": {
11
+ "command": "npx",
12
+ "args": ["-y", "@ericdisero/aurora-mcp-server"],
13
+ "env": {
14
+ "SUNO_API_KEY": "<your sunoapi.org key>",
15
+ "MVSEP_API_KEY": "<your mvsep key>"
16
+ }
17
+ }
18
+ }
19
+ }
20
+ ```
21
+
22
+ Claude Code: `claude mcp add aurora -- npx -y @ericdisero/aurora-mcp-server`
23
+
24
+ The `env` block is optional if keys are stored via the CLI (`aurora keys --suno-api-key … --mvsep-api-key …` → `~/.aurora/config.json`).
25
+
26
+ ## Highlights
27
+
28
+ - **Standalone** — works against Aurora's database + project folders directly; the desktop app doesn't need to be running.
29
+ - **Background jobs** — `background: true` on generate/cover/sounds/split returns a jobId; `aurora_get_job_status` polls, downloads, and registers results. Jobs survive restarts.
30
+ - **Streaming preview** — in-flight generations expose `streamUrls`: listenable ~30-45s in, minutes before files land.
31
+ - **Progressive stems** — splits land vocals/drums/bass stems as each separation job finishes; everything-else last.
32
+ - **Cost discipline built in** — `aurora_get_credits` is free; destructive ops require `confirm: true`; re-splitting an already-split asset is refused.
33
+
34
+ Full docs: [github.com/EricDisero/aurora-mcp](https://github.com/EricDisero/aurora-mcp). CLI sibling: `@ericdisero/aurora-cli`.
35
+
36
+ MIT. Copyright Blueprint Online Learning Inc.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/server.js ADDED
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
5
+ import { zodToJsonSchema } from 'zod-to-json-schema';
6
+ import { readFileSync } from 'node:fs';
7
+ import { join, dirname } from 'node:path';
8
+ import { fileURLToPath } from 'node:url';
9
+ import { ALL_OPERATIONS } from '@ericdisero/aurora-shared';
10
+ // Aurora MCP server. Stdio transport. Wires every operation in
11
+ // @ericdisero/aurora-shared as an MCP tool. Standalone — works against
12
+ // Aurora's userData DB + project folders directly; no running app required.
13
+ // Provider keys come from env (MCP config "env" block) or ~/.aurora/config.json
14
+ // (written by `aurora keys set`).
15
+ //
16
+ // { "command": "npx", "args": ["-y", "@ericdisero/aurora-mcp-server"],
17
+ // "env": { "SUNO_API_KEY": "...", "MVSEP_API_KEY": "..." } }
18
+ const ops = ALL_OPERATIONS;
19
+ const opsById = new Map(ops.map((o) => [o.id, o]));
20
+ // Version comes from this package's own package.json (dist/server.js →
21
+ // ../package.json) so the reported version never drifts from the publish.
22
+ const pkg = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), '..', 'package.json'), 'utf8'));
23
+ const server = new Server({ name: 'aurora-audio', version: pkg.version }, { capabilities: { tools: {} } });
24
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
25
+ tools: ops.map((op) => ({
26
+ name: op.id,
27
+ description: op.description,
28
+ inputSchema: zodToJsonSchema(op.input, { target: 'openApi3' })
29
+ }))
30
+ }));
31
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
32
+ const op = opsById.get(request.params.name);
33
+ if (!op) {
34
+ return {
35
+ content: [{ type: 'text', text: `Unknown tool: ${request.params.name}` }],
36
+ isError: true
37
+ };
38
+ }
39
+ try {
40
+ const args = op.input.parse(request.params.arguments ?? {});
41
+ const result = await op.run(args);
42
+ return { content: [{ type: 'text', text: result.text }] };
43
+ }
44
+ catch (err) {
45
+ const message = err instanceof Error ? err.message : String(err);
46
+ return {
47
+ content: [{ type: 'text', text: `Error: ${message}` }],
48
+ isError: true
49
+ };
50
+ }
51
+ });
52
+ async function main() {
53
+ const transport = new StdioServerTransport();
54
+ await server.connect(transport);
55
+ console.error(`[aurora-mcp] server started, ${ops.length} tools registered`);
56
+ }
57
+ main().catch((err) => {
58
+ console.error('[aurora-mcp] fatal:', err);
59
+ process.exit(1);
60
+ });
61
+ //# sourceMappingURL=server.js.map
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@ericdisero/aurora-mcp-server",
3
+ "version": "0.1.0",
4
+ "description": "MCP server for Aurora, the AI audio workbench. Your AI agent (Claude, Cursor, or any MCP client) drives music generation, covers, sample manufacturing, 7-stem separation, and DAW-ready stem organization. Files land on disk.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "bin": {
8
+ "aurora-mcp-server": "./dist/server.js"
9
+ },
10
+ "main": "./dist/server.js",
11
+ "files": ["dist", "!dist/**/*.map", "README.md"],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "start": "node dist/server.js",
15
+ "typecheck": "tsc --noEmit",
16
+ "prepublishOnly": "npm run build"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/EricDisero/aurora-mcp.git",
21
+ "directory": "packages/mcp"
22
+ },
23
+ "keywords": [
24
+ "mcp",
25
+ "model-context-protocol",
26
+ "mcp-server",
27
+ "ai-music",
28
+ "music-generation",
29
+ "stem-separation",
30
+ "suno",
31
+ "mvsep",
32
+ "claude",
33
+ "claude-desktop",
34
+ "cursor",
35
+ "aurora"
36
+ ],
37
+ "engines": {
38
+ "node": ">=18"
39
+ },
40
+ "dependencies": {
41
+ "@ericdisero/aurora-shared": "0.1.0",
42
+ "@modelcontextprotocol/sdk": "^1.0.0",
43
+ "zod": "^3.23.0",
44
+ "zod-to-json-schema": "^3.23.0"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^20.0.0",
48
+ "typescript": "^5.7.0"
49
+ }
50
+ }