@calltelemetry/ct-lab-mcp 0.3.0 → 0.3.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/canonical/bridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAK3F,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;CACtG;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,qCAAqC;gBAEtC,OAAO,EAAE,MAAM;CAI5B;AAiBD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAsC;gBAElD,OAAO,GAAE,yBAA8B;IASnD,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,qEAAqE;IACrE,IAAI,UAAU,IAAI,OAAO,CAExB;IAEK,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA6CpD,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA8FvE"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/canonical/bridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAK3F,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;CACtG;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,qCAAqC;gBAEtC,OAAO,EAAE,MAAM;CAI5B;AA2CD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAsC;gBAElD,OAAO,GAAE,yBAA8B;IASnD,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,qEAAqE;IACrE,IAAI,UAAU,IAAI,OAAO,CAExB;IAEK,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA6CpD,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2HvE"}
@@ -9,20 +9,44 @@ export class CanonicalBridgeError extends Error {
9
9
  this.name = "CanonicalBridgeError";
10
10
  }
11
11
  }
12
+ const SECRET_KEY = /password|passwd|secret|token|ticket|cookie|csrf|private_key|privateKey|passphrase/i;
13
+ const IDENTITY_KEY = /^(?:uuid|.*(?:_uuid|uuid$)|instance(?:_?uuid)?|smbios(?:_?uuid)?|bios(?:_?uuid)?|durable(?:_?instance)?_uuid|vm(?:_?uuid)?)$/i;
14
+ function isSecretKey(key) {
15
+ return !/^(?:ticket_status|expiry_status)$/i.test(key) && SECRET_KEY.test(key);
16
+ }
17
+ function redactCanonicalValue(value, key) {
18
+ if (typeof value === "string") {
19
+ // UUIDs are identity evidence in canonical inventory output. Preserve
20
+ // them when the field is explicitly identity-shaped, while redacting all
21
+ // other string values with the shared secret engine.
22
+ return key && IDENTITY_KEY.test(key) ? value : defaultRedactor.redactString(value);
23
+ }
24
+ if (Array.isArray(value))
25
+ return value.map((item) => redactCanonicalValue(item));
26
+ if (value && typeof value === "object") {
27
+ const sanitized = {};
28
+ for (const [entryKey, entryValue] of Object.entries(value)) {
29
+ sanitized[entryKey] = isSecretKey(entryKey) && typeof entryValue === "string"
30
+ ? "[REDACTED]"
31
+ : redactCanonicalValue(entryValue, entryKey);
32
+ }
33
+ return sanitized;
34
+ }
35
+ return value;
36
+ }
12
37
  function redact(text) {
13
- let result = defaultRedactor.redactString(text);
14
38
  // Preserve machine-readable evidence while redacting JSON object keys
15
- // recursively (plain string regexes cannot safely cover escaped values).
39
+ // recursively. Applying a text regex after serialization can produce
40
+ // invalid JSON (for example, an unquoted replacement in a password field).
16
41
  try {
17
- const parsed = JSON.parse(text);
18
- result = JSON.stringify(defaultRedactor.redactObject(parsed));
42
+ return JSON.stringify(redactCanonicalValue(JSON.parse(text)));
19
43
  }
20
44
  catch {
21
- // Non-JSON CLI output is already covered by the string redactor above.
45
+ // Non-JSON CLI output is covered by the string redactor below.
46
+ return defaultRedactor.redactString(text)
47
+ .replace(/(["']?(?:DOPPLER_TOKEN|LAB_[A-Z0-9_]*(?:TOKEN|SECRET|PASSWORD)|password|passwd|token|secret|private_key|privateKey)["']?)\s*([:=])\s*(["']?)[^\s,"'}]+\3/gi, "$1$2[REDACTED]")
48
+ .replace(/(authorization\s*:\s*bearer\s+)["']?[^\s"']+["']?/gi, "$1[REDACTED]");
22
49
  }
23
- return result
24
- .replace(/(["']?(?:DOPPLER_TOKEN|LAB_[A-Z0-9_]*(?:TOKEN|SECRET|PASSWORD)|password|passwd|token|secret|private_key|privateKey)["']?)\s*([:=])\s*(["']?)[^\s,"'}]+\3/gi, "$1$2[REDACTED]")
25
- .replace(/(authorization\s*:\s*bearer\s+)["']?[^\s"']+["']?/gi, "$1[REDACTED]");
26
50
  }
27
51
  export class CanonicalLabBridge {
28
52
  cliPath;
@@ -130,12 +154,32 @@ export class CanonicalLabBridge {
130
154
  command: identity.command,
131
155
  };
132
156
  }
133
- const ownership = await this.run(["context", "--asset-id", input.assetId]);
157
+ // `context` only reports catalog relationships. `claims show` is the
158
+ // canonical lease/Linear authority and is required to prove that this
159
+ // exact asset is currently claimed by the supplied active issue.
160
+ const ownership = await this.run([
161
+ "claims",
162
+ "show",
163
+ "--asset-id",
164
+ input.assetId,
165
+ "--include-ticket-status",
166
+ "--strict",
167
+ ]);
134
168
  base.evidence.ownership = ownership;
135
169
  let ownsIssue = false;
136
170
  try {
137
171
  const payload = JSON.parse(ownership.stdout);
138
- ownsIssue = (payload.linear_context || []).some((entry) => entry.key?.toUpperCase() === input.linearIssue.toUpperCase() && entry.status === "available");
172
+ const claim = payload.claim;
173
+ const expiry = claim?.expires_at ? Date.parse(claim.expires_at) : Number.NaN;
174
+ ownsIssue = Boolean(claim
175
+ && claim.asset_id === input.assetId
176
+ && claim.linear_issue?.toUpperCase() === input.linearIssue.toUpperCase()
177
+ && claim.lease_id
178
+ && claim.expiry_status === "active"
179
+ && Number.isFinite(expiry)
180
+ && expiry > Date.now()
181
+ && claim.ticket_status === "open"
182
+ && ownership.exitCode === 0);
139
183
  }
140
184
  catch {
141
185
  ownsIssue = false;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/canonical/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/canonical/bridge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calltelemetry/ct-lab-mcp",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Expanded Model Context Protocol (MCP) server for Call Telemetry lab, fleet, and appliance management across Proxmox VE and VMware ESXi.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -9,7 +9,8 @@
9
9
  "ct-lab-mcp": "./dist/bin/ct-lab-mcp.js"
10
10
  },
11
11
  "files": [
12
- "dist",
12
+ "dist/src",
13
+ "dist/bin/ct-lab-mcp.js",
13
14
  "README.md",
14
15
  "LICENSE"
15
16
  ],
@@ -1,63 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Call Telemetry Lab & Fleet MCP Server CLI
4
- *
5
- * Command-line runner supporting Stdio and HTTP/SSE transports,
6
- * Doppler credential resolution cascade, multi-hypervisor management
7
- * across Proxmox VE and VMware ESXi, remote appliance CLI control,
8
- * and graceful lifecycle management.
9
- */
10
- import { Command } from "commander";
11
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
12
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
13
- import { SseServerInstance } from "../src/transports/sse.js";
14
- import { ServerConfig } from "../src/types/config.js";
15
- import { CanonicalLabBridge } from "../src/canonical/index.js";
16
- export declare const VERSION: string;
17
- export interface CliOptions {
18
- transport: "stdio" | "sse";
19
- port: number;
20
- host: string;
21
- config?: string;
22
- dopplerToken?: string;
23
- dopplerProject?: string;
24
- dopplerConfig?: string;
25
- forceMock?: boolean;
26
- redactSecrets?: boolean;
27
- }
28
- export interface CliExecutionResult {
29
- server: McpServer;
30
- transport: StdioServerTransport | SseServerInstance;
31
- close: () => Promise<void>;
32
- }
33
- export interface RunCliOptions {
34
- installSignalHandlers?: boolean;
35
- suppressLogs?: boolean;
36
- }
37
- export declare function buildPreflightCommand(): Command;
38
- export declare function runPreflightCli(argv?: string[], bridge?: CanonicalLabBridge): Promise<number>;
39
- /**
40
- * Builds the Commander CLI program definition.
41
- */
42
- export declare function buildCli(exitOverride?: boolean): Command;
43
- /**
44
- * Parses and validates command-line arguments.
45
- */
46
- export declare function parseCliOptions(argv?: string[], exitOverride?: boolean): {
47
- options: CliOptions;
48
- program: Command;
49
- raw: Record<string, any>;
50
- };
51
- /**
52
- * Loads and validates a JSON configuration file if specified.
53
- */
54
- export declare function loadConfigFile(configPath: string): Partial<ServerConfig>;
55
- /**
56
- * Runs the Call Telemetry Lab MCP Server CLI.
57
- */
58
- export declare function runCli(argv?: string[], runOptions?: RunCliOptions): Promise<CliExecutionResult>;
59
- /**
60
- * Detects whether this file was executed directly as the main Node.js entrypoint.
61
- */
62
- export declare function isMainModule(metaUrl: string): boolean;
63
- //# sourceMappingURL=ct-lab-mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ct-lab-mcp.d.ts","sourceRoot":"","sources":["../../bin/ct-lab-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAKjF,OAAO,EAAmB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AAIzE,OAAO,EAAE,kBAAkB,EAAyB,MAAM,2BAA2B,CAAC;AActF,eAAO,MAAM,OAAO,QAAiB,CAAC;AAEtC,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,oBAAoB,GAAG,iBAAiB,CAAC;IACpD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAM/C;AAED,wBAAsB,eAAe,CACnC,IAAI,GAAE,MAAM,EAAiB,EAC7B,MAAM,qBAA6C,GAClD,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,YAAY,UAAQ,GAAG,OAAO,CAqCtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,GAAE,MAAM,EAAiB,EAC7B,YAAY,UAAQ,GACnB;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAkDrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAuBxE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,IAAI,GAAE,MAAM,EAAiB,EAC7B,UAAU,GAAE,aAAkB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA+I7B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiBrD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ct-lab-mcp.js","sourceRoot":"","sources":["../../bin/ct-lab-mcp.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Proxmox VE Model Context Protocol (MCP) Server CLI
4
- *
5
- * Command-line runner supporting Stdio and HTTP/SSE transports,
6
- * Doppler credential resolution, custom configuration files,
7
- * and graceful lifecycle management.
8
- */
9
- import { Command } from "commander";
10
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
11
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
12
- import { SseServerInstance } from "../src/transports/sse.js";
13
- import { ServerConfig } from "../src/types/config.js";
14
- export declare const VERSION: string;
15
- export interface CliOptions {
16
- transport: "stdio" | "sse";
17
- port: number;
18
- host: string;
19
- config?: string;
20
- dopplerToken?: string;
21
- dopplerProject?: string;
22
- dopplerConfig?: string;
23
- forceMock?: boolean;
24
- }
25
- export interface CliExecutionResult {
26
- server: McpServer;
27
- transport: StdioServerTransport | SseServerInstance;
28
- close: () => Promise<void>;
29
- }
30
- export interface RunCliOptions {
31
- installSignalHandlers?: boolean;
32
- suppressLogs?: boolean;
33
- }
34
- /**
35
- * Builds the Commander CLI program definition.
36
- */
37
- export declare function buildCli(exitOverride?: boolean): Command;
38
- /**
39
- * Parses and validates command-line arguments.
40
- */
41
- export declare function parseCliOptions(argv?: string[], exitOverride?: boolean): {
42
- options: CliOptions;
43
- program: Command;
44
- raw: Record<string, any>;
45
- };
46
- /**
47
- * Loads and validates a JSON configuration file if specified.
48
- */
49
- export declare function loadConfigFile(configPath: string): Partial<ServerConfig>;
50
- /**
51
- * Runs the Proxmox MCP Server CLI.
52
- */
53
- export declare function runCli(argv?: string[], runOptions?: RunCliOptions): Promise<CliExecutionResult>;
54
- /**
55
- * Detects whether this file was executed directly as the main Node.js entrypoint.
56
- */
57
- export declare function isMainModule(metaUrl: string): boolean;
58
- //# sourceMappingURL=proxmox-mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxmox-mcp.d.ts","sourceRoot":"","sources":["../../bin/proxmox-mcp.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAIjF,OAAO,EAAmB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AAczE,eAAO,MAAM,OAAO,QAAiB,CAAC;AAEtC,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,oBAAoB,GAAG,iBAAiB,CAAC;IACpD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,YAAY,UAAQ,GAAG,OAAO,CAkCtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,GAAE,MAAM,EAAiB,EAC7B,YAAY,UAAQ,GACnB;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAiDrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAuBxE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,IAAI,GAAE,MAAM,EAAiB,EAC7B,UAAU,GAAE,aAAkB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA4H7B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAcrD"}
@@ -1,257 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Proxmox VE Model Context Protocol (MCP) Server CLI
4
- *
5
- * Command-line runner supporting Stdio and HTTP/SSE transports,
6
- * Doppler credential resolution, custom configuration files,
7
- * and graceful lifecycle management.
8
- */
9
- import process from "node:process";
10
- import fs from "node:fs";
11
- import path from "node:path";
12
- import { fileURLToPath } from "node:url";
13
- import { Command } from "commander";
14
- import dotenv from "dotenv";
15
- import { createMcpServer } from "../src/server/mcp-server.js";
16
- import { credentialResolver } from "../src/credentials/resolver.js";
17
- import { startStdioServer } from "../src/transports/stdio.js";
18
- import { createSseServer } from "../src/transports/sse.js";
19
- // Load environment variables from .env if present
20
- dotenv.config();
21
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
22
- const pkgPath = path.resolve(__dirname, "../../package.json");
23
- let dynamicVersion = "0.1.1";
24
- try {
25
- if (fs.existsSync(pkgPath)) {
26
- dynamicVersion = JSON.parse(fs.readFileSync(pkgPath, "utf-8")).version || "0.1.1";
27
- }
28
- }
29
- catch { }
30
- export const VERSION = dynamicVersion;
31
- /**
32
- * Builds the Commander CLI program definition.
33
- */
34
- export function buildCli(exitOverride = false) {
35
- const program = new Command();
36
- program
37
- .name("proxmox-mcp")
38
- .description("Proxmox VE Model Context Protocol (MCP) Server and automated slot scheduler")
39
- .version(VERSION, "-v, --version", "Output the current version")
40
- .helpOption("-h, --help", "Display help for command")
41
- .option("-t, --transport <type>", "Transport mode: 'stdio' or 'sse'", process.env.PROXMOX_MCP_TRANSPORT || "stdio")
42
- .option("-p, --port <number>", "Port for SSE transport (default: 3000 or PORT env var)", process.env.PORT || "3000")
43
- .option("-H, --host <string>", "Host interface for SSE (default: '127.0.0.1' or HOST env var)", process.env.HOST || "127.0.0.1")
44
- .option("-c, --config <path>", "Path to optional JSON configuration file")
45
- .option("--doppler-token <token>", "Doppler API token override")
46
- .option("--doppler-project <project>", "Doppler project override")
47
- .option("--doppler-config <config>", "Doppler environment/config override")
48
- .option("--force-mock", "Force in-memory mock hypervisor mode (for testing/offline dev)");
49
- if (exitOverride) {
50
- program.exitOverride();
51
- }
52
- return program;
53
- }
54
- /**
55
- * Parses and validates command-line arguments.
56
- */
57
- export function parseCliOptions(argv = process.argv, exitOverride = false) {
58
- const program = buildCli(exitOverride);
59
- program.parse(argv);
60
- const raw = program.opts();
61
- const transportSource = program.getOptionValueSource("transport");
62
- const portSource = program.getOptionValueSource("port");
63
- const hostSource = program.getOptionValueSource("host");
64
- // Validate transport
65
- const rawTransport = String(raw.transport || "stdio").toLowerCase();
66
- if (rawTransport !== "stdio" && rawTransport !== "sse") {
67
- throw new Error(`Invalid transport mode: '${raw.transport}'. Supported transports are 'stdio' and 'sse'.`);
68
- }
69
- const transport = rawTransport;
70
- // Validate port (allow 0 for ephemeral OS port allocation)
71
- const parsedPort = parseInt(String(raw.port), 10);
72
- if (isNaN(parsedPort) || parsedPort < 0 || parsedPort > 65535) {
73
- throw new Error(`Invalid port number: '${raw.port}'. Port must be an integer between 0 and 65535.`);
74
- }
75
- const host = String(raw.host || "127.0.0.1");
76
- const options = {
77
- transport,
78
- port: parsedPort,
79
- host,
80
- config: raw.config ? String(raw.config) : undefined,
81
- dopplerToken: raw.dopplerToken ? String(raw.dopplerToken) : undefined,
82
- dopplerProject: raw.dopplerProject ? String(raw.dopplerProject) : undefined,
83
- dopplerConfig: raw.dopplerConfig ? String(raw.dopplerConfig) : undefined,
84
- forceMock: Boolean(raw.forceMock),
85
- };
86
- return {
87
- options,
88
- program,
89
- raw: {
90
- ...raw,
91
- transportSource,
92
- portSource,
93
- hostSource,
94
- },
95
- };
96
- }
97
- /**
98
- * Loads and validates a JSON configuration file if specified.
99
- */
100
- export function loadConfigFile(configPath) {
101
- const resolvedPath = path.resolve(process.cwd(), configPath);
102
- if (!fs.existsSync(resolvedPath)) {
103
- throw new Error(`Configuration file not found: '${configPath}' (resolved to '${resolvedPath}')`);
104
- }
105
- try {
106
- const rawContent = fs.readFileSync(resolvedPath, "utf-8");
107
- const parsed = JSON.parse(rawContent);
108
- if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
109
- throw new Error(`Configuration file '${configPath}' must contain a valid JSON object.`);
110
- }
111
- return parsed;
112
- }
113
- catch (err) {
114
- if (err instanceof SyntaxError) {
115
- throw new Error(`Failed to parse configuration file '${configPath}': Invalid JSON - ${err.message}`);
116
- }
117
- throw err;
118
- }
119
- }
120
- /**
121
- * Runs the Proxmox MCP Server CLI.
122
- */
123
- export async function runCli(argv = process.argv, runOptions = {}) {
124
- const { options, raw } = parseCliOptions(argv);
125
- // Load config file if specified
126
- let fileConfig = {};
127
- if (options.config) {
128
- fileConfig = loadConfigFile(options.config);
129
- }
130
- // Precedence: CLI flag > Config file > Environment variables > Defaults
131
- const effectiveTransport = raw.transportSource === "cli"
132
- ? options.transport
133
- : fileConfig.transport || options.transport || "stdio";
134
- const effectivePort = raw.portSource === "cli"
135
- ? options.port
136
- : fileConfig.port !== undefined
137
- ? fileConfig.port
138
- : options.port;
139
- const effectiveHost = raw.hostSource === "cli"
140
- ? options.host
141
- : fileConfig.host || options.host || "127.0.0.1";
142
- const effectiveForceMock = options.forceMock || fileConfig.mockMode || false;
143
- let hostConfigs = fileConfig.hosts;
144
- if (!hostConfigs || hostConfigs.length === 0) {
145
- const resolution = await credentialResolver.resolve({
146
- env: process.env,
147
- dopplerToken: options.dopplerToken || fileConfig.doppler?.token,
148
- dopplerProject: options.dopplerProject || fileConfig.doppler?.project,
149
- dopplerConfig: options.dopplerConfig || fileConfig.doppler?.config,
150
- forceMock: effectiveForceMock,
151
- });
152
- hostConfigs = resolution.hosts;
153
- }
154
- // Create the MCP server instance
155
- const server = createMcpServer({
156
- hostConfigs,
157
- });
158
- const installSignals = runOptions.installSignalHandlers !== false;
159
- if (effectiveTransport === "sse") {
160
- const slotManager = server._context
161
- ?.slotManager;
162
- const sseServer = createSseServer(server, {
163
- port: effectivePort,
164
- host: effectiveHost,
165
- slotManager,
166
- });
167
- await sseServer.listen(effectivePort, effectiveHost);
168
- const close = async () => {
169
- if (!runOptions.suppressLogs) {
170
- console.error("[proxmox-mcp] Shutting down SSE server...");
171
- }
172
- await sseServer.close();
173
- await server.close();
174
- };
175
- if (installSignals) {
176
- const handleSig = async (sig) => {
177
- console.error(`[proxmox-mcp] Received ${sig}, terminating...`);
178
- try {
179
- await close();
180
- }
181
- catch (err) {
182
- console.error("[proxmox-mcp] Error during shutdown:", err);
183
- }
184
- finally {
185
- process.exit(0);
186
- }
187
- };
188
- process.once("SIGINT", () => handleSig("SIGINT"));
189
- process.once("SIGTERM", () => handleSig("SIGTERM"));
190
- }
191
- return { server, transport: sseServer, close };
192
- }
193
- else {
194
- // Default stdio transport
195
- let activeTransport;
196
- const close = async () => {
197
- if (!runOptions.suppressLogs) {
198
- console.error("[proxmox-mcp] Shutting down stdio server...");
199
- }
200
- try {
201
- await server.close();
202
- }
203
- catch { }
204
- try {
205
- if (activeTransport) {
206
- await activeTransport.close();
207
- }
208
- }
209
- catch { }
210
- };
211
- if (installSignals) {
212
- const handleSig = async (sig) => {
213
- console.error(`[proxmox-mcp] Received ${sig}, terminating...`);
214
- try {
215
- await close();
216
- }
217
- catch (err) {
218
- console.error("[proxmox-mcp] Error during shutdown:", err);
219
- }
220
- finally {
221
- process.exit(0);
222
- }
223
- };
224
- process.once("SIGINT", () => handleSig("SIGINT"));
225
- process.once("SIGTERM", () => handleSig("SIGTERM"));
226
- }
227
- activeTransport = await startStdioServer(server, { installSignalHandlers: false });
228
- return { server, transport: activeTransport, close };
229
- }
230
- }
231
- /**
232
- * Detects whether this file was executed directly as the main Node.js entrypoint.
233
- */
234
- export function isMainModule(metaUrl) {
235
- if (!process.argv[1])
236
- return false;
237
- try {
238
- const scriptPath = fs.realpathSync(process.argv[1]);
239
- const modulePath = fs.realpathSync(fileURLToPath(metaUrl));
240
- return scriptPath === modulePath;
241
- }
242
- catch {
243
- const raw = process.argv[1];
244
- return (raw.endsWith("proxmox-mcp") ||
245
- raw.endsWith("proxmox-mcp.ts") ||
246
- raw.endsWith("proxmox-mcp.js"));
247
- }
248
- }
249
- // Auto-run if executed as CLI entrypoint
250
- if (isMainModule(import.meta.url)) {
251
- runCli().catch((err) => {
252
- const msg = err instanceof Error ? err.message : String(err);
253
- console.error(`[proxmox-mcp] Fatal error: ${msg}`);
254
- process.exit(1);
255
- });
256
- }
257
- //# sourceMappingURL=proxmox-mcp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxmox-mcp.js","sourceRoot":"","sources":["../../bin/proxmox-mcp.ts"],"names":[],"mappings":"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"}