@thesashadev/ssh-mcp-server 1.0.0 → 1.1.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.
package/README.md CHANGED
@@ -1,16 +1,20 @@
1
1
  # ssh-mcp-server
2
2
 
3
- MCP server for executing commands, uploading and downloading files on remote servers via SSH. Optimized for AI agents (Claude Code, Cursor, Windsurf, Antigravity, etc).
3
+ [![npm](https://img.shields.io/npm/v/@thesashadev/ssh-mcp-server)](https://www.npmjs.com/package/@thesashadev/ssh-mcp-server)
4
+ [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
4
5
 
5
- ## Features
6
+ MCP server for executing commands, uploading and downloading files on remote servers via SSH. Zero-config for single servers — just pass credentials inline.
7
+
8
+ ## Features
6
9
 
7
10
  - **Command execution** — sync/async modes, timeout, background polling
8
- - **Reliable file transfers** — 5 automatic fallback strategies (SFTP parallel → SFTP stream → SCP → base64 → chunked)
11
+ - **Reliable file transfers** — 5 automatic fallback strategies
9
12
  - **Multi-server** — easy switching with workspace-based auto-selection
10
- - **AI-Native output** — ANSI codes stripped, binary detected, control chars removed
11
- - **Extreme Performance** — Cached sessions, connection pooling, 64-stream parallel transfers
13
+ - **AI-Native output** — ANSI stripped, binary detected, control chars removed
14
+ - **Zero-config mode** — pass server credentials directly in MCP config, no extra files needed
15
+ - **Fast** — SFTP session caching, connection pooling, 64-stream parallel transfers
12
16
 
13
- ## 🛠 Tools
17
+ ## Tools
14
18
 
15
19
  | Tool | Description |
16
20
  |------|-------------|
@@ -19,25 +23,26 @@ MCP server for executing commands, uploading and downloading files on remote ser
19
23
  | `ssh_upload` | Upload a local file to remote server |
20
24
  | `ssh_download` | Download a remote file to local machine |
21
25
 
22
- ## 🚀 Quick Start
23
-
24
- ### Option A: Use via npx (Fastest)
25
- 1. Create `ssh-servers.json` in your current folder.
26
- 2. Run directly:
27
- ```bash
28
- npx -y @thesashadev/ssh-mcp-server
29
- ```
26
+ ## Quick Start
30
27
 
31
- ### Option B: Local Build
32
- 1. Clone & Build:
33
- ```bash
34
- git clone https://github.com/TheSashaDev/ssh-mcp-server.git
35
- cd ssh-mcp-server
36
- npm install
37
- npm run build
28
+ ### Zero-Config (Inline)
29
+ No files needed — pass server credentials directly in your AI tool's MCP config:
30
+ ```json
31
+ {
32
+ "ssh": {
33
+ "command": "npx",
34
+ "args": [
35
+ "-y", "@thesashadev/ssh-mcp-server",
36
+ "--host", "1.2.3.4",
37
+ "--username", "ubuntu",
38
+ "--password", "your-password"
39
+ ]
40
+ }
41
+ }
38
42
  ```
39
43
 
40
- 2. Create `ssh-servers.json` in the project root.
44
+ ### With Config File
45
+ For multi-server setups, create `ssh-servers.json` in your working directory:
41
46
  ```json
42
47
  {
43
48
  "servers": [
@@ -52,26 +57,70 @@ npm run build
52
57
  ]
53
58
  }
54
59
  ```
55
- *Supports password, private key (`privateKeyPath`), and SSH agent auth.*
60
+ Then run:
61
+ ```bash
62
+ npx -y @thesashadev/ssh-mcp-server
63
+ ```
56
64
 
57
65
  ## 🔌 Client Integration
58
66
 
59
- Select your AI tool to see the setup guide:
60
-
61
67
  <details>
62
- <summary><b>🤖 Claude Code (CLI)</b></summary>
68
+ <summary><b>Claude Code (CLI)</b></summary>
69
+
70
+ **Single server:**
71
+ ```bash
72
+ claude mcp add ssh -- npx -y @thesashadev/ssh-mcp-server --host 1.2.3.4 --username ubuntu --password secret
73
+ ```
74
+
75
+ **Two servers:**
76
+ ```bash
77
+ claude mcp add ssh -- npx -y @thesashadev/ssh-mcp-server \
78
+ --host 1.2.3.4 --username ubuntu --password secret --id dev \
79
+ --host 5.6.7.8 --username deploy --key ~/.ssh/id_rsa --id prod
80
+ ```
63
81
 
64
- Run this command in your terminal:
82
+ **Or with config file:**
65
83
  ```bash
66
- claude mcp add ssh -- node "D:/ssh mco/dist/index.js"
84
+ claude mcp add ssh -- npx -y @thesashadev/ssh-mcp-server
67
85
  ```
68
- Or manually add to `~/.config/claude/mcp_servers.json`:
86
+ *(Place `ssh-servers.json` in your project root)*
87
+ </details>
88
+
89
+ <details>
90
+ <summary><b>Claude Desktop</b></summary>
91
+
92
+ Edit `claude_desktop_config.json`:
93
+ - **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
94
+ - **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
95
+
96
+ **Single server:**
69
97
  ```json
70
98
  {
71
99
  "mcpServers": {
72
100
  "ssh": {
73
- "command": "node",
74
- "args": ["D:/ssh mco/dist/index.js"]
101
+ "command": "npx",
102
+ "args": [
103
+ "-y", "@thesashadev/ssh-mcp-server",
104
+ "--host", "1.2.3.4",
105
+ "--username", "ubuntu",
106
+ "--password", "secret"
107
+ ]
108
+ }
109
+ }
110
+ }
111
+ ```
112
+
113
+ **Two servers:**
114
+ ```json
115
+ {
116
+ "mcpServers": {
117
+ "ssh": {
118
+ "command": "npx",
119
+ "args": [
120
+ "-y", "@thesashadev/ssh-mcp-server",
121
+ "--host", "1.2.3.4", "--username", "ubuntu", "--password", "secret", "--id", "dev",
122
+ "--host", "5.6.7.8", "--username", "deploy", "--key", "~/.ssh/id_rsa", "--id", "prod"
123
+ ]
75
124
  }
76
125
  }
77
126
  }
@@ -79,47 +128,79 @@ Or manually add to `~/.config/claude/mcp_servers.json`:
79
128
  </details>
80
129
 
81
130
  <details>
82
- <summary><b>🖥️ Claude Desktop</b></summary>
131
+ <summary><b>Cursor</b></summary>
83
132
 
84
- Edit your `claude_desktop_config.json`:
85
- - **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
86
- - **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
133
+ Open **Settings** → **Cursor Settings** → **MCP** → **+ Add New MCP Server**.
87
134
 
135
+ Or add to `~/.cursor/mcp.json`:
136
+
137
+ **Single server:**
88
138
  ```json
89
139
  {
90
140
  "mcpServers": {
91
141
  "ssh": {
92
- "command": "node",
93
- "args": ["D:/ssh mco/dist/index.js"]
142
+ "command": "npx",
143
+ "args": [
144
+ "-y", "@thesashadev/ssh-mcp-server",
145
+ "--host", "1.2.3.4",
146
+ "--username", "ubuntu",
147
+ "--password", "secret"
148
+ ]
94
149
  }
95
150
  }
96
151
  }
97
152
  ```
98
- </details>
99
-
100
- <details>
101
- <summary><b>🖱️ Cursor</b></summary>
102
153
 
103
- 1. Go to **Settings** > **Cursor Settings** > **Features** > **MCP**.
104
- 2. Click **+ Add New MCP Server**.
105
- 3. Name: `ssh`. Type: `command`.
106
- 4. Command:
107
- ```bash
108
- node "D:/ssh mco/dist/index.js"
154
+ **Two servers:**
155
+ ```json
156
+ {
157
+ "mcpServers": {
158
+ "ssh": {
159
+ "command": "npx",
160
+ "args": [
161
+ "-y", "@thesashadev/ssh-mcp-server",
162
+ "--host", "1.2.3.4", "--username", "ubuntu", "--password", "secret", "--id", "dev",
163
+ "--host", "5.6.7.8", "--username", "deploy", "--key", "~/.ssh/id_rsa", "--id", "prod"
164
+ ]
165
+ }
166
+ }
167
+ }
109
168
  ```
110
169
  </details>
111
170
 
112
171
  <details>
113
- <summary><b>🏄 Windsurf</b></summary>
172
+ <summary><b>Windsurf</b></summary>
114
173
 
115
174
  Edit `~/.codeium/windsurf/mcp_config.json` (macOS/Linux) or `%USERPROFILE%\.codeium\windsurf\mcp_config.json` (Windows):
116
175
 
176
+ **Single server:**
177
+ ```json
178
+ {
179
+ "mcpServers": {
180
+ "ssh": {
181
+ "command": "npx",
182
+ "args": [
183
+ "-y", "@thesashadev/ssh-mcp-server",
184
+ "--host", "1.2.3.4",
185
+ "--username", "ubuntu",
186
+ "--password", "secret"
187
+ ]
188
+ }
189
+ }
190
+ }
191
+ ```
192
+
193
+ **Two servers:**
117
194
  ```json
118
195
  {
119
196
  "mcpServers": {
120
197
  "ssh": {
121
- "command": "node",
122
- "args": ["D:/ssh mco/dist/index.js"]
198
+ "command": "npx",
199
+ "args": [
200
+ "-y", "@thesashadev/ssh-mcp-server",
201
+ "--host", "1.2.3.4", "--username", "ubuntu", "--password", "secret", "--id", "dev",
202
+ "--host", "5.6.7.8", "--username", "deploy", "--key", "~/.ssh/id_rsa", "--id", "prod"
203
+ ]
123
204
  }
124
205
  }
125
206
  }
@@ -127,15 +208,38 @@ Edit `~/.codeium/windsurf/mcp_config.json` (macOS/Linux) or `%USERPROFILE%\.code
127
208
  </details>
128
209
 
129
210
  <details>
130
- <summary><b>🛡️ Antigravity</b></summary>
211
+ <summary><b>Antigravity</b></summary>
131
212
 
132
213
  Add to `mcp_config.json`:
214
+
215
+ **Single server:**
133
216
  ```json
134
217
  {
135
218
  "mcpServers": {
136
219
  "ssh": {
137
- "command": "node",
138
- "args": ["D:/ssh mco/dist/index.js"]
220
+ "command": "npx",
221
+ "args": [
222
+ "-y", "@thesashadev/ssh-mcp-server",
223
+ "--host", "1.2.3.4",
224
+ "--username", "ubuntu",
225
+ "--password", "secret"
226
+ ]
227
+ }
228
+ }
229
+ }
230
+ ```
231
+
232
+ **Two servers:**
233
+ ```json
234
+ {
235
+ "mcpServers": {
236
+ "ssh": {
237
+ "command": "npx",
238
+ "args": [
239
+ "-y", "@thesashadev/ssh-mcp-server",
240
+ "--host", "1.2.3.4", "--username", "ubuntu", "--password", "secret", "--id", "dev",
241
+ "--host", "5.6.7.8", "--username", "deploy", "--key", "~/.ssh/id_rsa", "--id", "prod"
242
+ ]
139
243
  }
140
244
  }
141
245
  }
@@ -143,27 +247,69 @@ Add to `mcp_config.json`:
143
247
  </details>
144
248
 
145
249
  <details>
146
- <summary><b>🧠 Codex</b></summary>
250
+ <summary><b>Codex</b></summary>
147
251
 
148
252
  Add to `codex.toml`:
253
+
254
+ **Single server:**
255
+ ```toml
256
+ [mcp_servers."ssh"]
257
+ command = "npx"
258
+ args = [
259
+ "-y", "@thesashadev/ssh-mcp-server",
260
+ "--host", "1.2.3.4",
261
+ "--username", "ubuntu",
262
+ "--password", "secret"
263
+ ]
264
+ enabled = true
265
+ ```
266
+
267
+ **Two servers:**
149
268
  ```toml
150
269
  [mcp_servers."ssh"]
151
- command = "node"
152
- args = ["D:/ssh mco/dist/index.js"]
270
+ command = "npx"
271
+ args = [
272
+ "-y", "@thesashadev/ssh-mcp-server",
273
+ "--host", "1.2.3.4", "--username", "ubuntu", "--password", "secret", "--id", "dev",
274
+ "--host", "5.6.7.8", "--username", "deploy", "--key", "~/.ssh/id_rsa", "--id", "prod"
275
+ ]
153
276
  enabled = true
154
277
  ```
155
278
  </details>
156
279
 
157
280
  <details>
158
- <summary><b>🔍 Cody (Sourcegraph)</b></summary>
281
+ <summary><b>Cody (Sourcegraph)</b></summary>
282
+
283
+ Edit `~/.config/cody/mcp_servers.json`:
159
284
 
160
- Edit `~/.config/cody/mcp_servers.json` (macOS/Linux) or `%USERPROFILE%\.config\cody\mcp_servers.json` (Windows):
285
+ **Single server:**
161
286
  ```json
162
287
  {
163
288
  "mcpServers": {
164
289
  "ssh": {
165
- "command": "node",
166
- "args": ["D:/ssh mco/dist/index.js"]
290
+ "command": "npx",
291
+ "args": [
292
+ "-y", "@thesashadev/ssh-mcp-server",
293
+ "--host", "1.2.3.4",
294
+ "--username", "ubuntu",
295
+ "--password", "secret"
296
+ ]
297
+ }
298
+ }
299
+ }
300
+ ```
301
+
302
+ **Two servers:**
303
+ ```json
304
+ {
305
+ "mcpServers": {
306
+ "ssh": {
307
+ "command": "npx",
308
+ "args": [
309
+ "-y", "@thesashadev/ssh-mcp-server",
310
+ "--host", "1.2.3.4", "--username", "ubuntu", "--password", "secret", "--id", "dev",
311
+ "--host", "5.6.7.8", "--username", "deploy", "--key", "~/.ssh/id_rsa", "--id", "prod"
312
+ ]
167
313
  }
168
314
  }
169
315
  }
@@ -171,42 +317,117 @@ Edit `~/.config/cody/mcp_servers.json` (macOS/Linux) or `%USERPROFILE%\.config\c
171
317
  </details>
172
318
 
173
319
  <details>
174
- <summary><b>🔁 Continue.dev</b></summary>
320
+ <summary><b>Continue.dev</b></summary>
321
+
322
+ Add to `.continue/config.json`:
175
323
 
176
- Add to your `.continue/config.json`:
324
+ **Single server:**
177
325
  ```json
178
326
  {
179
- "contextProviders": [
327
+ "mcpServers": [
180
328
  {
181
- "name": "mcp",
182
- "params": {
183
- "mcpServers": {
184
- "ssh": {
185
- "command": "node",
186
- "args": ["D:/ssh mco/dist/index.js"]
187
- }
188
- }
189
- }
329
+ "name": "ssh",
330
+ "command": "npx",
331
+ "args": [
332
+ "-y", "@thesashadev/ssh-mcp-server",
333
+ "--host", "1.2.3.4",
334
+ "--username", "ubuntu",
335
+ "--password", "secret"
336
+ ]
337
+ }
338
+ ]
339
+ }
340
+ ```
341
+
342
+ **Two servers:**
343
+ ```json
344
+ {
345
+ "mcpServers": [
346
+ {
347
+ "name": "ssh",
348
+ "command": "npx",
349
+ "args": [
350
+ "-y", "@thesashadev/ssh-mcp-server",
351
+ "--host", "1.2.3.4", "--username", "ubuntu", "--password", "secret", "--id", "dev",
352
+ "--host", "5.6.7.8", "--username", "deploy", "--key", "~/.ssh/id_rsa", "--id", "prod"
353
+ ]
190
354
  }
191
355
  ]
192
356
  }
193
357
  ```
194
358
  </details>
195
359
 
196
- ## ⚙️ Server Config
360
+ ## Configuration
361
+
362
+ Three ways to configure servers (in priority order):
363
+
364
+ ### 1. CLI Arguments (Zero-Config)
365
+ Pass directly in your MCP config args:
366
+ ```
367
+ --host 1.2.3.4 --username ubuntu --password secret
368
+ --host 1.2.3.4 --username deploy --key ~/.ssh/id_rsa
369
+ ```
370
+
371
+ | Arg | Description |
372
+ |-----|-------------|
373
+ | `--host` | SSH host (starts a new server block) |
374
+ | `--port` | SSH port (default: 22) |
375
+ | `--username` | SSH user |
376
+ | `--password` | Password auth |
377
+ | `--key` | Path to private key |
378
+ | `--passphrase` | Key passphrase |
379
+ | `--id` | Server ID (default: "default") |
380
+ | `--name` | Display name |
381
+ | `--remote-dir` | Default remote directory |
382
+ | `--workspace` | Local directory binding |
383
+
384
+ Multiple servers: repeat `--host` blocks:
385
+ ```
386
+ --host 1.2.3.4 --username dev --password pass1 --id dev
387
+ --host 5.6.7.8 --username prod --key ~/.ssh/id_rsa --id prod
388
+ ```
389
+
390
+ ### 2. Environment Variables
391
+ For single-server setups via env:
392
+ ```
393
+ SSH_HOST=1.2.3.4 SSH_USER=ubuntu SSH_PASSWORD=secret
394
+ ```
197
395
 
198
- | Field | Required | Description |
199
- |-------|----------|-------------|
200
- | `id` | yes | ID used in tool calls |
201
- | `host` | yes | SSH host |
202
- | `username` | yes | SSH username |
203
- | `password` | no | Password auth |
204
- | `privateKeyPath`| no | Path to private key |
205
- | `workspaces` | no | Local folders for auto-selection |
396
+ | Env Var | Description |
397
+ |---------|-------------|
398
+ | `SSH_HOST` | SSH host |
399
+ | `SSH_PORT` | SSH port |
400
+ | `SSH_USER` | Username |
401
+ | `SSH_PASSWORD` | Password |
402
+ | `SSH_KEY` | Private key path |
403
+ | `SSH_PASSPHRASE` | Key passphrase |
404
+ | `SSH_REMOTE_DIR` | Default remote dir |
405
+ | `SSH_WORKSPACE` | Local workspace |
206
406
 
207
- ### Workspace Auto-Selection
208
- When `workspaces` are set (e.g. `["D:\\projects\\my-app"]`), the AI automatically selects the correct server based on your current local directory. No manual `server_id` required!
407
+ ### 3. Config File (`ssh-servers.json`)
408
+ For complex multi-server setups. Looked up in: current directory package directory.
409
+
410
+ ```json
411
+ {
412
+ "servers": [
413
+ {
414
+ "id": "dev",
415
+ "host": "1.2.3.4",
416
+ "username": "ubuntu",
417
+ "password": "secret",
418
+ "workspaces": ["D:\\projects\\my-app"]
419
+ },
420
+ {
421
+ "id": "prod",
422
+ "host": "5.6.7.8",
423
+ "username": "deploy",
424
+ "privateKeyPath": "~/.ssh/id_rsa",
425
+ "workspaces": ["D:\\projects\\production"]
426
+ }
427
+ ]
428
+ }
429
+ ```
209
430
 
210
- ## 📜 License
431
+ ## License
211
432
 
212
433
  AGPL-3.0
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;CAC3B;AAOD,wBAAgB,UAAU,IAAI,MAAM,CAyCnC;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAQxD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkB7E;AAED,wBAAgB,WAAW,IAAI,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAQrG"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;CAC3B;AA4GD,wBAAgB,UAAU,IAAI,MAAM,CA+DnC;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAQxD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkB7E;AAED,wBAAgB,WAAW,IAAI,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAQrG"}
package/dist/config.js CHANGED
@@ -5,9 +5,147 @@ import { dirname, normalize } from 'path';
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const __dirname = dirname(__filename);
7
7
  let cachedConfig = null;
8
+ // Parse CLI args like --host, --username, --password, --key, etc.
9
+ function parseCliServers() {
10
+ const args = process.argv.slice(2);
11
+ const servers = [];
12
+ let current = null;
13
+ function flushCurrent() {
14
+ if (current?.host && current?.username) {
15
+ servers.push({
16
+ id: current.id || 'default',
17
+ name: current.name || `${current.username}@${current.host}`,
18
+ host: current.host,
19
+ port: current.port || 22,
20
+ username: current.username,
21
+ password: current.password,
22
+ privateKeyPath: current.privateKeyPath,
23
+ passphrase: current.passphrase,
24
+ defaultRemoteDir: current.defaultRemoteDir || `/home/${current.username}`,
25
+ workspaces: current.workspaces || [],
26
+ });
27
+ }
28
+ }
29
+ function getVal(i) {
30
+ return i + 1 < args.length ? args[i + 1] : undefined;
31
+ }
32
+ for (let i = 0; i < args.length; i++) {
33
+ const arg = args[i];
34
+ const val = getVal(i);
35
+ switch (arg) {
36
+ case '--host':
37
+ // Each --host starts a new server block
38
+ if (current)
39
+ flushCurrent();
40
+ current = { host: val };
41
+ i++;
42
+ break;
43
+ case '--port':
44
+ if (!current)
45
+ current = {};
46
+ current.port = val ? parseInt(val, 10) : 22;
47
+ i++;
48
+ break;
49
+ case '--username':
50
+ case '--user':
51
+ if (!current)
52
+ current = {};
53
+ current.username = val;
54
+ i++;
55
+ break;
56
+ case '--password':
57
+ case '--pass':
58
+ if (!current)
59
+ current = {};
60
+ current.password = val;
61
+ i++;
62
+ break;
63
+ case '--key':
64
+ case '--private-key':
65
+ if (!current)
66
+ current = {};
67
+ current.privateKeyPath = val;
68
+ i++;
69
+ break;
70
+ case '--passphrase':
71
+ if (!current)
72
+ current = {};
73
+ current.passphrase = val;
74
+ i++;
75
+ break;
76
+ case '--id':
77
+ if (!current)
78
+ current = {};
79
+ current.id = val;
80
+ i++;
81
+ break;
82
+ case '--name':
83
+ if (!current)
84
+ current = {};
85
+ current.name = val;
86
+ i++;
87
+ break;
88
+ case '--remote-dir':
89
+ if (!current)
90
+ current = {};
91
+ current.defaultRemoteDir = val;
92
+ i++;
93
+ break;
94
+ case '--workspace':
95
+ if (!current)
96
+ current = {};
97
+ if (!current.workspaces)
98
+ current.workspaces = [];
99
+ if (val)
100
+ current.workspaces.push(val);
101
+ i++;
102
+ break;
103
+ }
104
+ }
105
+ flushCurrent();
106
+ return servers;
107
+ }
108
+ // Also check env vars for single-server inline config
109
+ function parseEnvServer() {
110
+ const host = process.env.SSH_HOST;
111
+ const username = process.env.SSH_USER || process.env.SSH_USERNAME;
112
+ if (!host || !username)
113
+ return null;
114
+ return {
115
+ id: process.env.SSH_ID || 'default',
116
+ name: process.env.SSH_NAME || `${username}@${host}`,
117
+ host,
118
+ port: parseInt(process.env.SSH_PORT || '22', 10),
119
+ username,
120
+ password: process.env.SSH_PASSWORD || process.env.SSH_PASS,
121
+ privateKeyPath: process.env.SSH_KEY || process.env.SSH_PRIVATE_KEY,
122
+ passphrase: process.env.SSH_PASSPHRASE,
123
+ defaultRemoteDir: process.env.SSH_REMOTE_DIR || `/home/${username}`,
124
+ workspaces: process.env.SSH_WORKSPACE ? [process.env.SSH_WORKSPACE] : [],
125
+ };
126
+ }
8
127
  export function loadConfig() {
9
128
  if (cachedConfig)
10
129
  return cachedConfig;
130
+ const inlineServers = [];
131
+ // Priority 1: CLI args
132
+ const cliServers = parseCliServers();
133
+ inlineServers.push(...cliServers);
134
+ // Priority 2: Env vars (single server)
135
+ if (inlineServers.length === 0) {
136
+ const envServer = parseEnvServer();
137
+ if (envServer)
138
+ inlineServers.push(envServer);
139
+ }
140
+ // If we have inline servers, use them (skip file)
141
+ if (inlineServers.length > 0) {
142
+ for (const srv of inlineServers) {
143
+ srv.workspaces = (srv.workspaces || []).map(w => normalize(w).toLowerCase());
144
+ }
145
+ cachedConfig = { servers: inlineServers };
146
+ return cachedConfig;
147
+ }
148
+ // Priority 3: Config file
11
149
  let configPath = process.env.SSH_MCP_CONFIG;
12
150
  if (!configPath) {
13
151
  const cwdConfig = resolve(process.cwd(), 'ssh-servers.json');
@@ -39,7 +177,7 @@ export function loadConfig() {
39
177
  }
40
178
  catch (err) {
41
179
  if (err.code === 'ENOENT') {
42
- throw new Error(`Config file not found at ${configPath}. Create ssh-servers.json with your server definitions.`);
180
+ throw new Error(`No servers configured. Pass --host/--username args, set SSH_HOST/SSH_USER env vars, or create ssh-servers.json.`);
43
181
  }
44
182
  throw new Error(`Failed to load config: ${err.message}`);
45
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ssh-manager.d.ts","sourceRoot":"","sources":["../src/ssh-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;AAoBpE;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBrE;AA4ED;;GAEG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkCpE;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAK/B;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMjD"}
1
+ {"version":3,"file":"ssh-manager.d.ts","sourceRoot":"","sources":["../src/ssh-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;AAoBpE;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBrE;AAuED;;GAEG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkCpE;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAK/B;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMjD"}
@@ -49,12 +49,6 @@ async function createConnection(serverId) {
49
49
  readyTimeout: CONNECTION_TIMEOUT,
50
50
  keepaliveInterval: KEEPALIVE_INTERVAL,
51
51
  keepaliveCountMax: 5,
52
- algorithms: {
53
- // Prefer fast ciphers
54
- cipher: ['aes128-gcm@openssh.com', 'aes256-gcm@openssh.com', 'aes128-ctr', 'aes192-ctr', 'aes256-ctr'],
55
- // Prefer fast key exchange
56
- kex: ['curve25519-sha256', 'curve25519-sha256@libssh.org', 'ecdh-sha2-nistp256', 'ecdh-sha2-nistp384', 'diffie-hellman-group14-sha256'],
57
- },
58
52
  };
59
53
  if (serverConfig.privateKeyPath) {
60
54
  try {
@@ -79,6 +73,7 @@ async function createConnection(serverId) {
79
73
  }, CONNECTION_TIMEOUT + 2000);
80
74
  client.on('ready', () => {
81
75
  clearTimeout(timeout);
76
+ console.error(`ssh-mcp: connected to ${serverId} (${serverConfig.host}:${serverConfig.port})`);
82
77
  pool.set(serverId, { client, config: serverConfig, lastUsed: Date.now(), connected: true, sftp: null, sftpPending: null });
83
78
  resolve(client);
84
79
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ssh-manager.js","sourceRoot":"","sources":["../src/ssh-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh-manager.js","sourceRoot":"","sources":["../src/ssh-manager.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ async function runSyncCommand(client, command, timeoutMs) {
47
47
  catch { }
48
48
  }, timeoutMs);
49
49
  let stream;
50
- client.exec(command, (err, s) => {
50
+ client.exec(command, { pty: false }, (err, s) => {
51
51
  if (err) {
52
52
  clearTimeout(timeout);
53
53
  resolve(formatCommandResult({
@@ -61,7 +61,9 @@ async function runSyncCommand(client, command, timeoutMs) {
61
61
  }
62
62
  stream = s;
63
63
  s.on('data', (data) => {
64
- stdout += data.toString('utf-8');
64
+ const chunk = data.toString('utf-8');
65
+ console.error(`ssh-mcp: stdout chunk (${chunk.length} chars)`);
66
+ stdout += chunk;
65
67
  // Cap buffer at 5MB to prevent memory issues
66
68
  if (stdout.length > 5 * 1024 * 1024) {
67
69
  stdout = stdout.slice(-2 * 1024 * 1024);
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgB1D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEtD,6CAA6C;AAC7C,WAAW,CAAC,GAAG,EAAE;IACb,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;YACrD,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;AACL,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;AAElB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAOpC;IACG,sEAAsE;IACtE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;IAErF,wCAAwC;IACxC,IAAI,WAAW,GAAG,OAAO,CAAC;IAC1B,IAAI,GAAG,EAAE,CAAC;QACN,WAAW,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAW,EAAE,OAAe,EAAE,SAAiB;IACzE,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC;gBAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,IAAI,MAAW,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,CAAM,EAAE,EAAE;YACtC,IAAI,GAAG,EAAE,CAAC;gBACN,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,mBAAmB,CAAC;oBACxB,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,GAAG,CAAC,OAAO;oBACnB,QAAQ,EAAE,CAAC,CAAC;oBACZ,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC,CAAC;gBACJ,OAAO;YACX,CAAC;YAED,MAAM,GAAG,CAAC,CAAC;YAEX,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC1B,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjC,6CAA6C;gBAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;oBAClC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACjC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;oBAClC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,MAAqB,EAAE,EAAE;gBACzD,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,mBAAmB,CAAC;oBACxB,MAAM;oBACN,MAAM;oBACN,QAAQ,EAAE,IAAI;oBACd,MAAM;oBACN,QAAQ;oBACR,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC,CAAC;YACR,CAAC,CAAC,CAAC;YAEH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAc,EAAE,EAAE;gBAC7B,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,mBAAmB,CAAC;oBACxB,MAAM;oBACN,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,OAAO;oBACzC,QAAQ,EAAE,CAAC,CAAC;oBACZ,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC,CAAC;YACR,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC5B,QAAgB,EAChB,WAAmB,EACnB,cAAsB,EACtB,SAAiB;IAEjB,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAiB;QAC3B,EAAE;QACF,QAAQ;QACR,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACxB,CAAC;IAEF,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;QAC/C,IAAI,GAAG,EAAE,CAAC;YACN,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;YAC1B,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAEzB,cAAc;QACd,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAChB,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;oBAC5B,IAAI,CAAC;wBAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;gBACrC,CAAC;YACL,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC/B,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1C,aAAa;YACb,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;gBAC3C,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACtC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;gBAC3C,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,MAAqB,EAAE,EAAE;YAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;YAC7B,CAAC;YACD,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YACzB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAc,EAAE,EAAE;YAClC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;YAC1B,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,gDAAgD,EAAE,2EAA2E,CAAC;AACzI,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACrC,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,YAAY,SAAS,8EAA8E,CAAC;IAC/G,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAa;QACpB,YAAY,GAAG,CAAC,OAAO,EAAE;QACzB,WAAW,GAAG,CAAC,QAAQ,EAAE;QACzB,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;QACrC,gBAAgB,OAAO,GAAG;KAC7B,CAAC;IAEF,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5C,IAAI,WAAW,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thesashadev/ssh-mcp-server",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "Professional SSH MCP server for AI agents. Supports sync/async commands, high-performance file transfers with 5 fallbacks.",
5
5
  "license": "AGPL-3.0",
6
6
  "type": "module",