junobuild-mcp-server 1.0.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 +75 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +37 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants.d.ts +24 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/changes.d.ts +41 -0
- package/dist/schemas/changes.d.ts.map +1 -0
- package/dist/schemas/changes.js +17 -0
- package/dist/schemas/changes.js.map +1 -0
- package/dist/schemas/common.d.ts +6 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +6 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/config.d.ts +41 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +16 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/schemas/emulator.d.ts +27 -0
- package/dist/schemas/emulator.d.ts.map +1 -0
- package/dist/schemas/emulator.js +13 -0
- package/dist/schemas/emulator.js.map +1 -0
- package/dist/schemas/functions.d.ts +72 -0
- package/dist/schemas/functions.d.ts.map +1 -0
- package/dist/schemas/functions.js +27 -0
- package/dist/schemas/functions.js.map +1 -0
- package/dist/schemas/hosting.d.ts +62 -0
- package/dist/schemas/hosting.d.ts.map +1 -0
- package/dist/schemas/hosting.js +22 -0
- package/dist/schemas/hosting.js.map +1 -0
- package/dist/schemas/identity.d.ts +42 -0
- package/dist/schemas/identity.d.ts.map +1 -0
- package/dist/schemas/identity.js +16 -0
- package/dist/schemas/identity.js.map +1 -0
- package/dist/schemas/modules.d.ts +63 -0
- package/dist/schemas/modules.d.ts.map +1 -0
- package/dist/schemas/modules.js +23 -0
- package/dist/schemas/modules.js.map +1 -0
- package/dist/schemas/snapshot.d.ts +86 -0
- package/dist/schemas/snapshot.d.ts.map +1 -0
- package/dist/schemas/snapshot.js +30 -0
- package/dist/schemas/snapshot.js.map +1 -0
- package/dist/tools/changes.d.ts +3 -0
- package/dist/tools/changes.d.ts.map +1 -0
- package/dist/tools/changes.js +64 -0
- package/dist/tools/changes.js.map +1 -0
- package/dist/tools/config.d.ts +3 -0
- package/dist/tools/config.d.ts.map +1 -0
- package/dist/tools/config.js +69 -0
- package/dist/tools/config.js.map +1 -0
- package/dist/tools/emulator.d.ts +3 -0
- package/dist/tools/emulator.d.ts.map +1 -0
- package/dist/tools/emulator.js +72 -0
- package/dist/tools/emulator.js.map +1 -0
- package/dist/tools/functions.d.ts +3 -0
- package/dist/tools/functions.d.ts.map +1 -0
- package/dist/tools/functions.js +96 -0
- package/dist/tools/functions.js.map +1 -0
- package/dist/tools/hosting.d.ts +3 -0
- package/dist/tools/hosting.d.ts.map +1 -0
- package/dist/tools/hosting.js +72 -0
- package/dist/tools/hosting.js.map +1 -0
- package/dist/tools/identity.d.ts +3 -0
- package/dist/tools/identity.d.ts.map +1 -0
- package/dist/tools/identity.js +71 -0
- package/dist/tools/identity.js.map +1 -0
- package/dist/tools/modules.d.ts +3 -0
- package/dist/tools/modules.d.ts.map +1 -0
- package/dist/tools/modules.js +77 -0
- package/dist/tools/modules.js.map +1 -0
- package/dist/tools/snapshot.d.ts +3 -0
- package/dist/tools/snapshot.d.ts.map +1 -0
- package/dist/tools/snapshot.js +104 -0
- package/dist/tools/snapshot.js.map +1 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { execCli, formatResponse } from "../cli.js";
|
|
2
|
+
import { functionsBuildSchema, functionsEjectSchema, functionsPublishSchema, functionsUpgradeSchema } from "../schemas/functions.js";
|
|
3
|
+
import { DEPLOY_TIMEOUT } from "../constants.js";
|
|
4
|
+
export function registerFunctionsTools(server) {
|
|
5
|
+
server.registerTool("juno_functions_build", {
|
|
6
|
+
title: "Juno Functions Build",
|
|
7
|
+
description: "Build your serverless functions. Supports Rust, TypeScript, and JavaScript. The CLI auto-detects the language if not specified. Use watch mode to rebuild on file changes.",
|
|
8
|
+
inputSchema: functionsBuildSchema.shape,
|
|
9
|
+
annotations: {
|
|
10
|
+
readOnlyHint: false,
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
idempotentHint: false,
|
|
13
|
+
openWorldHint: false
|
|
14
|
+
}
|
|
15
|
+
}, async (params) => {
|
|
16
|
+
const args = [];
|
|
17
|
+
if (params.lang)
|
|
18
|
+
args.push("-l", params.lang);
|
|
19
|
+
if (params.cargoPath)
|
|
20
|
+
args.push("--cargo-path", params.cargoPath);
|
|
21
|
+
if (params.sourcePath)
|
|
22
|
+
args.push("--source-path", params.sourcePath);
|
|
23
|
+
if (params.watch)
|
|
24
|
+
args.push("-w");
|
|
25
|
+
const result = await execCli("functions", ["build", ...args]);
|
|
26
|
+
return { content: [{ type: "text", text: formatResponse(result, "Functions Build") }] };
|
|
27
|
+
});
|
|
28
|
+
server.registerTool("juno_functions_eject", {
|
|
29
|
+
title: "Juno Functions Eject",
|
|
30
|
+
description: "Generate the required files to begin developing serverless functions in your project. Scaffolds boilerplate for Rust, TypeScript, or JavaScript functions. Alias: `juno functions init`.",
|
|
31
|
+
inputSchema: functionsEjectSchema.shape,
|
|
32
|
+
annotations: {
|
|
33
|
+
readOnlyHint: false,
|
|
34
|
+
destructiveHint: false,
|
|
35
|
+
idempotentHint: true,
|
|
36
|
+
openWorldHint: false
|
|
37
|
+
}
|
|
38
|
+
}, async (params) => {
|
|
39
|
+
const args = [];
|
|
40
|
+
if (params.lang)
|
|
41
|
+
args.push("-l", params.lang);
|
|
42
|
+
const result = await execCli("functions", ["eject", ...args]);
|
|
43
|
+
return { content: [{ type: "text", text: formatResponse(result, "Functions Eject") }] };
|
|
44
|
+
});
|
|
45
|
+
server.registerTool("juno_functions_publish", {
|
|
46
|
+
title: "Juno Functions Publish",
|
|
47
|
+
description: "Publish a new version of your serverless functions to the satellite. Optionally submit as a pending change without applying, or provide a custom WASM file path.",
|
|
48
|
+
inputSchema: functionsPublishSchema.shape,
|
|
49
|
+
annotations: {
|
|
50
|
+
readOnlyHint: false,
|
|
51
|
+
destructiveHint: false,
|
|
52
|
+
idempotentHint: false,
|
|
53
|
+
openWorldHint: true
|
|
54
|
+
}
|
|
55
|
+
}, async (params) => {
|
|
56
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
57
|
+
const args = [];
|
|
58
|
+
if (params.src)
|
|
59
|
+
args.push("-s", params.src);
|
|
60
|
+
if (params.noApply)
|
|
61
|
+
args.push("--no-apply");
|
|
62
|
+
if (params.keepStaged)
|
|
63
|
+
args.push("-k");
|
|
64
|
+
const result = await execCli("functions", ["publish", ...args], flags, DEPLOY_TIMEOUT);
|
|
65
|
+
return { content: [{ type: "text", text: formatResponse(result, "Functions Publish") }] };
|
|
66
|
+
});
|
|
67
|
+
server.registerTool("juno_functions_upgrade", {
|
|
68
|
+
title: "Juno Functions Upgrade",
|
|
69
|
+
description: "Upgrade your satellite's serverless functions. Can use a local WASM file, select from CDN releases, or use the default local build output. Optionally create a snapshot before upgrading.",
|
|
70
|
+
inputSchema: functionsUpgradeSchema.shape,
|
|
71
|
+
annotations: {
|
|
72
|
+
readOnlyHint: false,
|
|
73
|
+
destructiveHint: false,
|
|
74
|
+
idempotentHint: false,
|
|
75
|
+
openWorldHint: true
|
|
76
|
+
}
|
|
77
|
+
}, async (params) => {
|
|
78
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
79
|
+
const args = [];
|
|
80
|
+
if (params.src)
|
|
81
|
+
args.push("-s", params.src);
|
|
82
|
+
if (params.cdn)
|
|
83
|
+
args.push("--cdn");
|
|
84
|
+
if (params.cdnPath)
|
|
85
|
+
args.push("--cdn-path", params.cdnPath);
|
|
86
|
+
if (params.clearChunks)
|
|
87
|
+
args.push("--clear-chunks");
|
|
88
|
+
if (params.noSnapshot)
|
|
89
|
+
args.push("--no-snapshot");
|
|
90
|
+
if (params.reset)
|
|
91
|
+
args.push("-r");
|
|
92
|
+
const result = await execCli("functions", ["upgrade", ...args], flags, DEPLOY_TIMEOUT);
|
|
93
|
+
return { content: [{ type: "text", text: formatResponse(result, "Functions Upgrade") }] };
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/tools/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosting.d.ts","sourceRoot":"","sources":["../../src/tools/hosting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyE5D"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { execCli, formatResponse } from "../cli.js";
|
|
2
|
+
import { hostingDeploySchema, hostingClearSchema, hostingPruneSchema } from "../schemas/hosting.js";
|
|
3
|
+
import { DEPLOY_TIMEOUT } from "../constants.js";
|
|
4
|
+
export function registerHostingTools(server) {
|
|
5
|
+
server.registerTool("juno_hosting_deploy", {
|
|
6
|
+
title: "Juno Hosting Deploy",
|
|
7
|
+
description: "Deploy your app's frontend files to your satellite. Reads from the `source` directory defined in juno.config and uploads all assets. Supports batch parallelism, clearing before deploy, and pruning stale files after.",
|
|
8
|
+
inputSchema: hostingDeploySchema.shape,
|
|
9
|
+
annotations: {
|
|
10
|
+
readOnlyHint: false,
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
idempotentHint: false,
|
|
13
|
+
openWorldHint: true
|
|
14
|
+
}
|
|
15
|
+
}, async (params) => {
|
|
16
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
17
|
+
const args = [];
|
|
18
|
+
args.push("--batch", String(params.batch));
|
|
19
|
+
if (params.clear)
|
|
20
|
+
args.push("--clear");
|
|
21
|
+
if (params.prune)
|
|
22
|
+
args.push("--prune");
|
|
23
|
+
if (params.immediate)
|
|
24
|
+
args.push("-i");
|
|
25
|
+
if (params.keepStaged)
|
|
26
|
+
args.push("-k");
|
|
27
|
+
if (params.noApply)
|
|
28
|
+
args.push("--no-apply");
|
|
29
|
+
if (params.config)
|
|
30
|
+
args.push("--config");
|
|
31
|
+
const result = await execCli("hosting", ["deploy", ...args], flags, DEPLOY_TIMEOUT);
|
|
32
|
+
return { content: [{ type: "text", text: formatResponse(result, "Hosting Deploy") }] };
|
|
33
|
+
});
|
|
34
|
+
server.registerTool("juno_hosting_clear", {
|
|
35
|
+
title: "Juno Hosting Clear",
|
|
36
|
+
description: "Remove frontend files (JS, HTML, CSS, etc.) from your satellite. This does NOT remove user-uploaded files from custom collections — only the deployed app assets.",
|
|
37
|
+
inputSchema: hostingClearSchema.shape,
|
|
38
|
+
annotations: {
|
|
39
|
+
readOnlyHint: false,
|
|
40
|
+
destructiveHint: true,
|
|
41
|
+
idempotentHint: false,
|
|
42
|
+
openWorldHint: true
|
|
43
|
+
}
|
|
44
|
+
}, async (params) => {
|
|
45
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
46
|
+
const args = [];
|
|
47
|
+
if (params.fullPath)
|
|
48
|
+
args.push("-f", params.fullPath);
|
|
49
|
+
const result = await execCli("hosting", ["clear", ...args], flags);
|
|
50
|
+
return { content: [{ type: "text", text: formatResponse(result, "Hosting Clear") }] };
|
|
51
|
+
});
|
|
52
|
+
server.registerTool("juno_hosting_prune", {
|
|
53
|
+
title: "Juno Hosting Prune",
|
|
54
|
+
description: "Remove stale frontend files from your satellite that are no longer in your build output. Use --dry-run to preview which files would be deleted without actually deleting them.",
|
|
55
|
+
inputSchema: hostingPruneSchema.shape,
|
|
56
|
+
annotations: {
|
|
57
|
+
readOnlyHint: false,
|
|
58
|
+
destructiveHint: true,
|
|
59
|
+
idempotentHint: false,
|
|
60
|
+
openWorldHint: true
|
|
61
|
+
}
|
|
62
|
+
}, async (params) => {
|
|
63
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
64
|
+
const args = [];
|
|
65
|
+
args.push("--batch", String(params.batch));
|
|
66
|
+
if (params.dryRun)
|
|
67
|
+
args.push("--dry-run");
|
|
68
|
+
const result = await execCli("hosting", ["prune", ...args], flags);
|
|
69
|
+
return { content: [{ type: "text", text: formatResponse(result, "Hosting Prune") }] };
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=hosting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosting.js","sourceRoot":"","sources":["../../src/tools/hosting.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/tools/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoF7D"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { execCli, formatResponse } from "../cli.js";
|
|
2
|
+
import { whoamiSchema, versionSchema, openSatelliteSchema, runScriptSchema } from "../schemas/identity.js";
|
|
3
|
+
export function registerIdentityTools(server) {
|
|
4
|
+
server.registerTool("juno_whoami", {
|
|
5
|
+
title: "Juno Who Am I",
|
|
6
|
+
description: "Display your current profile, access key, and links to your satellite. Shows the authenticated identity and associated modules.",
|
|
7
|
+
inputSchema: whoamiSchema.shape,
|
|
8
|
+
annotations: {
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
idempotentHint: true,
|
|
12
|
+
openWorldHint: false
|
|
13
|
+
}
|
|
14
|
+
}, async (params) => {
|
|
15
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
16
|
+
const args = [];
|
|
17
|
+
const result = await execCli("whoami", args, flags);
|
|
18
|
+
return { content: [{ type: "text", text: formatResponse(result, "Who Am I") }] };
|
|
19
|
+
});
|
|
20
|
+
server.registerTool("juno_version", {
|
|
21
|
+
title: "Juno Version",
|
|
22
|
+
description: "Show the current versions of the Juno CLI and emulator (if running). Use --version flag.",
|
|
23
|
+
inputSchema: versionSchema.shape,
|
|
24
|
+
annotations: {
|
|
25
|
+
readOnlyHint: true,
|
|
26
|
+
destructiveHint: false,
|
|
27
|
+
idempotentHint: true,
|
|
28
|
+
openWorldHint: false
|
|
29
|
+
}
|
|
30
|
+
}, async () => {
|
|
31
|
+
const result = await execCli("--version", []);
|
|
32
|
+
return { content: [{ type: "text", text: formatResponse(result, "Version") }] };
|
|
33
|
+
});
|
|
34
|
+
server.registerTool("juno_open", {
|
|
35
|
+
title: "Juno Open Satellite",
|
|
36
|
+
description: "Open your satellite in the browser or console. Useful for quickly viewing the deployed app or management console.",
|
|
37
|
+
inputSchema: openSatelliteSchema.shape,
|
|
38
|
+
annotations: {
|
|
39
|
+
readOnlyHint: true,
|
|
40
|
+
destructiveHint: false,
|
|
41
|
+
idempotentHint: true,
|
|
42
|
+
openWorldHint: true
|
|
43
|
+
}
|
|
44
|
+
}, async (params) => {
|
|
45
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
46
|
+
const args = [];
|
|
47
|
+
if (params.browser)
|
|
48
|
+
args.push("-b", params.browser);
|
|
49
|
+
if (params.console)
|
|
50
|
+
args.push("-c");
|
|
51
|
+
const result = await execCli("open", args, flags);
|
|
52
|
+
return { content: [{ type: "text", text: formatResponse(result, "Open") }] };
|
|
53
|
+
});
|
|
54
|
+
server.registerTool("juno_run", {
|
|
55
|
+
title: "Juno Run Script",
|
|
56
|
+
description: "Run a custom JavaScript or TypeScript script in the CLI context. The script has access to the authenticated Juno environment.",
|
|
57
|
+
inputSchema: runScriptSchema.shape,
|
|
58
|
+
annotations: {
|
|
59
|
+
readOnlyHint: false,
|
|
60
|
+
destructiveHint: false,
|
|
61
|
+
idempotentHint: false,
|
|
62
|
+
openWorldHint: true
|
|
63
|
+
}
|
|
64
|
+
}, async (params) => {
|
|
65
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
66
|
+
const args = ["-s", params.src];
|
|
67
|
+
const result = await execCli("run", args, flags);
|
|
68
|
+
return { content: [{ type: "text", text: formatResponse(result, "Run Script") }] };
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/tools/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../src/tools/modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuF3D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { execCli, formatResponse } from "../cli.js";
|
|
2
|
+
import { moduleStartSchema, moduleStopSchema, moduleUpgradeSchema, moduleStatusSchema } from "../schemas/modules.js";
|
|
3
|
+
import { DEPLOY_TIMEOUT } from "../constants.js";
|
|
4
|
+
export function registerModuleTools(server) {
|
|
5
|
+
server.registerTool("juno_module_start", {
|
|
6
|
+
title: "Juno Module Start",
|
|
7
|
+
description: "Start a stopped module. Target can be satellite (s), mission-control (m), or orbiter (o). Starting a module makes it available for requests.",
|
|
8
|
+
inputSchema: moduleStartSchema.shape,
|
|
9
|
+
annotations: {
|
|
10
|
+
readOnlyHint: false,
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
idempotentHint: false,
|
|
13
|
+
openWorldHint: true
|
|
14
|
+
}
|
|
15
|
+
}, async (params) => {
|
|
16
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
17
|
+
const args = ["-t", params.target];
|
|
18
|
+
const result = await execCli("start", args, flags);
|
|
19
|
+
return { content: [{ type: "text", text: formatResponse(result, "Module Start") }] };
|
|
20
|
+
});
|
|
21
|
+
server.registerTool("juno_module_stop", {
|
|
22
|
+
title: "Juno Module Stop",
|
|
23
|
+
description: "Stop a running module. Target can be satellite (s), mission-control (m), or orbiter (o). Stopping a module makes it unavailable for requests.",
|
|
24
|
+
inputSchema: moduleStopSchema.shape,
|
|
25
|
+
annotations: {
|
|
26
|
+
readOnlyHint: false,
|
|
27
|
+
destructiveHint: true,
|
|
28
|
+
idempotentHint: false,
|
|
29
|
+
openWorldHint: true
|
|
30
|
+
}
|
|
31
|
+
}, async (params) => {
|
|
32
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
33
|
+
const args = ["-t", params.target];
|
|
34
|
+
const result = await execCli("stop", args, flags);
|
|
35
|
+
return { content: [{ type: "text", text: formatResponse(result, "Module Stop") }] };
|
|
36
|
+
});
|
|
37
|
+
server.registerTool("juno_module_upgrade", {
|
|
38
|
+
title: "Juno Module Upgrade",
|
|
39
|
+
description: "Upgrade a module to a new version. Target can be satellite (s), mission-control (m), or orbiter (o). Optionally provide a custom WASM file. A snapshot is created before upgrading unless --no-snapshot is set.",
|
|
40
|
+
inputSchema: moduleUpgradeSchema.shape,
|
|
41
|
+
annotations: {
|
|
42
|
+
readOnlyHint: false,
|
|
43
|
+
destructiveHint: false,
|
|
44
|
+
idempotentHint: false,
|
|
45
|
+
openWorldHint: true
|
|
46
|
+
}
|
|
47
|
+
}, async (params) => {
|
|
48
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
49
|
+
const args = ["-t", params.target];
|
|
50
|
+
if (params.src)
|
|
51
|
+
args.push("-s", params.src);
|
|
52
|
+
if (params.clearChunks)
|
|
53
|
+
args.push("--clear-chunks");
|
|
54
|
+
if (params.noSnapshot)
|
|
55
|
+
args.push("--no-snapshot");
|
|
56
|
+
if (params.reset)
|
|
57
|
+
args.push("-r");
|
|
58
|
+
const result = await execCli("upgrade", args, flags, DEPLOY_TIMEOUT);
|
|
59
|
+
return { content: [{ type: "text", text: formatResponse(result, "Module Upgrade") }] };
|
|
60
|
+
});
|
|
61
|
+
server.registerTool("juno_module_status", {
|
|
62
|
+
title: "Juno Module Status",
|
|
63
|
+
description: "Check the status of all modules (satellites, mission control, orbiter). Shows running state, cycles balance, memory usage, and version info.",
|
|
64
|
+
inputSchema: moduleStatusSchema.shape,
|
|
65
|
+
annotations: {
|
|
66
|
+
readOnlyHint: true,
|
|
67
|
+
destructiveHint: false,
|
|
68
|
+
idempotentHint: true,
|
|
69
|
+
openWorldHint: true
|
|
70
|
+
}
|
|
71
|
+
}, async (params) => {
|
|
72
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
73
|
+
const result = await execCli("status", [], flags);
|
|
74
|
+
return { content: [{ type: "text", text: formatResponse(result, "Module Status") }] };
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=modules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/tools/modules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+H7D"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { execCli, formatResponse } from "../cli.js";
|
|
2
|
+
import { snapshotCreateSchema, snapshotDeleteSchema, snapshotListSchema, snapshotDownloadSchema, snapshotUploadSchema, snapshotRestoreSchema } from "../schemas/snapshot.js";
|
|
3
|
+
import { DEPLOY_TIMEOUT } from "../constants.js";
|
|
4
|
+
export function registerSnapshotTools(server) {
|
|
5
|
+
server.registerTool("juno_snapshot_create", {
|
|
6
|
+
title: "Juno Snapshot Create",
|
|
7
|
+
description: "Create a snapshot of your module's current state. Snapshots capture the full state and can be used for backup or migration. Target can be satellite (s), mission-control (m), or orbiter (o).",
|
|
8
|
+
inputSchema: snapshotCreateSchema.shape,
|
|
9
|
+
annotations: {
|
|
10
|
+
readOnlyHint: false,
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
idempotentHint: false,
|
|
13
|
+
openWorldHint: true
|
|
14
|
+
}
|
|
15
|
+
}, async (params) => {
|
|
16
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
17
|
+
const args = ["-t", params.target];
|
|
18
|
+
const result = await execCli("snapshot", ["create", ...args], flags, DEPLOY_TIMEOUT);
|
|
19
|
+
return { content: [{ type: "text", text: formatResponse(result, "Snapshot Create") }] };
|
|
20
|
+
});
|
|
21
|
+
server.registerTool("juno_snapshot_delete", {
|
|
22
|
+
title: "Juno Snapshot Delete",
|
|
23
|
+
description: "Delete an existing snapshot. This permanently removes the snapshot and cannot be undone.",
|
|
24
|
+
inputSchema: snapshotDeleteSchema.shape,
|
|
25
|
+
annotations: {
|
|
26
|
+
readOnlyHint: false,
|
|
27
|
+
destructiveHint: true,
|
|
28
|
+
idempotentHint: false,
|
|
29
|
+
openWorldHint: true
|
|
30
|
+
}
|
|
31
|
+
}, async (params) => {
|
|
32
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
33
|
+
const args = ["-t", params.target];
|
|
34
|
+
const result = await execCli("snapshot", ["delete", ...args], flags);
|
|
35
|
+
return { content: [{ type: "text", text: formatResponse(result, "Snapshot Delete") }] };
|
|
36
|
+
});
|
|
37
|
+
server.registerTool("juno_snapshot_list", {
|
|
38
|
+
title: "Juno Snapshot List",
|
|
39
|
+
description: "List all existing snapshots for a module type. Shows snapshot IDs, creation dates, and sizes. Target can be satellite (s), mission-control (m), or orbiter (o).",
|
|
40
|
+
inputSchema: snapshotListSchema.shape,
|
|
41
|
+
annotations: {
|
|
42
|
+
readOnlyHint: true,
|
|
43
|
+
destructiveHint: false,
|
|
44
|
+
idempotentHint: true,
|
|
45
|
+
openWorldHint: true
|
|
46
|
+
}
|
|
47
|
+
}, async (params) => {
|
|
48
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
49
|
+
const args = ["-t", params.target];
|
|
50
|
+
const result = await execCli("snapshot", ["list", ...args], flags);
|
|
51
|
+
return { content: [{ type: "text", text: formatResponse(result, "Snapshot List") }] };
|
|
52
|
+
});
|
|
53
|
+
server.registerTool("juno_snapshot_download", {
|
|
54
|
+
title: "Juno Snapshot Download",
|
|
55
|
+
description: "Download a snapshot to offline files on your local machine. Useful for backup or transferring state between environments.",
|
|
56
|
+
inputSchema: snapshotDownloadSchema.shape,
|
|
57
|
+
annotations: {
|
|
58
|
+
readOnlyHint: true,
|
|
59
|
+
destructiveHint: false,
|
|
60
|
+
idempotentHint: false,
|
|
61
|
+
openWorldHint: true
|
|
62
|
+
}
|
|
63
|
+
}, async (params) => {
|
|
64
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
65
|
+
const args = ["-t", params.target];
|
|
66
|
+
const result = await execCli("snapshot", ["download", ...args], flags, DEPLOY_TIMEOUT);
|
|
67
|
+
return { content: [{ type: "text", text: formatResponse(result, "Snapshot Download") }] };
|
|
68
|
+
});
|
|
69
|
+
server.registerTool("juno_snapshot_upload", {
|
|
70
|
+
title: "Juno Snapshot Upload",
|
|
71
|
+
description: "Upload a snapshot from offline files. Provide the directory path containing metadata.json and chunks, and the target module type.",
|
|
72
|
+
inputSchema: snapshotUploadSchema.shape,
|
|
73
|
+
annotations: {
|
|
74
|
+
readOnlyHint: false,
|
|
75
|
+
destructiveHint: false,
|
|
76
|
+
idempotentHint: false,
|
|
77
|
+
openWorldHint: true
|
|
78
|
+
}
|
|
79
|
+
}, async (params) => {
|
|
80
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
81
|
+
const args = ["--dir", params.dir, "-t", params.target];
|
|
82
|
+
if (params.targetId)
|
|
83
|
+
args.push("--target-id", params.targetId);
|
|
84
|
+
const result = await execCli("snapshot", ["upload", ...args], flags, DEPLOY_TIMEOUT);
|
|
85
|
+
return { content: [{ type: "text", text: formatResponse(result, "Snapshot Upload") }] };
|
|
86
|
+
});
|
|
87
|
+
server.registerTool("juno_snapshot_restore", {
|
|
88
|
+
title: "Juno Snapshot Restore",
|
|
89
|
+
description: "Restore a module to a previously created snapshot state. This will overwrite the current state with the snapshot data.",
|
|
90
|
+
inputSchema: snapshotRestoreSchema.shape,
|
|
91
|
+
annotations: {
|
|
92
|
+
readOnlyHint: false,
|
|
93
|
+
destructiveHint: true,
|
|
94
|
+
idempotentHint: false,
|
|
95
|
+
openWorldHint: true
|
|
96
|
+
}
|
|
97
|
+
}, async (params) => {
|
|
98
|
+
const flags = { mode: params.mode, profile: params.profile };
|
|
99
|
+
const args = ["-t", params.target];
|
|
100
|
+
const result = await execCli("snapshot", ["restore", ...args], flags, DEPLOY_TIMEOUT);
|
|
101
|
+
return { content: [{ type: "text", text: formatResponse(result, "Snapshot Restore") }] };
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface CliResult {
|
|
2
|
+
stdout: string;
|
|
3
|
+
stderr: string;
|
|
4
|
+
exitCode: number;
|
|
5
|
+
}
|
|
6
|
+
export interface GlobalFlags {
|
|
7
|
+
mode?: string;
|
|
8
|
+
profile?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ToolResponse {
|
|
11
|
+
content: {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
}[];
|
|
15
|
+
isError?: boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "junobuild-mcp-server",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for Juno (junobuild) - manage satellites, hosting, functions, snapshots and more",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"junobuild-mcp-server": "dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "https://github.com/nami2111/junobuild-mcp.git"
|
|
24
|
+
},
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://github.com/nami2111/junobuild-mcp/issues"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://github.com/nami2111/junobuild-mcp#readme",
|
|
29
|
+
"keywords": [
|
|
30
|
+
"mcp",
|
|
31
|
+
"model-context-protocol",
|
|
32
|
+
"juno",
|
|
33
|
+
"junobuild",
|
|
34
|
+
"serverless",
|
|
35
|
+
"internet-computer",
|
|
36
|
+
"satellite",
|
|
37
|
+
"hosting",
|
|
38
|
+
"deploy"
|
|
39
|
+
],
|
|
40
|
+
"scripts": {
|
|
41
|
+
"start": "node dist/index.js",
|
|
42
|
+
"dev": "tsx watch src/index.ts",
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"clean": "rm -rf dist",
|
|
45
|
+
"prepublishOnly": "npm run build",
|
|
46
|
+
"changeset": "changeset",
|
|
47
|
+
"version": "changeset version",
|
|
48
|
+
"release": "changeset publish"
|
|
49
|
+
},
|
|
50
|
+
"engines": {
|
|
51
|
+
"node": ">=18"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"@modelcontextprotocol/sdk": "^1.6.1",
|
|
55
|
+
"zod": "^3.23.8"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@changesets/cli": "^2.27.12",
|
|
59
|
+
"@types/node": "^22.10.0",
|
|
60
|
+
"tsx": "^4.19.2",
|
|
61
|
+
"typescript": "^5.7.2"
|
|
62
|
+
}
|
|
63
|
+
}
|