ssh-agent-workspace 1.0.4 → 1.0.6

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.
Files changed (158) hide show
  1. package/README.md +471 -313
  2. package/dist/__tests__/SSHManager.test.js +59 -37
  3. package/dist/__tests__/SSHManager.test.js.map +1 -1
  4. package/dist/__tests__/SessionManager.test.js +53 -51
  5. package/dist/__tests__/SessionManager.test.js.map +1 -1
  6. package/dist/__tests__/StorageManager.test.js +74 -74
  7. package/dist/__tests__/StorageManager.test.js.map +1 -1
  8. package/dist/__tests__/ansi.test.js +33 -33
  9. package/dist/__tests__/ansi.test.js.map +1 -1
  10. package/dist/__tests__/security.test.js +54 -54
  11. package/dist/__tests__/security.test.js.map +1 -1
  12. package/dist/__tests__/validation.test.js +17 -17
  13. package/dist/__tests__/validation.test.js.map +1 -1
  14. package/dist/core/HostSecurityManager.d.ts.map +1 -1
  15. package/dist/core/HostSecurityManager.js +9 -9
  16. package/dist/core/HostSecurityManager.js.map +1 -1
  17. package/dist/core/SSHManager.d.ts +1 -1
  18. package/dist/core/SSHManager.d.ts.map +1 -1
  19. package/dist/core/SSHManager.js +31 -31
  20. package/dist/core/SSHManager.js.map +1 -1
  21. package/dist/core/SessionManager.d.ts +4 -4
  22. package/dist/core/SessionManager.d.ts.map +1 -1
  23. package/dist/core/SessionManager.js +14 -14
  24. package/dist/core/SessionManager.js.map +1 -1
  25. package/dist/core/StorageManager.d.ts.map +1 -1
  26. package/dist/core/StorageManager.js +11 -11
  27. package/dist/core/StorageManager.js.map +1 -1
  28. package/dist/core/TmuxManager.d.ts +3 -3
  29. package/dist/core/TmuxManager.d.ts.map +1 -1
  30. package/dist/core/TmuxManager.js +16 -16
  31. package/dist/core/TmuxManager.js.map +1 -1
  32. package/dist/core/ToolConfigManager.d.ts.map +1 -1
  33. package/dist/core/ToolConfigManager.js +10 -10
  34. package/dist/core/ToolConfigManager.js.map +1 -1
  35. package/dist/index.js +35 -35
  36. package/dist/index.js.map +1 -1
  37. package/dist/server.d.ts +4 -4
  38. package/dist/server.d.ts.map +1 -1
  39. package/dist/server.js +41 -41
  40. package/dist/server.js.map +1 -1
  41. package/dist/tools/backup.d.ts +3 -3
  42. package/dist/tools/backup.d.ts.map +1 -1
  43. package/dist/tools/backup.js +86 -49
  44. package/dist/tools/backup.js.map +1 -1
  45. package/dist/tools/connect.d.ts +4 -4
  46. package/dist/tools/connect.d.ts.map +1 -1
  47. package/dist/tools/connect.js +54 -42
  48. package/dist/tools/connect.js.map +1 -1
  49. package/dist/tools/connection_status.d.ts +4 -4
  50. package/dist/tools/connection_status.d.ts.map +1 -1
  51. package/dist/tools/connection_status.js +23 -16
  52. package/dist/tools/connection_status.js.map +1 -1
  53. package/dist/tools/db_query.d.ts +3 -3
  54. package/dist/tools/db_query.d.ts.map +1 -1
  55. package/dist/tools/db_query.js +130 -78
  56. package/dist/tools/db_query.js.map +1 -1
  57. package/dist/tools/deploy.d.ts +3 -3
  58. package/dist/tools/deploy.d.ts.map +1 -1
  59. package/dist/tools/deploy.js +103 -53
  60. package/dist/tools/deploy.js.map +1 -1
  61. package/dist/tools/disconnect.d.ts +3 -3
  62. package/dist/tools/disconnect.d.ts.map +1 -1
  63. package/dist/tools/disconnect.js +16 -19
  64. package/dist/tools/disconnect.js.map +1 -1
  65. package/dist/tools/exec.d.ts +3 -3
  66. package/dist/tools/exec.d.ts.map +1 -1
  67. package/dist/tools/exec.js +40 -45
  68. package/dist/tools/exec.js.map +1 -1
  69. package/dist/tools/group_exec.d.ts +3 -3
  70. package/dist/tools/group_exec.d.ts.map +1 -1
  71. package/dist/tools/group_exec.js +60 -44
  72. package/dist/tools/group_exec.js.map +1 -1
  73. package/dist/tools/health_check.d.ts +3 -3
  74. package/dist/tools/health_check.d.ts.map +1 -1
  75. package/dist/tools/health_check.js +27 -23
  76. package/dist/tools/health_check.js.map +1 -1
  77. package/dist/tools/host_security.d.ts +1 -1
  78. package/dist/tools/host_security.d.ts.map +1 -1
  79. package/dist/tools/host_security.js +30 -36
  80. package/dist/tools/host_security.js.map +1 -1
  81. package/dist/tools/index.d.ts +23 -23
  82. package/dist/tools/index.d.ts.map +1 -1
  83. package/dist/tools/index.js +23 -23
  84. package/dist/tools/index.js.map +1 -1
  85. package/dist/tools/interrupt.d.ts +3 -3
  86. package/dist/tools/interrupt.d.ts.map +1 -1
  87. package/dist/tools/interrupt.js +18 -18
  88. package/dist/tools/interrupt.js.map +1 -1
  89. package/dist/tools/list_hosts.d.ts.map +1 -1
  90. package/dist/tools/list_hosts.js +5 -7
  91. package/dist/tools/list_hosts.js.map +1 -1
  92. package/dist/tools/list_sessions.d.ts +1 -1
  93. package/dist/tools/list_sessions.js +4 -4
  94. package/dist/tools/list_sessions.js.map +1 -1
  95. package/dist/tools/read_output.d.ts +3 -3
  96. package/dist/tools/read_output.d.ts.map +1 -1
  97. package/dist/tools/read_output.js +17 -17
  98. package/dist/tools/read_output.js.map +1 -1
  99. package/dist/tools/reconnect_to_tmux.d.ts +4 -4
  100. package/dist/tools/reconnect_to_tmux.d.ts.map +1 -1
  101. package/dist/tools/reconnect_to_tmux.js +44 -37
  102. package/dist/tools/reconnect_to_tmux.js.map +1 -1
  103. package/dist/tools/send_input.d.ts +3 -3
  104. package/dist/tools/send_input.d.ts.map +1 -1
  105. package/dist/tools/send_input.js +18 -18
  106. package/dist/tools/send_input.js.map +1 -1
  107. package/dist/tools/sftp_download.d.ts +3 -3
  108. package/dist/tools/sftp_download.d.ts.map +1 -1
  109. package/dist/tools/sftp_download.js +41 -27
  110. package/dist/tools/sftp_download.js.map +1 -1
  111. package/dist/tools/sftp_list.d.ts +3 -3
  112. package/dist/tools/sftp_list.d.ts.map +1 -1
  113. package/dist/tools/sftp_list.js +35 -26
  114. package/dist/tools/sftp_list.js.map +1 -1
  115. package/dist/tools/sftp_upload.d.ts +3 -3
  116. package/dist/tools/sftp_upload.d.ts.map +1 -1
  117. package/dist/tools/sftp_upload.js +43 -29
  118. package/dist/tools/sftp_upload.js.map +1 -1
  119. package/dist/tools/ssh_tunnel.d.ts +3 -3
  120. package/dist/tools/ssh_tunnel.d.ts.map +1 -1
  121. package/dist/tools/ssh_tunnel.js +130 -76
  122. package/dist/tools/ssh_tunnel.js.map +1 -1
  123. package/dist/tools/sync.d.ts +3 -3
  124. package/dist/tools/sync.d.ts.map +1 -1
  125. package/dist/tools/sync.js +103 -61
  126. package/dist/tools/sync.js.map +1 -1
  127. package/dist/tools/tail_log.d.ts +3 -3
  128. package/dist/tools/tail_log.d.ts.map +1 -1
  129. package/dist/tools/tail_log.js +38 -26
  130. package/dist/tools/tail_log.js.map +1 -1
  131. package/dist/tools/tools_config.d.ts +1 -1
  132. package/dist/tools/tools_config.d.ts.map +1 -1
  133. package/dist/tools/tools_config.js +25 -35
  134. package/dist/tools/tools_config.js.map +1 -1
  135. package/dist/types/index.d.ts +1 -1
  136. package/dist/types/index.d.ts.map +1 -1
  137. package/dist/utils/ansi.js +1 -1
  138. package/dist/utils/ansi.js.map +1 -1
  139. package/dist/utils/logger.d.ts +1 -1
  140. package/dist/utils/logger.js +2 -2
  141. package/dist/utils/logger.js.map +1 -1
  142. package/dist/utils/security.d.ts +1 -1
  143. package/dist/utils/security.js +3 -3
  144. package/dist/utils/security.js.map +1 -1
  145. package/dist/utils/ssh.d.ts +2 -2
  146. package/dist/utils/ssh.js +5 -5
  147. package/dist/utils/ssh.js.map +1 -1
  148. package/dist/utils/sshConfig.d.ts +1 -1
  149. package/dist/utils/sshConfig.d.ts.map +1 -1
  150. package/dist/utils/sshConfig.js +21 -21
  151. package/dist/utils/sshConfig.js.map +1 -1
  152. package/dist/utils/validation.d.ts +1 -1
  153. package/dist/utils/validation.js +3 -3
  154. package/dist/utils/validation.js.map +1 -1
  155. package/docs/SECURITY.md +213 -213
  156. package/docs/TOOLS.md +425 -425
  157. package/package.json +59 -48
  158. package/vitest.config.ts +10 -10
@@ -1,5 +1,5 @@
1
- import { logger } from '../utils/logger.js';
2
- export const MCP_PROMPT = '__MCP_PROMPT__> ';
1
+ import { logger } from "../utils/logger.js";
2
+ export const MCP_PROMPT = "__MCP_PROMPT__> ";
3
3
  function q(value) {
4
4
  return `'${value.replace(/'/g, "'\\''")}'`;
5
5
  }
@@ -10,11 +10,11 @@ export class TmuxManager {
10
10
  }
11
11
  async isInstalled(ssh) {
12
12
  try {
13
- const result = await this.sshManager.exec(ssh, 'tmux -V');
13
+ const result = await this.sshManager.exec(ssh, "tmux -V");
14
14
  return result.code === 0;
15
15
  }
16
16
  catch (err) {
17
- logger.debug({ error: err.message }, 'tmux check failed');
17
+ logger.debug({ error: err.message }, "tmux check failed");
18
18
  return false;
19
19
  }
20
20
  }
@@ -23,12 +23,12 @@ export class TmuxManager {
23
23
  if (result.code !== 0) {
24
24
  throw new Error(`Failed to create/attach tmux session '${sessionName}': ${result.stderr || result.stdout}`);
25
25
  }
26
- logger.info({ sessionName }, 'Tmux session created/attached');
26
+ logger.info({ sessionName }, "Tmux session created/attached");
27
27
  }
28
28
  async applyOptions(ssh, sessionName) {
29
29
  await this.sshManager.exec(ssh, `tmux set-option -t ${q(sessionName)} history-limit 50000`);
30
30
  await this.sshManager.exec(ssh, `tmux set-option -t ${q(sessionName)} mouse off`);
31
- logger.info({ sessionName }, 'Applied tmux options (history-limit=50000, mouse=off)');
31
+ logger.info({ sessionName }, "Applied tmux options (history-limit=50000, mouse=off)");
32
32
  }
33
33
  async detectShell(ssh, sessionName) {
34
34
  const result = await this.sshManager.exec(ssh, `tmux display-message -t ${q(sessionName)} -p '#{pane_current_command}'`);
@@ -36,24 +36,24 @@ export class TmuxManager {
36
36
  return null;
37
37
  }
38
38
  const shell = result.stdout.trim().toLowerCase();
39
- logger.info({ sessionName, shell }, 'Shell detected');
39
+ logger.info({ sessionName, shell }, "Shell detected");
40
40
  return shell;
41
41
  }
42
42
  async injectPrompt(ssh, sessionName) {
43
43
  const cmd = `export PS1='${MCP_PROMPT}'`;
44
44
  await this.sendCommand(ssh, sessionName, cmd);
45
- logger.info({ sessionName }, 'Injected deterministic prompt');
45
+ logger.info({ sessionName }, "Injected deterministic prompt");
46
46
  }
47
47
  async healthCheck(ssh, sessionName) {
48
48
  const result = await this.sshManager.exec(ssh, `tmux has-session -t ${q(sessionName)}`);
49
49
  if (result.code !== 0) {
50
- logger.warn({ sessionName }, 'Tmux health check failed: session missing');
50
+ logger.warn({ sessionName }, "Tmux health check failed: session missing");
51
51
  return false;
52
52
  }
53
53
  return true;
54
54
  }
55
55
  async sendInput(ssh, sessionName, input) {
56
- const base64 = Buffer.from(input).toString('base64');
56
+ const base64 = Buffer.from(input).toString("base64");
57
57
  const command = `printf '%s' ${q(base64)} | base64 -d | tmux load-buffer - && tmux paste-buffer -t ${q(sessionName)} -d`;
58
58
  const result = await this.sshManager.exec(ssh, command);
59
59
  if (result.code !== 0) {
@@ -61,7 +61,7 @@ export class TmuxManager {
61
61
  }
62
62
  }
63
63
  async sendCommand(ssh, sessionName, command) {
64
- const base64 = Buffer.from(command + '\n').toString('base64');
64
+ const base64 = Buffer.from(command + "\n").toString("base64");
65
65
  const shellCommand = `printf '%s' ${q(base64)} | base64 -d | tmux load-buffer - && tmux paste-buffer -t ${q(sessionName)} -d`;
66
66
  const result = await this.sshManager.exec(ssh, shellCommand);
67
67
  if (result.code !== 0) {
@@ -69,12 +69,12 @@ export class TmuxManager {
69
69
  }
70
70
  }
71
71
  async sendSignal(ssh, sessionName, signal) {
72
- const key = signal === 'SIGINT' ? 'C-c' : 'C-c';
72
+ const key = signal === "SIGINT" ? "C-c" : "C-c";
73
73
  const result = await this.sshManager.exec(ssh, `tmux send-keys -t ${q(sessionName)} ${key}`);
74
74
  if (result.code !== 0) {
75
75
  throw new Error(`Failed to send signal ${signal} to tmux session '${sessionName}': ${result.stderr || result.stdout}`);
76
76
  }
77
- logger.info({ sessionName, signal }, 'Signal sent to tmux pane');
77
+ logger.info({ sessionName, signal }, "Signal sent to tmux pane");
78
78
  }
79
79
  async capturePane(ssh, sessionName, lines) {
80
80
  const result = await this.sshManager.exec(ssh, `tmux capture-pane -t ${q(sessionName)} -p -S -${lines}`);
@@ -93,17 +93,17 @@ export class TmuxManager {
93
93
  return [];
94
94
  }
95
95
  return result.stdout
96
- .split('\n')
96
+ .split("\n")
97
97
  .map((s) => s.trim())
98
98
  .filter(Boolean);
99
99
  }
100
100
  async killSession(ssh, sessionName) {
101
101
  const result = await this.sshManager.exec(ssh, `tmux kill-session -t ${q(sessionName)}`);
102
102
  if (result.code !== 0) {
103
- logger.warn({ sessionName, error: result.stderr }, 'Failed to kill tmux session');
103
+ logger.warn({ sessionName, error: result.stderr }, "Failed to kill tmux session");
104
104
  }
105
105
  else {
106
- logger.info({ sessionName }, 'Tmux session killed');
106
+ logger.info({ sessionName }, "Tmux session killed");
107
107
  }
108
108
  }
109
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TmuxManager.js","sourceRoot":"","sources":["../../src/core/TmuxManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TmuxManager.js","sourceRoot":"","sources":["../../src/core/TmuxManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolConfigManager.d.ts","sourceRoot":"","sources":["../../src/core/ToolConfigManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAKD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAEf,SAAS,CAAC,EAAE,MAAM;IAK9B,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,IAAI;IAYZ,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMpC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKpD,KAAK,IAAI,IAAI;IAKb,MAAM,IAAI,UAAU;CAGrB"}
1
+ {"version":3,"file":"ToolConfigManager.d.ts","sourceRoot":"","sources":["../../src/core/ToolConfigManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACvB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAKD,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAEf,SAAS,CAAC,EAAE,MAAM;IAK9B,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,IAAI;IAYZ,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMpC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKpD,KAAK,IAAI,IAAI;IAKb,MAAM,IAAI,UAAU;CAGvB"}
@@ -1,9 +1,9 @@
1
- import { logger } from '../utils/logger.js';
2
- import * as fs from 'fs';
3
- import * as path from 'path';
4
- import * as os from 'os';
5
- const DEFAULT_DIR = path.join(os.homedir(), '.dynamic-ssh-mcp');
6
- const CONFIG_FILE = 'tools.json';
1
+ import { logger } from "../utils/logger.js";
2
+ import * as fs from "fs";
3
+ import * as path from "path";
4
+ import * as os from "os";
5
+ const DEFAULT_DIR = path.join(os.homedir(), ".dynamic-ssh-mcp");
6
+ const CONFIG_FILE = "tools.json";
7
7
  export class ToolConfigManager {
8
8
  config;
9
9
  configPath;
@@ -14,12 +14,12 @@ export class ToolConfigManager {
14
14
  load() {
15
15
  try {
16
16
  if (fs.existsSync(this.configPath)) {
17
- const raw = fs.readFileSync(this.configPath, 'utf-8');
17
+ const raw = fs.readFileSync(this.configPath, "utf-8");
18
18
  return JSON.parse(raw);
19
19
  }
20
20
  }
21
21
  catch (err) {
22
- logger.warn({ err }, 'Failed to load tool config, using defaults');
22
+ logger.warn({ err }, "Failed to load tool config, using defaults");
23
23
  }
24
24
  return {};
25
25
  }
@@ -32,11 +32,11 @@ export class ToolConfigManager {
32
32
  fs.writeFileSync(this.configPath, JSON.stringify(this.config, null, 2));
33
33
  }
34
34
  catch (err) {
35
- logger.error({ err }, 'Failed to save tool config');
35
+ logger.error({ err }, "Failed to save tool config");
36
36
  }
37
37
  }
38
38
  isEnabled(toolName) {
39
- if (toolName === 'tools_config')
39
+ if (toolName === "tools_config")
40
40
  return true;
41
41
  if (!(toolName in this.config))
42
42
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolConfigManager.js","sourceRoot":"","sources":["../../src/core/ToolConfigManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAMzB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAa;IACnB,UAAU,CAAS;IAE3B,YAAY,SAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAEO,IAAI;QACV,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,4CAA4C,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,IAAI;QACV,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,IAAI,QAAQ,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,OAAgB;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"ToolConfigManager.js","sourceRoot":"","sources":["../../src/core/ToolConfigManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAMzB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC,MAAM,OAAO,iBAAiB;IAClB,MAAM,CAAa;IACnB,UAAU,CAAS;IAE3B,YAAY,SAAkB;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEO,IAAI;QACR,IAAI,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,4CAA4C,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACR,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,IAAI,QAAQ,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,OAAgB;QACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACF,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;CACJ"}
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
- import { createServer } from './server.js';
3
- import { StorageManager } from './core/StorageManager.js';
4
- import { SSHManager } from './core/SSHManager.js';
5
- import { TmuxManager, MCP_PROMPT } from './core/TmuxManager.js';
6
- import { listHostAliases, getHostConfig } from './utils/sshConfig.js';
7
- import { buildSshConfig } from './utils/ssh.js';
8
- import { isHostAllowed } from './utils/security.js';
9
- import { logger } from './utils/logger.js';
10
- const RESTORE_ENABLED = process.env.MCP_SSH_RESTORE_SESSIONS !== 'false';
2
+ import { createServer } from "./server.js";
3
+ import { StorageManager } from "./core/StorageManager.js";
4
+ import { SSHManager } from "./core/SSHManager.js";
5
+ import { TmuxManager, MCP_PROMPT } from "./core/TmuxManager.js";
6
+ import { listHostAliases, getHostConfig } from "./utils/sshConfig.js";
7
+ import { buildSshConfig } from "./utils/ssh.js";
8
+ import { isHostAllowed } from "./utils/security.js";
9
+ import { logger } from "./utils/logger.js";
10
+ const RESTORE_ENABLED = process.env.MCP_SSH_RESTORE_SESSIONS !== "false";
11
11
  async function restoreSessions(storage, sshManager, tmuxManager, sessionManager) {
12
12
  if (!RESTORE_ENABLED) {
13
- logger.info('Session restore disabled (MCP_SSH_RESTORE_SESSIONS=false)');
13
+ logger.info("Session restore disabled (MCP_SSH_RESTORE_SESSIONS=false)");
14
14
  return 0;
15
15
  }
16
16
  // Strategy 1: Restore from persistent storage (known sessions from last run)
@@ -24,10 +24,10 @@ async function restoreSessions(storage, sshManager, tmuxManager, sessionManager)
24
24
  }
25
25
  }
26
26
  if (hosts.length === 0) {
27
- logger.debug('No hosts to restore');
27
+ logger.debug("No hosts to restore");
28
28
  return 0;
29
29
  }
30
- logger.info({ hosts }, 'Attempting session restore');
30
+ logger.info({ hosts }, "Attempting session restore");
31
31
  let restored = 0;
32
32
  const knownTmuxSessions = new Set(storage.listTmuxSessions());
33
33
  for (const host of hosts) {
@@ -35,12 +35,12 @@ async function restoreSessions(storage, sshManager, tmuxManager, sessionManager)
35
35
  continue;
36
36
  const hostConfig = getHostConfig(host);
37
37
  if (!hostConfig) {
38
- logger.debug({ host }, 'Skip restore: no SSH config');
38
+ logger.debug({ host }, "Skip restore: no SSH config");
39
39
  continue;
40
40
  }
41
41
  const baseSshConfig = buildSshConfig(hostConfig, 15000);
42
42
  if (!baseSshConfig) {
43
- logger.warn({ host }, 'Skip restore: failed to build SSH config');
43
+ logger.warn({ host }, "Skip restore: failed to build SSH config");
44
44
  continue;
45
45
  }
46
46
  // First, connect temporarily to discover mcp_* tmux sessions
@@ -49,13 +49,13 @@ async function restoreSessions(storage, sshManager, tmuxManager, sessionManager)
49
49
  probeSsh = await sshManager.connect({ ...baseSshConfig });
50
50
  }
51
51
  catch (err) {
52
- logger.warn({ host, error: err.message }, 'Restore: SSH probe failed');
52
+ logger.warn({ host, error: err.message }, "Restore: SSH probe failed");
53
53
  continue;
54
54
  }
55
55
  const tmuxInstalled = await tmuxManager.isInstalled(probeSsh);
56
56
  if (!tmuxInstalled) {
57
57
  sshManager.disconnect(probeSsh);
58
- logger.debug({ host }, 'Restore: tmux not installed, skipping');
58
+ logger.debug({ host }, "Restore: tmux not installed, skipping");
59
59
  continue;
60
60
  }
61
61
  let tmuxSessions = [];
@@ -64,14 +64,14 @@ async function restoreSessions(storage, sshManager, tmuxManager, sessionManager)
64
64
  }
65
65
  catch (err) {
66
66
  sshManager.disconnect(probeSsh);
67
- logger.warn({ host, error: err.message }, 'Restore: list sessions failed');
67
+ logger.warn({ host, error: err.message }, "Restore: list sessions failed");
68
68
  continue;
69
69
  }
70
70
  // Filter for MCP-managed sessions (mcp_ prefix)
71
- const mcpSessions = tmuxSessions.filter((s) => s.startsWith('mcp_'));
71
+ const mcpSessions = tmuxSessions.filter((s) => s.startsWith("mcp_"));
72
72
  sshManager.disconnect(probeSsh);
73
73
  if (mcpSessions.length === 0) {
74
- logger.debug({ host }, 'Restore: no mcp_* tmux sessions found');
74
+ logger.debug({ host }, "Restore: no mcp_* tmux sessions found");
75
75
  continue;
76
76
  }
77
77
  // Reconnect to each MCP tmux session with its own SSH connection
@@ -83,7 +83,7 @@ async function restoreSessions(storage, sshManager, tmuxManager, sessionManager)
83
83
  ssh = await sshManager.connect({ ...baseSshConfig });
84
84
  }
85
85
  catch (err) {
86
- logger.warn({ host, tmuxSession, error: err.message }, 'Restore: SSH session connect failed');
86
+ logger.warn({ host, tmuxSession, error: err.message }, "Restore: SSH session connect failed");
87
87
  continue;
88
88
  }
89
89
  try {
@@ -103,16 +103,16 @@ async function restoreSessions(storage, sshManager, tmuxManager, sessionManager)
103
103
  }
104
104
  }
105
105
  catch {
106
- logger.warn({ host, tmuxSession }, 'Restore: prompt check failed, continuing');
106
+ logger.warn({ host, tmuxSession }, "Restore: prompt check failed, continuing");
107
107
  }
108
108
  const session = sessionManager.create(host, ssh, tmuxSession, storedSession?.shell, storedSession?.id);
109
- logger.info({ sessionId: session.id, host, tmuxSession }, 'Session restored');
109
+ logger.info({ sessionId: session.id, host, tmuxSession }, "Session restored");
110
110
  restored++;
111
111
  knownTmuxSessions.add(tmuxSession);
112
112
  }
113
113
  catch (err) {
114
114
  sshManager.disconnect(ssh);
115
- logger.warn({ host, tmuxSession, error: err.message }, 'Restore: session skipped');
115
+ logger.warn({ host, tmuxSession, error: err.message }, "Restore: session skipped");
116
116
  }
117
117
  }
118
118
  }
@@ -120,10 +120,10 @@ async function restoreSessions(storage, sshManager, tmuxManager, sessionManager)
120
120
  for (const stored of storedSessions) {
121
121
  if (!knownTmuxSessions.has(stored.tmuxSession)) {
122
122
  storage.remove(stored.id);
123
- logger.debug({ sessionId: stored.id, tmuxSession: stored.tmuxSession }, 'Cleaned up stale session record');
123
+ logger.debug({ sessionId: stored.id, tmuxSession: stored.tmuxSession }, "Cleaned up stale session record");
124
124
  }
125
125
  }
126
- logger.info({ restored }, 'Session restore complete');
126
+ logger.info({ restored }, "Session restore complete");
127
127
  return restored;
128
128
  }
129
129
  async function main() {
@@ -132,20 +132,20 @@ async function main() {
132
132
  const sshManager = new SSHManager();
133
133
  const tmuxManager = new TmuxManager(sshManager);
134
134
  // Prevent silent crashes from unhandled errors
135
- process.on('uncaughtException', (err) => {
136
- logger.fatal({ error: err.message, stack: err.stack }, 'Uncaught exception');
135
+ process.on("uncaughtException", (err) => {
136
+ logger.fatal({ error: err.message, stack: err.stack }, "Uncaught exception");
137
137
  process.exit(1);
138
138
  });
139
- process.on('unhandledRejection', (reason) => {
140
- logger.fatal({ error: reason?.message || String(reason) }, 'Unhandled rejection');
139
+ process.on("unhandledRejection", (reason) => {
140
+ logger.fatal({ error: reason?.message || String(reason) }, "Unhandled rejection");
141
141
  });
142
142
  // Restore previous sessions on startup (fire-and-forget, doesn't block MCP)
143
143
  restoreSessions(storage, sshManager, tmuxManager, sessionManager).catch((err) => {
144
- logger.error({ error: err.message }, 'Session restore failed');
144
+ logger.error({ error: err.message }, "Session restore failed");
145
145
  });
146
146
  // Graceful shutdown
147
147
  const cleanup = () => {
148
- logger.info('Shutting down...');
148
+ logger.info("Shutting down...");
149
149
  sessionManager.disconnectAll();
150
150
  storage.shutdown();
151
151
  server
@@ -157,13 +157,13 @@ async function main() {
157
157
  process.exit(1);
158
158
  });
159
159
  };
160
- process.on('SIGINT', cleanup);
161
- process.on('SIGTERM', cleanup);
160
+ process.on("SIGINT", cleanup);
161
+ process.on("SIGTERM", cleanup);
162
162
  await server.connect(transport);
163
- logger.info('Dynamic SSH MCP server running on stdio');
163
+ logger.info("Dynamic SSH MCP server running on stdio");
164
164
  }
165
165
  main().catch((err) => {
166
- logger.error({ error: err.message }, 'Fatal error');
166
+ logger.error({ error: err.message }, "Fatal error");
167
167
  process.exit(1);
168
168
  });
169
169
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { SessionManager } from './core/SessionManager.js';
4
- import { StorageManager } from './core/StorageManager.js';
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { SessionManager } from "./core/SessionManager.js";
4
+ import { StorageManager } from "./core/StorageManager.js";
5
5
  export declare function createServer(storage?: StorageManager): {
6
6
  server: Server<{
7
7
  method: string;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAOjF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAsF1D,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoIpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAsF1D,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuHpD"}
package/dist/server.js CHANGED
@@ -1,15 +1,15 @@
1
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { CallToolRequestSchema, ListToolsRequestSchema, McpError, ErrorCode, } from '@modelcontextprotocol/sdk/types.js';
4
- import { SessionManager } from './core/SessionManager.js';
5
- import { SSHManager } from './core/SSHManager.js';
6
- import { TmuxManager } from './core/TmuxManager.js';
7
- import { StorageManager } from './core/StorageManager.js';
8
- import { ToolConfigManager } from './core/ToolConfigManager.js';
9
- import { HostSecurityManager } from './core/HostSecurityManager.js';
10
- import { setHostSecurityManager } from './utils/security.js';
11
- import { logger } from './utils/logger.js';
12
- import { listHostsTool, handleListHosts, connectTool, handleConnect, reconnectTool, handleReconnect, sendInputTool, handleSendInput, readOutputTool, handleReadOutput, execTool, handleExec, interruptTool, handleInterrupt, disconnectTool, handleDisconnect, listSessionsTool, handleListSessions, sftpUploadTool, handleSftpUpload, sftpDownloadTool, handleSftpDownload, sftpListTool, handleSftpList, connectionStatusTool, handleConnectionStatus, healthCheckTool, handleHealthCheck, tailLogTool, handleTailLog, tunnelOpenTool, tunnelCloseTool, tunnelListTool, handleTunnelOpen, handleTunnelClose, handleTunnelList, deployTool, handleDeploy, backupTool, handleBackup, syncTool, handleSync, groupExecTool, handleGroupExec, dbQueryTool, handleDbQuery, toolsConfigTool, handleToolsConfig, hostSecurityTool, handleHostSecurity, } from './tools/index.js';
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
4
+ import { SessionManager } from "./core/SessionManager.js";
5
+ import { SSHManager } from "./core/SSHManager.js";
6
+ import { TmuxManager } from "./core/TmuxManager.js";
7
+ import { StorageManager } from "./core/StorageManager.js";
8
+ import { ToolConfigManager } from "./core/ToolConfigManager.js";
9
+ import { HostSecurityManager } from "./core/HostSecurityManager.js";
10
+ import { setHostSecurityManager } from "./utils/security.js";
11
+ import { logger } from "./utils/logger.js";
12
+ import { listHostsTool, handleListHosts, connectTool, handleConnect, reconnectTool, handleReconnect, sendInputTool, handleSendInput, readOutputTool, handleReadOutput, execTool, handleExec, interruptTool, handleInterrupt, disconnectTool, handleDisconnect, listSessionsTool, handleListSessions, sftpUploadTool, handleSftpUpload, sftpDownloadTool, handleSftpDownload, sftpListTool, handleSftpList, connectionStatusTool, handleConnectionStatus, healthCheckTool, handleHealthCheck, tailLogTool, handleTailLog, tunnelOpenTool, tunnelCloseTool, tunnelListTool, handleTunnelOpen, handleTunnelClose, handleTunnelList, deployTool, handleDeploy, backupTool, handleBackup, syncTool, handleSync, groupExecTool, handleGroupExec, dbQueryTool, handleDbQuery, toolsConfigTool, handleToolsConfig, hostSecurityTool, handleHostSecurity, } from "./tools/index.js";
13
13
  const allTools = [
14
14
  listHostsTool,
15
15
  connectTool,
@@ -40,8 +40,8 @@ const allTools = [
40
40
  export function createServer(storage) {
41
41
  const storageManager = storage || new StorageManager();
42
42
  const server = new Server({
43
- name: 'dynamic-ssh-mcp',
44
- version: '1.0.0',
43
+ name: "dynamic-ssh-mcp",
44
+ version: "1.0.0",
45
45
  }, {
46
46
  capabilities: {
47
47
  tools: {},
@@ -58,82 +58,82 @@ export function createServer(storage) {
58
58
  }));
59
59
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
60
60
  const { name, arguments: args } = request.params;
61
- logger.info({ tool: name }, 'Tool called');
61
+ logger.info({ tool: name }, "Tool called");
62
62
  try {
63
63
  switch (name) {
64
- case 'list_hosts': {
64
+ case "list_hosts": {
65
65
  return await handleListHosts();
66
66
  }
67
- case 'connect': {
67
+ case "connect": {
68
68
  return await handleConnect(args, sessionManager, sshManager, tmuxManager);
69
69
  }
70
- case 'reconnect_to_tmux': {
70
+ case "reconnect_to_tmux": {
71
71
  return await handleReconnect(args, sessionManager, sshManager, tmuxManager);
72
72
  }
73
- case 'send_input': {
73
+ case "send_input": {
74
74
  return await handleSendInput(args, sessionManager, tmuxManager);
75
75
  }
76
- case 'read_output': {
76
+ case "read_output": {
77
77
  return await handleReadOutput(args, sessionManager, tmuxManager);
78
78
  }
79
- case 'exec': {
79
+ case "exec": {
80
80
  return await handleExec(args, sessionManager, tmuxManager);
81
81
  }
82
- case 'interrupt': {
82
+ case "interrupt": {
83
83
  return await handleInterrupt(args, sessionManager, tmuxManager);
84
84
  }
85
- case 'disconnect': {
85
+ case "disconnect": {
86
86
  return await handleDisconnect(args, sessionManager, tmuxManager);
87
87
  }
88
- case 'list_sessions': {
88
+ case "list_sessions": {
89
89
  return await handleListSessions(sessionManager);
90
90
  }
91
- case 'sftp_upload': {
91
+ case "sftp_upload": {
92
92
  return await handleSftpUpload(args, sessionManager, sshManager);
93
93
  }
94
- case 'sftp_download': {
94
+ case "sftp_download": {
95
95
  return await handleSftpDownload(args, sessionManager, sshManager);
96
96
  }
97
- case 'sftp_list': {
97
+ case "sftp_list": {
98
98
  return await handleSftpList(args, sessionManager, sshManager);
99
99
  }
100
- case 'connection_status': {
100
+ case "connection_status": {
101
101
  return await handleConnectionStatus(args, sessionManager, sshManager, tmuxManager);
102
102
  }
103
- case 'health_check': {
103
+ case "health_check": {
104
104
  return await handleHealthCheck(args, sessionManager, sshManager);
105
105
  }
106
- case 'tail_log': {
106
+ case "tail_log": {
107
107
  return await handleTailLog(args, sessionManager, sshManager);
108
108
  }
109
- case 'ssh_tunnel_open': {
109
+ case "ssh_tunnel_open": {
110
110
  return await handleTunnelOpen(args, sessionManager, sshManager);
111
111
  }
112
- case 'ssh_tunnel_close': {
112
+ case "ssh_tunnel_close": {
113
113
  return await handleTunnelClose(args);
114
114
  }
115
- case 'ssh_tunnel_list': {
115
+ case "ssh_tunnel_list": {
116
116
  return await handleTunnelList();
117
117
  }
118
- case 'deploy': {
118
+ case "deploy": {
119
119
  return await handleDeploy(args, sessionManager, sshManager);
120
120
  }
121
- case 'backup': {
121
+ case "backup": {
122
122
  return await handleBackup(args, sessionManager, sshManager);
123
123
  }
124
- case 'sync': {
124
+ case "sync": {
125
125
  return await handleSync(args, sessionManager, sshManager);
126
126
  }
127
- case 'group_exec': {
127
+ case "group_exec": {
128
128
  return await handleGroupExec(args, sessionManager, tmuxManager);
129
129
  }
130
- case 'db_query': {
130
+ case "db_query": {
131
131
  return await handleDbQuery(args, sessionManager, sshManager);
132
132
  }
133
- case 'tools_config': {
133
+ case "tools_config": {
134
134
  return await handleToolsConfig(args, toolConfigManager);
135
135
  }
136
- case 'host_security': {
136
+ case "host_security": {
137
137
  return await handleHostSecurity(args, hostSecurityManager);
138
138
  }
139
139
  default: {
@@ -143,7 +143,7 @@ export function createServer(storage) {
143
143
  }
144
144
  catch (err) {
145
145
  const message = err instanceof Error ? err.message : String(err);
146
- logger.error({ tool: name, error: message }, 'Unhandled tool error');
146
+ logger.error({ tool: name, error: message }, "Unhandled tool error");
147
147
  throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${message}`);
148
148
  }
149
149
  });