quicklify 1.0.4 → 1.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 +42 -5
- package/README.tr.md +42 -5
- package/SECURITY.md +42 -9
- package/bin/quicklify-mcp +5 -0
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +30 -10
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +2 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/destroy.js +2 -2
- package/dist/commands/destroy.js.map +1 -1
- package/dist/commands/domain.d.ts.map +1 -1
- package/dist/commands/domain.js +17 -4
- package/dist/commands/domain.js.map +1 -1
- package/dist/commands/firewall.d.ts.map +1 -1
- package/dist/commands/firewall.js +21 -5
- package/dist/commands/firewall.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +50 -18
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/logs.d.ts +3 -2
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +6 -11
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/maintain.d.ts.map +1 -1
- package/dist/commands/maintain.js +18 -5
- package/dist/commands/maintain.js.map +1 -1
- package/dist/commands/monitor.d.ts +3 -9
- package/dist/commands/monitor.d.ts.map +1 -1
- package/dist/commands/monitor.js +7 -48
- package/dist/commands/monitor.js.map +1 -1
- package/dist/commands/restart.d.ts.map +1 -1
- package/dist/commands/restart.js +5 -1
- package/dist/commands/restart.js.map +1 -1
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +25 -6
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/secure.d.ts.map +1 -1
- package/dist/commands/secure.js +17 -4
- package/dist/commands/secure.js.map +1 -1
- package/dist/commands/snapshot.d.ts.map +1 -1
- package/dist/commands/snapshot.js +19 -8
- package/dist/commands/snapshot.js.map +1 -1
- package/dist/commands/ssh.d.ts.map +1 -1
- package/dist/commands/ssh.js +4 -1
- package/dist/commands/ssh.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +34 -76
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/transfer.d.ts.map +1 -1
- package/dist/commands/transfer.js +9 -2
- package/dist/commands/transfer.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +9 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/core/backup.d.ts +43 -0
- package/dist/core/backup.d.ts.map +1 -0
- package/dist/core/backup.js +259 -0
- package/dist/core/backup.js.map +1 -0
- package/dist/core/domain.d.ts +30 -0
- package/dist/core/domain.d.ts.map +1 -0
- package/dist/core/domain.js +174 -0
- package/dist/core/domain.js.map +1 -0
- package/dist/core/firewall.d.ts +25 -0
- package/dist/core/firewall.d.ts.map +1 -0
- package/dist/core/firewall.js +146 -0
- package/dist/core/firewall.js.map +1 -0
- package/dist/core/logs.d.ts +28 -0
- package/dist/core/logs.d.ts.map +1 -0
- package/dist/core/logs.js +129 -0
- package/dist/core/logs.js.map +1 -0
- package/dist/core/maintain.d.ts +41 -0
- package/dist/core/maintain.d.ts.map +1 -0
- package/dist/core/maintain.js +180 -0
- package/dist/core/maintain.js.map +1 -0
- package/dist/core/manage.d.ts +34 -0
- package/dist/core/manage.d.ts.map +1 -0
- package/dist/core/manage.js +203 -0
- package/dist/core/manage.js.map +1 -0
- package/dist/core/provision.d.ts +18 -0
- package/dist/core/provision.d.ts.map +1 -0
- package/dist/core/provision.js +197 -0
- package/dist/core/provision.js.map +1 -0
- package/dist/core/secure.d.ts +29 -0
- package/dist/core/secure.d.ts.map +1 -0
- package/dist/core/secure.js +198 -0
- package/dist/core/secure.js.map +1 -0
- package/dist/core/snapshot.d.ts +22 -0
- package/dist/core/snapshot.d.ts.map +1 -0
- package/dist/core/snapshot.js +58 -0
- package/dist/core/snapshot.js.map +1 -0
- package/dist/core/status.d.ts +12 -0
- package/dist/core/status.d.ts.map +1 -0
- package/dist/core/status.js +43 -0
- package/dist/core/status.js.map +1 -0
- package/dist/core/tokens.d.ts +4 -0
- package/dist/core/tokens.d.ts.map +1 -0
- package/dist/core/tokens.js +23 -0
- package/dist/core/tokens.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +16 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +3 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +105 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/serverBackup.d.ts +29 -0
- package/dist/mcp/tools/serverBackup.d.ts.map +1 -0
- package/dist/mcp/tools/serverBackup.js +376 -0
- package/dist/mcp/tools/serverBackup.js.map +1 -0
- package/dist/mcp/tools/serverInfo.d.ts +20 -0
- package/dist/mcp/tools/serverInfo.d.ts.map +1 -0
- package/dist/mcp/tools/serverInfo.js +219 -0
- package/dist/mcp/tools/serverInfo.js.map +1 -0
- package/dist/mcp/tools/serverLogs.d.ts +30 -0
- package/dist/mcp/tools/serverLogs.d.ts.map +1 -0
- package/dist/mcp/tools/serverLogs.js +145 -0
- package/dist/mcp/tools/serverLogs.js.map +1 -0
- package/dist/mcp/tools/serverMaintain.d.ts +22 -0
- package/dist/mcp/tools/serverMaintain.d.ts.map +1 -0
- package/dist/mcp/tools/serverMaintain.js +217 -0
- package/dist/mcp/tools/serverMaintain.js.map +1 -0
- package/dist/mcp/tools/serverManage.d.ts +33 -0
- package/dist/mcp/tools/serverManage.d.ts.map +1 -0
- package/dist/mcp/tools/serverManage.js +207 -0
- package/dist/mcp/tools/serverManage.js.map +1 -0
- package/dist/mcp/tools/serverProvision.d.ts +31 -0
- package/dist/mcp/tools/serverProvision.d.ts.map +1 -0
- package/dist/mcp/tools/serverProvision.js +125 -0
- package/dist/mcp/tools/serverProvision.js.map +1 -0
- package/dist/mcp/tools/serverSecure.d.ts +40 -0
- package/dist/mcp/tools/serverSecure.d.ts.map +1 -0
- package/dist/mcp/tools/serverSecure.js +396 -0
- package/dist/mcp/tools/serverSecure.js.map +1 -0
- package/dist/providers/vultr.d.ts.map +1 -1
- package/dist/providers/vultr.js +7 -1
- package/dist/providers/vultr.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/errorMapper.d.ts +4 -0
- package/dist/utils/errorMapper.d.ts.map +1 -1
- package/dist/utils/errorMapper.js +93 -0
- package/dist/utils/errorMapper.js.map +1 -1
- package/dist/utils/openBrowser.d.ts.map +1 -1
- package/dist/utils/openBrowser.js +6 -1
- package/dist/utils/openBrowser.js.map +1 -1
- package/dist/utils/ssh.d.ts +1 -0
- package/dist/utils/ssh.d.ts.map +1 -1
- package/dist/utils/ssh.js +6 -2
- package/dist/utils/ssh.js.map +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
+
import { createMcpServer } from "./server.js";
|
|
4
|
+
async function main() {
|
|
5
|
+
const server = createMcpServer();
|
|
6
|
+
const transport = new StdioServerTransport();
|
|
7
|
+
await server.connect(transport);
|
|
8
|
+
// Server is now listening on stdin/stdout via JSON-RPC
|
|
9
|
+
// All logging must go to stderr (stdout is reserved for MCP protocol)
|
|
10
|
+
process.stderr.write("quicklify-mcp server started\n");
|
|
11
|
+
}
|
|
12
|
+
main().catch((error) => {
|
|
13
|
+
process.stderr.write(`Fatal: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,uDAAuD;IACvD,sEAAsE;IACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWpE,wBAAgB,eAAe,IAAI,SAAS,CAgH3C"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { serverInfoSchema, handleServerInfo } from "./tools/serverInfo.js";
|
|
3
|
+
import { serverLogsSchema, handleServerLogs } from "./tools/serverLogs.js";
|
|
4
|
+
import { serverManageSchema, handleServerManage } from "./tools/serverManage.js";
|
|
5
|
+
import { serverMaintainSchema, handleServerMaintain } from "./tools/serverMaintain.js";
|
|
6
|
+
import { serverSecureSchema, handleServerSecure } from "./tools/serverSecure.js";
|
|
7
|
+
import { serverBackupSchema, handleServerBackup } from "./tools/serverBackup.js";
|
|
8
|
+
import { serverProvisionSchema, handleServerProvision } from "./tools/serverProvision.js";
|
|
9
|
+
const pkg = { name: "quicklify-mcp", version: "1.1.0" };
|
|
10
|
+
export function createMcpServer() {
|
|
11
|
+
const server = new McpServer({ name: pkg.name, version: pkg.version }, { capabilities: { logging: {} } });
|
|
12
|
+
server.registerTool("server_info", {
|
|
13
|
+
description: "Get information about Quicklify-managed servers. Actions: 'list' all servers, 'status' check cloud provider + Coolify status, 'health' check Coolify reachability. Requires provider API tokens as environment variables (HETZNER_TOKEN, DIGITALOCEAN_TOKEN, VULTR_TOKEN, LINODE_TOKEN) for status checks. Avoid calling repeatedly in short intervals to prevent provider API rate limiting.",
|
|
14
|
+
inputSchema: serverInfoSchema,
|
|
15
|
+
annotations: {
|
|
16
|
+
title: "Server Information",
|
|
17
|
+
readOnlyHint: true,
|
|
18
|
+
destructiveHint: false,
|
|
19
|
+
idempotentHint: true,
|
|
20
|
+
openWorldHint: true,
|
|
21
|
+
},
|
|
22
|
+
}, async (params) => {
|
|
23
|
+
return handleServerInfo(params);
|
|
24
|
+
});
|
|
25
|
+
server.registerTool("server_logs", {
|
|
26
|
+
description: "Fetch logs and system metrics from Quicklify-managed servers via SSH. Actions: 'logs' retrieves recent log lines from Coolify container, Docker service, or system journal. 'monitor' fetches CPU, RAM, and disk usage metrics. Requires SSH access to target server (root@ip). Note: live streaming (--follow) is not available via MCP — use the CLI for live log tailing.",
|
|
27
|
+
inputSchema: serverLogsSchema,
|
|
28
|
+
annotations: {
|
|
29
|
+
title: "Server Logs & Metrics",
|
|
30
|
+
readOnlyHint: true,
|
|
31
|
+
destructiveHint: false,
|
|
32
|
+
idempotentHint: true,
|
|
33
|
+
openWorldHint: true,
|
|
34
|
+
},
|
|
35
|
+
}, async (params) => {
|
|
36
|
+
return handleServerLogs(params);
|
|
37
|
+
});
|
|
38
|
+
server.registerTool("server_manage", {
|
|
39
|
+
description: "Manage Quicklify servers. Actions: 'add' registers an existing server to local config (validates API token, optionally verifies Coolify via SSH). 'remove' unregisters a server from local config only (cloud server keeps running). 'destroy' PERMANENTLY DELETES the server from the cloud provider and removes from local config. Requires provider API tokens as environment variables. Destroy is blocked when QUICKLIFY_SAFE_MODE=true.",
|
|
40
|
+
inputSchema: serverManageSchema,
|
|
41
|
+
annotations: {
|
|
42
|
+
title: "Server Management",
|
|
43
|
+
readOnlyHint: false,
|
|
44
|
+
destructiveHint: true,
|
|
45
|
+
idempotentHint: false,
|
|
46
|
+
openWorldHint: true,
|
|
47
|
+
},
|
|
48
|
+
}, async (params) => {
|
|
49
|
+
return handleServerManage(params);
|
|
50
|
+
});
|
|
51
|
+
server.registerTool("server_maintain", {
|
|
52
|
+
description: "Maintain Quicklify servers. Actions: 'update' runs Coolify update via SSH, 'restart' reboots server via cloud provider API, 'maintain' runs full 5-step maintenance (status check → update → health check → reboot → final check). Snapshot not included — use server_backup tool. Requires SSH access for update, provider API tokens for restart/status. Manual servers: update works, restart not available.",
|
|
53
|
+
inputSchema: serverMaintainSchema,
|
|
54
|
+
annotations: {
|
|
55
|
+
title: "Server Maintenance",
|
|
56
|
+
readOnlyHint: false,
|
|
57
|
+
destructiveHint: false,
|
|
58
|
+
idempotentHint: true,
|
|
59
|
+
openWorldHint: true,
|
|
60
|
+
},
|
|
61
|
+
}, async (params) => {
|
|
62
|
+
return handleServerMaintain(params);
|
|
63
|
+
});
|
|
64
|
+
server.registerTool("server_secure", {
|
|
65
|
+
description: "Secure Quicklify servers. Secure: 'secure-setup' applies SSH hardening + fail2ban, 'secure-audit' runs security audit with score. Firewall: 'firewall-setup' installs UFW with Coolify ports, 'firewall-add'/'firewall-remove' manage port rules, 'firewall-status' shows current rules. Domain: 'domain-set'/'domain-remove' manage custom domain with optional SSL, 'domain-check' verifies DNS, 'domain-info' shows current FQDN. All require SSH access to server.",
|
|
66
|
+
inputSchema: serverSecureSchema,
|
|
67
|
+
annotations: {
|
|
68
|
+
title: "Server Security",
|
|
69
|
+
readOnlyHint: false,
|
|
70
|
+
destructiveHint: false,
|
|
71
|
+
idempotentHint: true,
|
|
72
|
+
openWorldHint: true,
|
|
73
|
+
},
|
|
74
|
+
}, async (params) => {
|
|
75
|
+
return handleServerSecure(params);
|
|
76
|
+
});
|
|
77
|
+
server.registerTool("server_backup", {
|
|
78
|
+
description: "Backup and snapshot Quicklify servers. Backup: 'backup-create' dumps Coolify DB + config via SSH, 'backup-list' shows local backups, 'backup-restore' restores from backup (SAFE_MODE blocks this). Snapshot: 'snapshot-create'/'snapshot-list'/'snapshot-delete' manage cloud provider snapshots (requires provider API token). Snapshots not available for manually added servers. Backup uses SSH, snapshots use provider API.",
|
|
79
|
+
inputSchema: serverBackupSchema,
|
|
80
|
+
annotations: {
|
|
81
|
+
title: "Server Backup & Snapshots",
|
|
82
|
+
readOnlyHint: false,
|
|
83
|
+
destructiveHint: true,
|
|
84
|
+
idempotentHint: false,
|
|
85
|
+
openWorldHint: true,
|
|
86
|
+
},
|
|
87
|
+
}, async (params) => {
|
|
88
|
+
return handleServerBackup(params);
|
|
89
|
+
});
|
|
90
|
+
server.registerTool("server_provision", {
|
|
91
|
+
description: "Provision a new Coolify server on a cloud provider. Creates VPS with Coolify auto-install via cloud-init. Requires provider API token as environment variable (HETZNER_TOKEN, DIGITALOCEAN_TOKEN, VULTR_TOKEN, LINODE_TOKEN). WARNING: Creates a billable cloud resource. Blocked when QUICKLIFY_SAFE_MODE=true. Server takes 3-5 minutes to fully initialize after provisioning.",
|
|
92
|
+
inputSchema: serverProvisionSchema,
|
|
93
|
+
annotations: {
|
|
94
|
+
title: "Server Provisioning",
|
|
95
|
+
readOnlyHint: false,
|
|
96
|
+
destructiveHint: true,
|
|
97
|
+
idempotentHint: false,
|
|
98
|
+
openWorldHint: true,
|
|
99
|
+
},
|
|
100
|
+
}, async (params) => {
|
|
101
|
+
return handleServerProvision(params);
|
|
102
|
+
});
|
|
103
|
+
return server;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const serverBackupSchema: {
|
|
3
|
+
action: z.ZodEnum<{
|
|
4
|
+
"backup-create": "backup-create";
|
|
5
|
+
"backup-list": "backup-list";
|
|
6
|
+
"backup-restore": "backup-restore";
|
|
7
|
+
"snapshot-create": "snapshot-create";
|
|
8
|
+
"snapshot-list": "snapshot-list";
|
|
9
|
+
"snapshot-delete": "snapshot-delete";
|
|
10
|
+
}>;
|
|
11
|
+
server: z.ZodOptional<z.ZodString>;
|
|
12
|
+
backupId: z.ZodOptional<z.ZodString>;
|
|
13
|
+
snapshotId: z.ZodOptional<z.ZodString>;
|
|
14
|
+
};
|
|
15
|
+
type Action = z.infer<typeof serverBackupSchema.action>;
|
|
16
|
+
export declare function handleServerBackup(params: {
|
|
17
|
+
action: Action;
|
|
18
|
+
server?: string;
|
|
19
|
+
backupId?: string;
|
|
20
|
+
snapshotId?: string;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
content: Array<{
|
|
23
|
+
type: "text";
|
|
24
|
+
text: string;
|
|
25
|
+
}>;
|
|
26
|
+
isError?: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=serverBackup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverBackup.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/serverBackup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAgB9B,CAAC;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAYxD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA8XjF"}
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { getServers, findServer } from "../../utils/config.js";
|
|
3
|
+
import { isSafeMode } from "../../core/manage.js";
|
|
4
|
+
import { getProviderToken } from "../../core/tokens.js";
|
|
5
|
+
import { createBackup, restoreBackup, listBackups, loadManifest, } from "../../core/backup.js";
|
|
6
|
+
import { createSnapshot, listSnapshots, deleteSnapshot, } from "../../core/snapshot.js";
|
|
7
|
+
import { getErrorMessage } from "../../utils/errorMapper.js";
|
|
8
|
+
export const serverBackupSchema = {
|
|
9
|
+
action: z.enum([
|
|
10
|
+
"backup-create", "backup-list", "backup-restore",
|
|
11
|
+
"snapshot-create", "snapshot-list", "snapshot-delete",
|
|
12
|
+
]).describe("Backup: 'backup-create' dumps Coolify DB+config via SSH, 'backup-list' shows local backups, 'backup-restore' restores (SAFE_MODE blocks). Snapshot: 'snapshot-create'/'snapshot-list'/'snapshot-delete' manage cloud snapshots (requires API token)."),
|
|
13
|
+
server: z.string().optional().describe("Server name or IP. Auto-selected if only one server exists."),
|
|
14
|
+
backupId: z.string().regex(/^[\w-]+$/, "Invalid backupId: only alphanumeric, hyphens, underscores allowed").optional().describe("Backup timestamp folder name (required for backup-restore)."),
|
|
15
|
+
snapshotId: z.string().optional().describe("Cloud snapshot ID (required for snapshot-delete)."),
|
|
16
|
+
};
|
|
17
|
+
function resolveServer(params, servers) {
|
|
18
|
+
if (params.server) {
|
|
19
|
+
return findServer(params.server);
|
|
20
|
+
}
|
|
21
|
+
if (servers.length === 1) {
|
|
22
|
+
return servers[0];
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
export async function handleServerBackup(params) {
|
|
27
|
+
try {
|
|
28
|
+
const servers = getServers();
|
|
29
|
+
if (servers.length === 0) {
|
|
30
|
+
return {
|
|
31
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
32
|
+
error: "No servers found",
|
|
33
|
+
suggested_actions: [{ command: "quicklify init", reason: "Deploy a server first" }],
|
|
34
|
+
}) }],
|
|
35
|
+
isError: true,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const server = resolveServer(params, servers);
|
|
39
|
+
if (!server) {
|
|
40
|
+
if (params.server) {
|
|
41
|
+
return {
|
|
42
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
43
|
+
error: `Server not found: ${params.server}`,
|
|
44
|
+
available_servers: servers.map((s) => s.name),
|
|
45
|
+
}) }],
|
|
46
|
+
isError: true,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
51
|
+
error: "Multiple servers found. Specify which server to use.",
|
|
52
|
+
available_servers: servers.map((s) => ({ name: s.name, ip: s.ip })),
|
|
53
|
+
}) }],
|
|
54
|
+
isError: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
switch (params.action) {
|
|
58
|
+
// ─── Backup Actions ──────────────────────────────────────────────
|
|
59
|
+
case "backup-create": {
|
|
60
|
+
const result = await createBackup(server.ip, server.name, server.provider);
|
|
61
|
+
if (!result.success) {
|
|
62
|
+
return {
|
|
63
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
64
|
+
server: server.name,
|
|
65
|
+
ip: server.ip,
|
|
66
|
+
error: result.error,
|
|
67
|
+
...(result.hint ? { hint: result.hint } : {}),
|
|
68
|
+
suggested_actions: [
|
|
69
|
+
{ command: `server_info { action: 'health', server: '${server.name}' }`, reason: "Check if server is reachable" },
|
|
70
|
+
],
|
|
71
|
+
}) }],
|
|
72
|
+
isError: true,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
77
|
+
success: true,
|
|
78
|
+
server: server.name,
|
|
79
|
+
ip: server.ip,
|
|
80
|
+
backupPath: result.backupPath,
|
|
81
|
+
manifest: result.manifest,
|
|
82
|
+
suggested_actions: [
|
|
83
|
+
{ command: `server_backup { action: 'backup-list', server: '${server.name}' }`, reason: "View all backups" },
|
|
84
|
+
{ command: `server_secure { action: 'secure-audit', server: '${server.name}' }`, reason: "Run security audit" },
|
|
85
|
+
],
|
|
86
|
+
}) }],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
case "backup-list": {
|
|
90
|
+
const backupIds = listBackups(server.name);
|
|
91
|
+
if (backupIds.length === 0) {
|
|
92
|
+
return {
|
|
93
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
94
|
+
server: server.name,
|
|
95
|
+
backups: [],
|
|
96
|
+
message: "No backups found for this server",
|
|
97
|
+
suggested_actions: [
|
|
98
|
+
{ command: `server_backup { action: 'backup-create', server: '${server.name}' }`, reason: "Create a backup" },
|
|
99
|
+
],
|
|
100
|
+
}) }],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const { getBackupDir } = await import("../../core/backup.js");
|
|
104
|
+
const { join } = await import("path");
|
|
105
|
+
const backups = backupIds.map((id) => {
|
|
106
|
+
const manifest = loadManifest(join(getBackupDir(server.name), id));
|
|
107
|
+
if (manifest) {
|
|
108
|
+
return {
|
|
109
|
+
backupId: id,
|
|
110
|
+
timestamp: manifest.timestamp,
|
|
111
|
+
coolifyVersion: manifest.coolifyVersion,
|
|
112
|
+
files: manifest.files,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
return { backupId: id, status: "corrupt/unreadable" };
|
|
116
|
+
});
|
|
117
|
+
return {
|
|
118
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
119
|
+
server: server.name,
|
|
120
|
+
backupCount: backupIds.length,
|
|
121
|
+
backups,
|
|
122
|
+
suggested_actions: [
|
|
123
|
+
{ command: `server_backup { action: 'backup-restore', server: '${server.name}', backupId: '${backupIds[0]}' }`, reason: "Restore latest backup" },
|
|
124
|
+
],
|
|
125
|
+
}) }],
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
case "backup-restore": {
|
|
129
|
+
if (isSafeMode()) {
|
|
130
|
+
return {
|
|
131
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
132
|
+
error: "Restore disabled in SAFE_MODE",
|
|
133
|
+
hint: "Set QUICKLIFY_SAFE_MODE=false to enable restore operations",
|
|
134
|
+
}) }],
|
|
135
|
+
isError: true,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
if (!params.backupId) {
|
|
139
|
+
return {
|
|
140
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
141
|
+
error: "backupId is required for backup-restore",
|
|
142
|
+
hint: "Use backup-list to see available backups",
|
|
143
|
+
suggested_actions: [
|
|
144
|
+
{ command: `server_backup { action: 'backup-list', server: '${server.name}' }`, reason: "List available backups" },
|
|
145
|
+
],
|
|
146
|
+
}) }],
|
|
147
|
+
isError: true,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const result = await restoreBackup(server.ip, server.name, params.backupId);
|
|
151
|
+
if (!result.success) {
|
|
152
|
+
return {
|
|
153
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
154
|
+
server: server.name,
|
|
155
|
+
ip: server.ip,
|
|
156
|
+
backupId: params.backupId,
|
|
157
|
+
error: result.error,
|
|
158
|
+
steps: result.steps,
|
|
159
|
+
...(result.hint ? { hint: result.hint } : {}),
|
|
160
|
+
}) }],
|
|
161
|
+
isError: true,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
166
|
+
success: true,
|
|
167
|
+
server: server.name,
|
|
168
|
+
ip: server.ip,
|
|
169
|
+
backupId: params.backupId,
|
|
170
|
+
steps: result.steps,
|
|
171
|
+
suggested_actions: [
|
|
172
|
+
{ command: `server_info { action: 'health', server: '${server.name}' }`, reason: "Verify Coolify is running" },
|
|
173
|
+
],
|
|
174
|
+
}) }],
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// ─── Snapshot Actions ────────────────────────────────────────────
|
|
178
|
+
case "snapshot-create": {
|
|
179
|
+
if (isSafeMode()) {
|
|
180
|
+
return {
|
|
181
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
182
|
+
error: "Snapshot creation is disabled in SAFE_MODE",
|
|
183
|
+
hint: "Set QUICKLIFY_SAFE_MODE=false to enable snapshot creation (billable operation)",
|
|
184
|
+
suggested_actions: [
|
|
185
|
+
{ command: `server_backup { action: 'backup-create', server: '${server.name}' }`, reason: "Use SSH-based backup instead (free)" },
|
|
186
|
+
],
|
|
187
|
+
}) }],
|
|
188
|
+
isError: true,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const isManual = server.id.startsWith("manual-");
|
|
192
|
+
if (isManual) {
|
|
193
|
+
return {
|
|
194
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
195
|
+
error: "Snapshots require cloud provider API. Manual servers don't have provider IDs.",
|
|
196
|
+
hint: "Use backup-create for SSH-based backup instead.",
|
|
197
|
+
suggested_actions: [
|
|
198
|
+
{ command: `server_backup { action: 'backup-create', server: '${server.name}' }`, reason: "SSH-based backup" },
|
|
199
|
+
],
|
|
200
|
+
}) }],
|
|
201
|
+
isError: true,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
const token = getProviderToken(server.provider);
|
|
205
|
+
if (!token) {
|
|
206
|
+
return {
|
|
207
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
208
|
+
error: `No API token found for ${server.provider}`,
|
|
209
|
+
hint: `Set ${server.provider.toUpperCase()}_TOKEN environment variable`,
|
|
210
|
+
}) }],
|
|
211
|
+
isError: true,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
const result = await createSnapshot(server, token);
|
|
215
|
+
if (!result.success) {
|
|
216
|
+
return {
|
|
217
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
218
|
+
server: server.name,
|
|
219
|
+
ip: server.ip,
|
|
220
|
+
error: result.error,
|
|
221
|
+
...(result.hint ? { hint: result.hint } : {}),
|
|
222
|
+
}) }],
|
|
223
|
+
isError: true,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
228
|
+
success: true,
|
|
229
|
+
server: server.name,
|
|
230
|
+
ip: server.ip,
|
|
231
|
+
snapshot: result.snapshot,
|
|
232
|
+
costEstimate: result.costEstimate,
|
|
233
|
+
suggested_actions: [
|
|
234
|
+
{ command: `server_backup { action: 'snapshot-list', server: '${server.name}' }`, reason: "View all snapshots" },
|
|
235
|
+
],
|
|
236
|
+
}) }],
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
case "snapshot-list": {
|
|
240
|
+
const isManual = server.id.startsWith("manual-");
|
|
241
|
+
if (isManual) {
|
|
242
|
+
return {
|
|
243
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
244
|
+
error: "Snapshots require cloud provider API. Manual servers don't have provider IDs.",
|
|
245
|
+
hint: "Use backup-list for local backups instead.",
|
|
246
|
+
suggested_actions: [
|
|
247
|
+
{ command: `server_backup { action: 'backup-list', server: '${server.name}' }`, reason: "List local backups" },
|
|
248
|
+
],
|
|
249
|
+
}) }],
|
|
250
|
+
isError: true,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
const token = getProviderToken(server.provider);
|
|
254
|
+
if (!token) {
|
|
255
|
+
return {
|
|
256
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
257
|
+
error: `No API token found for ${server.provider}`,
|
|
258
|
+
hint: `Set ${server.provider.toUpperCase()}_TOKEN environment variable`,
|
|
259
|
+
}) }],
|
|
260
|
+
isError: true,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
const result = await listSnapshots(server, token);
|
|
264
|
+
if (result.error) {
|
|
265
|
+
return {
|
|
266
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
267
|
+
server: server.name,
|
|
268
|
+
ip: server.ip,
|
|
269
|
+
error: result.error,
|
|
270
|
+
...(result.hint ? { hint: result.hint } : {}),
|
|
271
|
+
}) }],
|
|
272
|
+
isError: true,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
if (result.snapshots.length === 0) {
|
|
276
|
+
return {
|
|
277
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
278
|
+
server: server.name,
|
|
279
|
+
snapshots: [],
|
|
280
|
+
message: "No snapshots found",
|
|
281
|
+
suggested_actions: [
|
|
282
|
+
{ command: `server_backup { action: 'snapshot-create', server: '${server.name}' }`, reason: "Create a snapshot" },
|
|
283
|
+
],
|
|
284
|
+
}) }],
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
return {
|
|
288
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
289
|
+
server: server.name,
|
|
290
|
+
ip: server.ip,
|
|
291
|
+
snapshotCount: result.snapshots.length,
|
|
292
|
+
snapshots: result.snapshots,
|
|
293
|
+
suggested_actions: [
|
|
294
|
+
{ command: `server_backup { action: 'snapshot-delete', server: '${server.name}', snapshotId: '${result.snapshots[0].id}' }`, reason: "Delete a snapshot" },
|
|
295
|
+
],
|
|
296
|
+
}) }],
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
case "snapshot-delete": {
|
|
300
|
+
if (isSafeMode()) {
|
|
301
|
+
return {
|
|
302
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
303
|
+
error: "Snapshot delete disabled in SAFE_MODE",
|
|
304
|
+
hint: "Set QUICKLIFY_SAFE_MODE=false to enable snapshot deletion",
|
|
305
|
+
}) }],
|
|
306
|
+
isError: true,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
const isManual = server.id.startsWith("manual-");
|
|
310
|
+
if (isManual) {
|
|
311
|
+
return {
|
|
312
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
313
|
+
error: "Snapshots require cloud provider API. Manual servers don't have provider IDs.",
|
|
314
|
+
hint: "Manual servers cannot manage cloud snapshots.",
|
|
315
|
+
}) }],
|
|
316
|
+
isError: true,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
const token = getProviderToken(server.provider);
|
|
320
|
+
if (!token) {
|
|
321
|
+
return {
|
|
322
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
323
|
+
error: `No API token found for ${server.provider}`,
|
|
324
|
+
hint: `Set ${server.provider.toUpperCase()}_TOKEN environment variable`,
|
|
325
|
+
}) }],
|
|
326
|
+
isError: true,
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
if (!params.snapshotId) {
|
|
330
|
+
return {
|
|
331
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
332
|
+
error: "snapshotId is required for snapshot-delete",
|
|
333
|
+
hint: "Use snapshot-list to see available snapshots",
|
|
334
|
+
suggested_actions: [
|
|
335
|
+
{ command: `server_backup { action: 'snapshot-list', server: '${server.name}' }`, reason: "List snapshots" },
|
|
336
|
+
],
|
|
337
|
+
}) }],
|
|
338
|
+
isError: true,
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
const result = await deleteSnapshot(server, token, params.snapshotId);
|
|
342
|
+
if (!result.success) {
|
|
343
|
+
return {
|
|
344
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
345
|
+
server: server.name,
|
|
346
|
+
ip: server.ip,
|
|
347
|
+
snapshotId: params.snapshotId,
|
|
348
|
+
error: result.error,
|
|
349
|
+
...(result.hint ? { hint: result.hint } : {}),
|
|
350
|
+
}) }],
|
|
351
|
+
isError: true,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
return {
|
|
355
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
356
|
+
success: true,
|
|
357
|
+
server: server.name,
|
|
358
|
+
ip: server.ip,
|
|
359
|
+
snapshotId: params.snapshotId,
|
|
360
|
+
message: "Snapshot deleted",
|
|
361
|
+
suggested_actions: [
|
|
362
|
+
{ command: `server_backup { action: 'snapshot-list', server: '${server.name}' }`, reason: "View remaining snapshots" },
|
|
363
|
+
],
|
|
364
|
+
}) }],
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
return {
|
|
371
|
+
content: [{ type: "text", text: JSON.stringify({ error: getErrorMessage(error) }) }],
|
|
372
|
+
isError: true,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
//# sourceMappingURL=serverBackup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverBackup.js","sourceRoot":"","sources":["../../../src/mcp/tools/serverBackup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const serverInfoSchema: {
|
|
3
|
+
action: z.ZodEnum<{
|
|
4
|
+
status: "status";
|
|
5
|
+
list: "list";
|
|
6
|
+
health: "health";
|
|
7
|
+
}>;
|
|
8
|
+
server: z.ZodOptional<z.ZodString>;
|
|
9
|
+
};
|
|
10
|
+
export declare function handleServerInfo(params: {
|
|
11
|
+
action: "list" | "status" | "health";
|
|
12
|
+
server?: string;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
content: Array<{
|
|
15
|
+
type: "text";
|
|
16
|
+
text: string;
|
|
17
|
+
}>;
|
|
18
|
+
isError?: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=serverInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverInfo.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/serverInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,gBAAgB;;;;;;;CAO5B,CAAC;AA0FF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAoJjF"}
|