ssh-mcp-pro 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +127 -0
- package/ARCHITECTURE.md +145 -0
- package/LICENSE +21 -0
- package/LICENSES/MIT.txt +21 -0
- package/MIGRATION.md +14 -0
- package/README.md +175 -0
- package/REGISTRY_SUBMISSION.md +38 -0
- package/SECURITY.md +40 -0
- package/SECURITY_DECISIONS.md +59 -0
- package/dist/agent-bin.d.ts +3 -0
- package/dist/agent-bin.d.ts.map +1 -0
- package/dist/agent-bin.js +8 -0
- package/dist/agent-bin.js.map +1 -0
- package/dist/audit.d.ts +25 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +50 -0
- package/dist/audit.js.map +1 -0
- package/dist/auth.d.ts +4 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +33 -0
- package/dist/auth.js.map +1 -0
- package/dist/cli.d.ts +16 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +99 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +103 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +490 -0
- package/dist/config.js.map +1 -0
- package/dist/connector-credentials.d.ts +8 -0
- package/dist/connector-credentials.d.ts.map +1 -0
- package/dist/connector-credentials.js +132 -0
- package/dist/connector-credentials.js.map +1 -0
- package/dist/connector-profile.d.ts +17 -0
- package/dist/connector-profile.d.ts.map +1 -0
- package/dist/connector-profile.js +81 -0
- package/dist/connector-profile.js.map +1 -0
- package/dist/container.d.ts +18 -0
- package/dist/container.d.ts.map +1 -0
- package/dist/container.js +52 -0
- package/dist/container.js.map +1 -0
- package/dist/detect.d.ts +7 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +271 -0
- package/dist/detect.js.map +1 -0
- package/dist/ensure.d.ts +17 -0
- package/dist/ensure.d.ts.map +1 -0
- package/dist/ensure.js +531 -0
- package/dist/ensure.js.map +1 -0
- package/dist/errors.d.ts +54 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +84 -0
- package/dist/errors.js.map +1 -0
- package/dist/fs-tools.d.ts +26 -0
- package/dist/fs-tools.d.ts.map +1 -0
- package/dist/fs-tools.js +599 -0
- package/dist/fs-tools.js.map +1 -0
- package/dist/http-rate-limit.d.ts +9 -0
- package/dist/http-rate-limit.d.ts.map +1 -0
- package/dist/http-rate-limit.js +41 -0
- package/dist/http-rate-limit.js.map +1 -0
- package/dist/http-security.d.ts +22 -0
- package/dist/http-security.d.ts.map +1 -0
- package/dist/http-security.js +88 -0
- package/dist/http-security.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +201 -0
- package/dist/index.js.map +1 -0
- package/dist/logging.d.ts +52 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +180 -0
- package/dist/logging.js.map +1 -0
- package/dist/mcp.d.ts +16 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +159 -0
- package/dist/mcp.js.map +1 -0
- package/dist/metrics.d.ts +95 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +204 -0
- package/dist/metrics.js.map +1 -0
- package/dist/oauth.d.ts +14 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +105 -0
- package/dist/oauth.js.map +1 -0
- package/dist/policy.d.ts +64 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +368 -0
- package/dist/policy.js.map +1 -0
- package/dist/process.d.ts +24 -0
- package/dist/process.d.ts.map +1 -0
- package/dist/process.js +212 -0
- package/dist/process.js.map +1 -0
- package/dist/prompts.d.ts +49 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +191 -0
- package/dist/prompts.js.map +1 -0
- package/dist/rate-limiter.d.ts +57 -0
- package/dist/rate-limiter.d.ts.map +1 -0
- package/dist/rate-limiter.js +141 -0
- package/dist/rate-limiter.js.map +1 -0
- package/dist/remote/agent-cli.d.ts +2 -0
- package/dist/remote/agent-cli.d.ts.map +1 -0
- package/dist/remote/agent-cli.js +270 -0
- package/dist/remote/agent-cli.js.map +1 -0
- package/dist/remote/agent-executor.d.ts +26 -0
- package/dist/remote/agent-executor.d.ts.map +1 -0
- package/dist/remote/agent-executor.js +400 -0
- package/dist/remote/agent-executor.js.map +1 -0
- package/dist/remote/config.d.ts +3 -0
- package/dist/remote/config.d.ts.map +1 -0
- package/dist/remote/config.js +52 -0
- package/dist/remote/config.js.map +1 -0
- package/dist/remote/control-plane.d.ts +57 -0
- package/dist/remote/control-plane.d.ts.map +1 -0
- package/dist/remote/control-plane.js +1248 -0
- package/dist/remote/control-plane.js.map +1 -0
- package/dist/remote/crypto.d.ts +38 -0
- package/dist/remote/crypto.d.ts.map +1 -0
- package/dist/remote/crypto.js +143 -0
- package/dist/remote/crypto.js.map +1 -0
- package/dist/remote/mcp-tools.d.ts +10 -0
- package/dist/remote/mcp-tools.d.ts.map +1 -0
- package/dist/remote/mcp-tools.js +201 -0
- package/dist/remote/mcp-tools.js.map +1 -0
- package/dist/remote/policy.d.ts +11 -0
- package/dist/remote/policy.d.ts.map +1 -0
- package/dist/remote/policy.js +94 -0
- package/dist/remote/policy.js.map +1 -0
- package/dist/remote/schemas.d.ts +298 -0
- package/dist/remote/schemas.d.ts.map +1 -0
- package/dist/remote/schemas.js +111 -0
- package/dist/remote/schemas.js.map +1 -0
- package/dist/remote/scopes.d.ts +6 -0
- package/dist/remote/scopes.d.ts.map +1 -0
- package/dist/remote/scopes.js +24 -0
- package/dist/remote/scopes.js.map +1 -0
- package/dist/remote/store.d.ts +45 -0
- package/dist/remote/store.d.ts.map +1 -0
- package/dist/remote/store.js +355 -0
- package/dist/remote/store.js.map +1 -0
- package/dist/remote/types.d.ts +183 -0
- package/dist/remote/types.d.ts.map +1 -0
- package/dist/remote/types.js +103 -0
- package/dist/remote/types.js.map +1 -0
- package/dist/remote/util.d.ts +6 -0
- package/dist/remote/util.d.ts.map +1 -0
- package/dist/remote/util.js +45 -0
- package/dist/remote/util.js.map +1 -0
- package/dist/remote/websocket.d.ts +26 -0
- package/dist/remote/websocket.d.ts.map +1 -0
- package/dist/remote/websocket.js +167 -0
- package/dist/remote/websocket.js.map +1 -0
- package/dist/render-http.d.ts +2 -0
- package/dist/render-http.d.ts.map +1 -0
- package/dist/render-http.js +14 -0
- package/dist/render-http.js.map +1 -0
- package/dist/resources.d.ts +19 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +96 -0
- package/dist/resources.js.map +1 -0
- package/dist/retry.d.ts +45 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +120 -0
- package/dist/retry.js.map +1 -0
- package/dist/safety.d.ts +31 -0
- package/dist/safety.d.ts.map +1 -0
- package/dist/safety.js +174 -0
- package/dist/safety.js.map +1 -0
- package/dist/server-http.d.ts +2 -0
- package/dist/server-http.d.ts.map +1 -0
- package/dist/server-http.js +432 -0
- package/dist/server-http.js.map +1 -0
- package/dist/session.d.ts +116 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +666 -0
- package/dist/session.js.map +1 -0
- package/dist/shell.d.ts +10 -0
- package/dist/shell.d.ts.map +1 -0
- package/dist/shell.js +83 -0
- package/dist/shell.js.map +1 -0
- package/dist/ssh-config.d.ts +94 -0
- package/dist/ssh-config.d.ts.map +1 -0
- package/dist/ssh-config.js +234 -0
- package/dist/ssh-config.js.map +1 -0
- package/dist/streaming.d.ts +36 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/streaming.js +140 -0
- package/dist/streaming.js.map +1 -0
- package/dist/telemetry.d.ts +17 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +101 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tools/connector.provider.d.ts +28 -0
- package/dist/tools/connector.provider.d.ts.map +1 -0
- package/dist/tools/connector.provider.js +360 -0
- package/dist/tools/connector.provider.js.map +1 -0
- package/dist/tools/ensure.provider.d.ts +18 -0
- package/dist/tools/ensure.provider.d.ts.map +1 -0
- package/dist/tools/ensure.provider.js +173 -0
- package/dist/tools/ensure.provider.js.map +1 -0
- package/dist/tools/fs.provider.d.ts +21 -0
- package/dist/tools/fs.provider.d.ts.map +1 -0
- package/dist/tools/fs.provider.js +259 -0
- package/dist/tools/fs.provider.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +68 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/metadata.d.ts +11 -0
- package/dist/tools/metadata.d.ts.map +1 -0
- package/dist/tools/metadata.js +10 -0
- package/dist/tools/metadata.js.map +1 -0
- package/dist/tools/output-schemas.d.ts +217 -0
- package/dist/tools/output-schemas.d.ts.map +1 -0
- package/dist/tools/output-schemas.js +300 -0
- package/dist/tools/output-schemas.js.map +1 -0
- package/dist/tools/process.provider.d.ts +22 -0
- package/dist/tools/process.provider.d.ts.map +1 -0
- package/dist/tools/process.provider.js +146 -0
- package/dist/tools/process.provider.js.map +1 -0
- package/dist/tools/registry.d.ts +12 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +163 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/results.d.ts +4 -0
- package/dist/tools/results.d.ts.map +1 -0
- package/dist/tools/results.js +5 -0
- package/dist/tools/results.js.map +1 -0
- package/dist/tools/session.provider.d.ts +23 -0
- package/dist/tools/session.provider.d.ts.map +1 -0
- package/dist/tools/session.provider.js +299 -0
- package/dist/tools/session.provider.js.map +1 -0
- package/dist/tools/system.provider.d.ts +18 -0
- package/dist/tools/system.provider.d.ts.map +1 -0
- package/dist/tools/system.provider.js +81 -0
- package/dist/tools/system.provider.js.map +1 -0
- package/dist/tools/transfer.provider.d.ts +16 -0
- package/dist/tools/transfer.provider.d.ts.map +1 -0
- package/dist/tools/transfer.provider.js +85 -0
- package/dist/tools/transfer.provider.js.map +1 -0
- package/dist/tools/tunnel.provider.d.ts +18 -0
- package/dist/tools/tunnel.provider.d.ts.map +1 -0
- package/dist/tools/tunnel.provider.js +142 -0
- package/dist/tools/tunnel.provider.js.map +1 -0
- package/dist/tools/types.d.ts +16 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/transfer.d.ts +40 -0
- package/dist/transfer.d.ts.map +1 -0
- package/dist/transfer.js +363 -0
- package/dist/transfer.js.map +1 -0
- package/dist/tunnel.d.ts +37 -0
- package/dist/tunnel.d.ts.map +1 -0
- package/dist/tunnel.js +234 -0
- package/dist/tunnel.js.map +1 -0
- package/dist/types.d.ts +341 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +184 -0
- package/dist/types.js.map +1 -0
- package/docs/docker.md +22 -0
- package/examples/README.md +77 -0
- package/mcp.json +21 -0
- package/package.json +147 -0
- package/registry/ssh-mcp-pro/mcp.json +21 -0
- package/server.json +76 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Authentication configuration for SSH connections
|
|
4
|
+
*/
|
|
5
|
+
export interface AuthConfig {
|
|
6
|
+
password?: string;
|
|
7
|
+
privateKey?: string;
|
|
8
|
+
privateKeyPath?: string;
|
|
9
|
+
passphrase?: string;
|
|
10
|
+
useAgent?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* SSH connection parameters
|
|
14
|
+
*/
|
|
15
|
+
export interface ConnectionParams {
|
|
16
|
+
host: string;
|
|
17
|
+
policyHost?: string;
|
|
18
|
+
username: string;
|
|
19
|
+
port?: number;
|
|
20
|
+
auth?: "auto" | "password" | "key" | "agent";
|
|
21
|
+
password?: string;
|
|
22
|
+
privateKey?: string;
|
|
23
|
+
privateKeyPath?: string;
|
|
24
|
+
passphrase?: string;
|
|
25
|
+
useAgent?: boolean;
|
|
26
|
+
readyTimeoutMs?: number;
|
|
27
|
+
ttlMs?: number;
|
|
28
|
+
strictHostKeyChecking?: boolean;
|
|
29
|
+
hostKeyPolicy?: HostKeyPolicy;
|
|
30
|
+
knownHostsPath?: string;
|
|
31
|
+
expectedHostKeySha256?: string;
|
|
32
|
+
policyMode?: PolicyMode;
|
|
33
|
+
}
|
|
34
|
+
export type HostKeyPolicy = "strict" | "accept-new" | "insecure";
|
|
35
|
+
export type PolicyMode = "enforce" | "explain";
|
|
36
|
+
/**
|
|
37
|
+
* SSH session information
|
|
38
|
+
*/
|
|
39
|
+
export interface SessionInfo {
|
|
40
|
+
sessionId: string;
|
|
41
|
+
host: string;
|
|
42
|
+
username: string;
|
|
43
|
+
port: number;
|
|
44
|
+
createdAt: number;
|
|
45
|
+
expiresAt: number;
|
|
46
|
+
lastUsed: number;
|
|
47
|
+
policyMode: PolicyMode;
|
|
48
|
+
hostKeyPolicy: HostKeyPolicy;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Session creation result
|
|
52
|
+
*/
|
|
53
|
+
export interface SessionResult {
|
|
54
|
+
sessionId: string;
|
|
55
|
+
host: string;
|
|
56
|
+
username: string;
|
|
57
|
+
sftpAvailable: boolean;
|
|
58
|
+
expiresInMs: number;
|
|
59
|
+
policyMode: PolicyMode;
|
|
60
|
+
hostKeyPolicy: HostKeyPolicy;
|
|
61
|
+
wouldConnect?: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Command execution result
|
|
65
|
+
*/
|
|
66
|
+
export interface ExecResult {
|
|
67
|
+
code: number;
|
|
68
|
+
stdout: string;
|
|
69
|
+
stderr: string;
|
|
70
|
+
durationMs: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* File system entry information
|
|
74
|
+
*/
|
|
75
|
+
export interface FileStatInfo {
|
|
76
|
+
size: number;
|
|
77
|
+
mtime: Date;
|
|
78
|
+
mode: number;
|
|
79
|
+
type: "file" | "directory" | "symlink" | "other";
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Directory listing entry
|
|
83
|
+
*/
|
|
84
|
+
export interface DirEntry {
|
|
85
|
+
name: string;
|
|
86
|
+
type: "file" | "directory" | "symlink" | "other";
|
|
87
|
+
size?: number;
|
|
88
|
+
mtime?: Date;
|
|
89
|
+
mode?: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Directory listing result with pagination
|
|
93
|
+
*/
|
|
94
|
+
export interface DirListResult {
|
|
95
|
+
entries: DirEntry[];
|
|
96
|
+
nextToken?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* OS detection result
|
|
100
|
+
*/
|
|
101
|
+
export type Platform = "linux" | "darwin" | "windows" | "unknown";
|
|
102
|
+
export type PackageManager = "apt" | "dnf" | "yum" | "pacman" | "apk" | "zypper" | "brew" | "choco" | "winget" | "unknown";
|
|
103
|
+
export type InitSystem = "systemd" | "service" | "launchd" | "windows-service" | "unknown";
|
|
104
|
+
export type ShellType = "bash" | "sh" | "powershell" | "cmd" | "unknown";
|
|
105
|
+
export interface OSInfo {
|
|
106
|
+
platform: Platform;
|
|
107
|
+
distro: string;
|
|
108
|
+
version: string;
|
|
109
|
+
arch: string;
|
|
110
|
+
shell: string;
|
|
111
|
+
packageManager: PackageManager;
|
|
112
|
+
init: InitSystem;
|
|
113
|
+
defaultShell?: ShellType;
|
|
114
|
+
tempDir?: string;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Package operation result
|
|
118
|
+
*/
|
|
119
|
+
export interface PackageResult {
|
|
120
|
+
ok: boolean;
|
|
121
|
+
pm: string;
|
|
122
|
+
code: number;
|
|
123
|
+
stdout: string;
|
|
124
|
+
stderr: string;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Service operation result
|
|
128
|
+
*/
|
|
129
|
+
export interface ServiceResult {
|
|
130
|
+
ok: boolean;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Lines in file operation result
|
|
134
|
+
*/
|
|
135
|
+
export interface LinesInFileResult {
|
|
136
|
+
ok: boolean;
|
|
137
|
+
added: number;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Patch application result
|
|
141
|
+
*/
|
|
142
|
+
export interface PatchResult {
|
|
143
|
+
ok: boolean;
|
|
144
|
+
changed: boolean;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Custom error codes for SSH MCP operations
|
|
148
|
+
*/
|
|
149
|
+
export declare enum ErrorCode {
|
|
150
|
+
EAUTH = "EAUTH",
|
|
151
|
+
ECONN = "ECONN",
|
|
152
|
+
ETIMEOUT = "ETIMEOUT",
|
|
153
|
+
ENOSUDO = "ENOSUDO",
|
|
154
|
+
EPMGR = "EPMGR",
|
|
155
|
+
EFS = "EFS",
|
|
156
|
+
EPATCH = "EPATCH",
|
|
157
|
+
EBADREQ = "EBADREQ",
|
|
158
|
+
EPOLICY = "EPOLICY",
|
|
159
|
+
EHOSTKEY = "EHOSTKEY",
|
|
160
|
+
ELIMIT = "ELIMIT",
|
|
161
|
+
EUNSUPPORTED = "EUNSUPPORTED"
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Structured error class for SSH MCP operations
|
|
165
|
+
* Enhanced for ChatGPT/AI assistant integration
|
|
166
|
+
*/
|
|
167
|
+
export declare class SSHMCPError extends Error {
|
|
168
|
+
code: ErrorCode;
|
|
169
|
+
hint?: string | undefined;
|
|
170
|
+
userFriendlyMessage?: string | undefined;
|
|
171
|
+
recoverable: boolean;
|
|
172
|
+
suggestedAction?: string | undefined;
|
|
173
|
+
constructor(code: ErrorCode, message: string, hint?: string | undefined, userFriendlyMessage?: string | undefined, recoverable?: boolean, suggestedAction?: string | undefined);
|
|
174
|
+
/**
|
|
175
|
+
* Converts error to a JSON-serializable object for MCP responses
|
|
176
|
+
*/
|
|
177
|
+
toJSON(): {
|
|
178
|
+
code: ErrorCode;
|
|
179
|
+
message: string;
|
|
180
|
+
hint: string | undefined;
|
|
181
|
+
userFriendlyMessage: string | undefined;
|
|
182
|
+
recoverable: boolean;
|
|
183
|
+
suggestedAction: string | undefined;
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
export declare const ConnectionParamsSchema: z.ZodObject<{
|
|
187
|
+
host: z.ZodString;
|
|
188
|
+
username: z.ZodString;
|
|
189
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
190
|
+
auth: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
191
|
+
key: "key";
|
|
192
|
+
auto: "auto";
|
|
193
|
+
password: "password";
|
|
194
|
+
agent: "agent";
|
|
195
|
+
}>>>;
|
|
196
|
+
password: z.ZodOptional<z.ZodString>;
|
|
197
|
+
privateKey: z.ZodOptional<z.ZodString>;
|
|
198
|
+
privateKeyPath: z.ZodOptional<z.ZodString>;
|
|
199
|
+
passphrase: z.ZodOptional<z.ZodString>;
|
|
200
|
+
useAgent: z.ZodOptional<z.ZodBoolean>;
|
|
201
|
+
readyTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
202
|
+
ttlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
203
|
+
strictHostKeyChecking: z.ZodOptional<z.ZodBoolean>;
|
|
204
|
+
hostKeyPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
205
|
+
strict: "strict";
|
|
206
|
+
"accept-new": "accept-new";
|
|
207
|
+
insecure: "insecure";
|
|
208
|
+
}>>>;
|
|
209
|
+
knownHostsPath: z.ZodOptional<z.ZodString>;
|
|
210
|
+
expectedHostKeySha256: z.ZodOptional<z.ZodString>;
|
|
211
|
+
policyMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
212
|
+
enforce: "enforce";
|
|
213
|
+
explain: "explain";
|
|
214
|
+
}>>>;
|
|
215
|
+
}, z.core.$strip>;
|
|
216
|
+
export declare const SessionIdSchema: z.ZodObject<{
|
|
217
|
+
sessionId: z.ZodString;
|
|
218
|
+
}, z.core.$strip>;
|
|
219
|
+
export declare const ExecSchema: z.ZodObject<{
|
|
220
|
+
sessionId: z.ZodString;
|
|
221
|
+
command: z.ZodString;
|
|
222
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
223
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
224
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
225
|
+
}, z.core.$strip>;
|
|
226
|
+
export declare const SudoSchema: z.ZodObject<{
|
|
227
|
+
sessionId: z.ZodString;
|
|
228
|
+
command: z.ZodString;
|
|
229
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
230
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
231
|
+
}, z.core.$strip>;
|
|
232
|
+
export declare const FSReadSchema: z.ZodObject<{
|
|
233
|
+
sessionId: z.ZodString;
|
|
234
|
+
path: z.ZodString;
|
|
235
|
+
encoding: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
236
|
+
maxBytes: z.ZodOptional<z.ZodNumber>;
|
|
237
|
+
}, z.core.$strip>;
|
|
238
|
+
export declare const FSWriteSchema: z.ZodObject<{
|
|
239
|
+
sessionId: z.ZodString;
|
|
240
|
+
path: z.ZodString;
|
|
241
|
+
data: z.ZodString;
|
|
242
|
+
mode: z.ZodOptional<z.ZodNumber>;
|
|
243
|
+
}, z.core.$strip>;
|
|
244
|
+
export declare const FSStatSchema: z.ZodObject<{
|
|
245
|
+
sessionId: z.ZodString;
|
|
246
|
+
path: z.ZodString;
|
|
247
|
+
}, z.core.$strip>;
|
|
248
|
+
export declare const FSListSchema: z.ZodObject<{
|
|
249
|
+
sessionId: z.ZodString;
|
|
250
|
+
path: z.ZodString;
|
|
251
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
252
|
+
limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
253
|
+
}, z.core.$strip>;
|
|
254
|
+
export declare const FSPathSchema: z.ZodObject<{
|
|
255
|
+
sessionId: z.ZodString;
|
|
256
|
+
path: z.ZodString;
|
|
257
|
+
}, z.core.$strip>;
|
|
258
|
+
export declare const FSRenameSchema: z.ZodObject<{
|
|
259
|
+
sessionId: z.ZodString;
|
|
260
|
+
from: z.ZodString;
|
|
261
|
+
to: z.ZodString;
|
|
262
|
+
}, z.core.$strip>;
|
|
263
|
+
export declare const EnsurePackageSchema: z.ZodObject<{
|
|
264
|
+
sessionId: z.ZodString;
|
|
265
|
+
name: z.ZodString;
|
|
266
|
+
state: z.ZodDefault<z.ZodEnum<{
|
|
267
|
+
present: "present";
|
|
268
|
+
absent: "absent";
|
|
269
|
+
}>>;
|
|
270
|
+
}, z.core.$strip>;
|
|
271
|
+
export declare const EnsureServiceSchema: z.ZodObject<{
|
|
272
|
+
sessionId: z.ZodString;
|
|
273
|
+
name: z.ZodString;
|
|
274
|
+
state: z.ZodEnum<{
|
|
275
|
+
enabled: "enabled";
|
|
276
|
+
started: "started";
|
|
277
|
+
stopped: "stopped";
|
|
278
|
+
restarted: "restarted";
|
|
279
|
+
disabled: "disabled";
|
|
280
|
+
}>;
|
|
281
|
+
}, z.core.$strip>;
|
|
282
|
+
export declare const EnsureLinesSchema: z.ZodObject<{
|
|
283
|
+
sessionId: z.ZodString;
|
|
284
|
+
path: z.ZodString;
|
|
285
|
+
lines: z.ZodArray<z.ZodString>;
|
|
286
|
+
state: z.ZodDefault<z.ZodEnum<{
|
|
287
|
+
present: "present";
|
|
288
|
+
absent: "absent";
|
|
289
|
+
}>>;
|
|
290
|
+
createIfMissing: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
291
|
+
}, z.core.$strip>;
|
|
292
|
+
export declare const PatchApplySchema: z.ZodObject<{
|
|
293
|
+
sessionId: z.ZodString;
|
|
294
|
+
path: z.ZodString;
|
|
295
|
+
diff: z.ZodString;
|
|
296
|
+
}, z.core.$strip>;
|
|
297
|
+
export declare const HostAliasSchema: z.ZodObject<{
|
|
298
|
+
hostAlias: z.ZodString;
|
|
299
|
+
}, z.core.$strip>;
|
|
300
|
+
export declare const MetricsFormatSchema: z.ZodObject<{
|
|
301
|
+
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
302
|
+
json: "json";
|
|
303
|
+
prometheus: "prometheus";
|
|
304
|
+
}>>>;
|
|
305
|
+
}, z.core.$strip>;
|
|
306
|
+
export declare const ExecStreamSchema: z.ZodObject<{
|
|
307
|
+
sessionId: z.ZodString;
|
|
308
|
+
command: z.ZodString;
|
|
309
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
310
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
311
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
312
|
+
}, z.core.$strip>;
|
|
313
|
+
export declare const FileUploadSchema: z.ZodObject<{
|
|
314
|
+
sessionId: z.ZodString;
|
|
315
|
+
localPath: z.ZodString;
|
|
316
|
+
remotePath: z.ZodString;
|
|
317
|
+
}, z.core.$strip>;
|
|
318
|
+
export declare const FileDownloadSchema: z.ZodObject<{
|
|
319
|
+
sessionId: z.ZodString;
|
|
320
|
+
remotePath: z.ZodString;
|
|
321
|
+
localPath: z.ZodString;
|
|
322
|
+
}, z.core.$strip>;
|
|
323
|
+
export declare const TunnelLocalForwardSchema: z.ZodObject<{
|
|
324
|
+
sessionId: z.ZodString;
|
|
325
|
+
localPort: z.ZodNumber;
|
|
326
|
+
remoteHost: z.ZodDefault<z.ZodString>;
|
|
327
|
+
remotePort: z.ZodNumber;
|
|
328
|
+
}, z.core.$strip>;
|
|
329
|
+
export declare const TunnelRemoteForwardSchema: z.ZodObject<{
|
|
330
|
+
sessionId: z.ZodString;
|
|
331
|
+
remotePort: z.ZodNumber;
|
|
332
|
+
localHost: z.ZodDefault<z.ZodString>;
|
|
333
|
+
localPort: z.ZodNumber;
|
|
334
|
+
}, z.core.$strip>;
|
|
335
|
+
export declare const TunnelCloseSchema: z.ZodObject<{
|
|
336
|
+
tunnelId: z.ZodString;
|
|
337
|
+
}, z.core.$strip>;
|
|
338
|
+
export declare const TunnelListSchema: z.ZodObject<{
|
|
339
|
+
sessionId: z.ZodOptional<z.ZodString>;
|
|
340
|
+
}, z.core.$strip>;
|
|
341
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Custom error codes for SSH MCP operations
|
|
4
|
+
*/
|
|
5
|
+
export var ErrorCode;
|
|
6
|
+
(function (ErrorCode) {
|
|
7
|
+
ErrorCode["EAUTH"] = "EAUTH";
|
|
8
|
+
ErrorCode["ECONN"] = "ECONN";
|
|
9
|
+
ErrorCode["ETIMEOUT"] = "ETIMEOUT";
|
|
10
|
+
ErrorCode["ENOSUDO"] = "ENOSUDO";
|
|
11
|
+
ErrorCode["EPMGR"] = "EPMGR";
|
|
12
|
+
ErrorCode["EFS"] = "EFS";
|
|
13
|
+
ErrorCode["EPATCH"] = "EPATCH";
|
|
14
|
+
ErrorCode["EBADREQ"] = "EBADREQ";
|
|
15
|
+
ErrorCode["EPOLICY"] = "EPOLICY";
|
|
16
|
+
ErrorCode["EHOSTKEY"] = "EHOSTKEY";
|
|
17
|
+
ErrorCode["ELIMIT"] = "ELIMIT";
|
|
18
|
+
ErrorCode["EUNSUPPORTED"] = "EUNSUPPORTED";
|
|
19
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
20
|
+
/**
|
|
21
|
+
* Structured error class for SSH MCP operations
|
|
22
|
+
* Enhanced for ChatGPT/AI assistant integration
|
|
23
|
+
*/
|
|
24
|
+
export class SSHMCPError extends Error {
|
|
25
|
+
code;
|
|
26
|
+
hint;
|
|
27
|
+
userFriendlyMessage;
|
|
28
|
+
recoverable;
|
|
29
|
+
suggestedAction;
|
|
30
|
+
constructor(code, message, hint, userFriendlyMessage, recoverable = true, suggestedAction) {
|
|
31
|
+
super(message);
|
|
32
|
+
this.code = code;
|
|
33
|
+
this.hint = hint;
|
|
34
|
+
this.userFriendlyMessage = userFriendlyMessage;
|
|
35
|
+
this.recoverable = recoverable;
|
|
36
|
+
this.suggestedAction = suggestedAction;
|
|
37
|
+
this.name = "SSHMCPError";
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Converts error to a JSON-serializable object for MCP responses
|
|
41
|
+
*/
|
|
42
|
+
toJSON() {
|
|
43
|
+
return {
|
|
44
|
+
code: this.code,
|
|
45
|
+
message: this.message,
|
|
46
|
+
hint: this.hint,
|
|
47
|
+
userFriendlyMessage: this.userFriendlyMessage,
|
|
48
|
+
recoverable: this.recoverable,
|
|
49
|
+
suggestedAction: this.suggestedAction,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Zod schemas for input validation
|
|
54
|
+
const EnvKeySchema = z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/u);
|
|
55
|
+
const EnvMapSchema = z.record(EnvKeySchema, z.string());
|
|
56
|
+
export const ConnectionParamsSchema = z.object({
|
|
57
|
+
host: z.string().min(1),
|
|
58
|
+
username: z.string().min(1),
|
|
59
|
+
port: z.number().min(1).max(65535).optional(),
|
|
60
|
+
auth: z.enum(["auto", "password", "key", "agent"]).optional().default("auto"),
|
|
61
|
+
password: z.string().optional(),
|
|
62
|
+
privateKey: z.string().optional(),
|
|
63
|
+
privateKeyPath: z.string().optional(),
|
|
64
|
+
passphrase: z.string().optional(),
|
|
65
|
+
useAgent: z.boolean().optional(),
|
|
66
|
+
readyTimeoutMs: z.number().min(1000).optional().default(20000),
|
|
67
|
+
ttlMs: z.number().min(10000).optional().default(900000),
|
|
68
|
+
strictHostKeyChecking: z.boolean().optional(),
|
|
69
|
+
hostKeyPolicy: z.enum(["strict", "accept-new", "insecure"]).optional().default("strict"),
|
|
70
|
+
knownHostsPath: z.string().optional(),
|
|
71
|
+
expectedHostKeySha256: z.string().optional(),
|
|
72
|
+
policyMode: z.enum(["enforce", "explain"]).optional().default("enforce"),
|
|
73
|
+
});
|
|
74
|
+
export const SessionIdSchema = z.object({
|
|
75
|
+
sessionId: z.string().min(1),
|
|
76
|
+
});
|
|
77
|
+
export const ExecSchema = z.object({
|
|
78
|
+
sessionId: z.string().min(1),
|
|
79
|
+
command: z.string().min(1),
|
|
80
|
+
cwd: z.string().optional(),
|
|
81
|
+
env: EnvMapSchema.optional(),
|
|
82
|
+
timeoutMs: z.number().min(1000).optional().describe("Command execution timeout in milliseconds"),
|
|
83
|
+
});
|
|
84
|
+
export const SudoSchema = z.object({
|
|
85
|
+
sessionId: z.string().min(1),
|
|
86
|
+
command: z.string().min(1),
|
|
87
|
+
cwd: z.string().optional(),
|
|
88
|
+
timeoutMs: z.number().min(1000).optional().describe("Command execution timeout in milliseconds"),
|
|
89
|
+
});
|
|
90
|
+
export const FSReadSchema = z.object({
|
|
91
|
+
sessionId: z.string().min(1),
|
|
92
|
+
path: z.string().min(1),
|
|
93
|
+
encoding: z.string().optional().default("utf8"),
|
|
94
|
+
maxBytes: z.number().int().min(1).optional(),
|
|
95
|
+
});
|
|
96
|
+
export const FSWriteSchema = z.object({
|
|
97
|
+
sessionId: z.string().min(1),
|
|
98
|
+
path: z.string().min(1),
|
|
99
|
+
data: z.string(),
|
|
100
|
+
mode: z.number().optional(),
|
|
101
|
+
});
|
|
102
|
+
export const FSStatSchema = z.object({
|
|
103
|
+
sessionId: z.string().min(1),
|
|
104
|
+
path: z.string().min(1),
|
|
105
|
+
});
|
|
106
|
+
export const FSListSchema = z.object({
|
|
107
|
+
sessionId: z.string().min(1),
|
|
108
|
+
path: z.string().min(1),
|
|
109
|
+
page: z.number().min(0).optional(),
|
|
110
|
+
limit: z.number().min(1).max(1000).optional().default(100),
|
|
111
|
+
});
|
|
112
|
+
export const FSPathSchema = z.object({
|
|
113
|
+
sessionId: z.string().min(1),
|
|
114
|
+
path: z.string().min(1),
|
|
115
|
+
});
|
|
116
|
+
export const FSRenameSchema = z.object({
|
|
117
|
+
sessionId: z.string().min(1),
|
|
118
|
+
from: z.string().min(1),
|
|
119
|
+
to: z.string().min(1),
|
|
120
|
+
});
|
|
121
|
+
export const EnsurePackageSchema = z.object({
|
|
122
|
+
sessionId: z.string().min(1),
|
|
123
|
+
name: z.string().min(1),
|
|
124
|
+
state: z.enum(["present", "absent"]).default("present"),
|
|
125
|
+
});
|
|
126
|
+
export const EnsureServiceSchema = z.object({
|
|
127
|
+
sessionId: z.string().min(1),
|
|
128
|
+
name: z.string().min(1),
|
|
129
|
+
state: z.enum(["started", "stopped", "restarted", "enabled", "disabled"]),
|
|
130
|
+
});
|
|
131
|
+
export const EnsureLinesSchema = z.object({
|
|
132
|
+
sessionId: z.string().min(1),
|
|
133
|
+
path: z.string().min(1),
|
|
134
|
+
lines: z.array(z.string()),
|
|
135
|
+
state: z.enum(["present", "absent"]).default("present"),
|
|
136
|
+
createIfMissing: z.boolean().optional().default(true),
|
|
137
|
+
});
|
|
138
|
+
export const PatchApplySchema = z.object({
|
|
139
|
+
sessionId: z.string().min(1),
|
|
140
|
+
path: z.string().min(1),
|
|
141
|
+
diff: z.string(),
|
|
142
|
+
});
|
|
143
|
+
export const HostAliasSchema = z.object({
|
|
144
|
+
hostAlias: z.string().min(1),
|
|
145
|
+
});
|
|
146
|
+
export const MetricsFormatSchema = z.object({
|
|
147
|
+
format: z.enum(["json", "prometheus"]).optional().default("json"),
|
|
148
|
+
});
|
|
149
|
+
export const ExecStreamSchema = z.object({
|
|
150
|
+
sessionId: z.string().min(1),
|
|
151
|
+
command: z.string().min(1),
|
|
152
|
+
cwd: z.string().optional(),
|
|
153
|
+
env: EnvMapSchema.optional(),
|
|
154
|
+
timeoutMs: z.number().min(1000).optional().describe("Streaming command timeout in milliseconds"),
|
|
155
|
+
});
|
|
156
|
+
export const FileUploadSchema = z.object({
|
|
157
|
+
sessionId: z.string().min(1),
|
|
158
|
+
localPath: z.string().min(1),
|
|
159
|
+
remotePath: z.string().min(1),
|
|
160
|
+
});
|
|
161
|
+
export const FileDownloadSchema = z.object({
|
|
162
|
+
sessionId: z.string().min(1),
|
|
163
|
+
remotePath: z.string().min(1),
|
|
164
|
+
localPath: z.string().min(1),
|
|
165
|
+
});
|
|
166
|
+
export const TunnelLocalForwardSchema = z.object({
|
|
167
|
+
sessionId: z.string().min(1),
|
|
168
|
+
localPort: z.number().int().min(1).max(65535),
|
|
169
|
+
remoteHost: z.string().min(1).default("localhost"),
|
|
170
|
+
remotePort: z.number().int().min(1).max(65535),
|
|
171
|
+
});
|
|
172
|
+
export const TunnelRemoteForwardSchema = z.object({
|
|
173
|
+
sessionId: z.string().min(1),
|
|
174
|
+
remotePort: z.number().int().min(1).max(65535),
|
|
175
|
+
localHost: z.string().min(1).default("localhost"),
|
|
176
|
+
localPort: z.number().int().min(1).max(65535),
|
|
177
|
+
});
|
|
178
|
+
export const TunnelCloseSchema = z.object({
|
|
179
|
+
tunnelId: z.string().min(1),
|
|
180
|
+
});
|
|
181
|
+
export const TunnelListSchema = z.object({
|
|
182
|
+
sessionId: z.string().min(1).optional(),
|
|
183
|
+
});
|
|
184
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/docs/docker.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Docker Usage
|
|
2
|
+
|
|
3
|
+
Build the local production image:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
docker build -t ssh-mcp-pro:local .
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Run CLI smoke checks:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
docker run --rm ssh-mcp-pro:local --version
|
|
13
|
+
docker run --rm ssh-mcp-pro:local --help
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Run the HTTP transport on loopback on Linux hosts that support host networking:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
docker run --rm --network host ssh-mcp-pro:local http --host 127.0.0.1 --port 3000
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
For bridge or port-mapped containers, binding inside the container to `0.0.0.0` is a non-loopback HTTP deployment. Configure bearer or OAuth auth, allowed origins, `SSH_MCP_HTTP_PUBLIC_URL`, `SSH_MCP_ALLOWED_HOSTS`, strict host-key verification, and a remote-safe tool profile. The process refuses unsafe public bindings at startup.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# ssh-mcp-pro Examples
|
|
2
|
+
|
|
3
|
+
These examples are written for v2 secure defaults. Start with discovery, open one session per host, inspect capabilities, then prefer structured tools over raw shell commands.
|
|
4
|
+
|
|
5
|
+
## Safe Connection
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Use the safe-connect prompt. Connect to prod-1.example.com as deploy with hostKeyPolicy=strict, then list active sessions.
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
For a lab host that is not in `known_hosts` yet:
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
Open a session to lab-router as admin with hostKeyPolicy=accept-new, then run os_detect.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Explain Before Mutating
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
Open a session to web-1 as deploy with policyMode=explain. Plan how you would update /etc/nginx/nginx.conf to add gzip settings, including policy verdicts and rollback.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Read And Inspect
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
Connect to web-1 as deploy, run os_detect, read ssh-mcp-pro://policy/effective, then show df -h and uptime.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## File Operations
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
Read /etc/nginx/nginx.conf with fs_read. If it is larger than the read limit, use file_download instead.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
List /var/log with fs_list, then read the newest nginx error log if it is within the configured file-size limit.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Managed Configuration Change
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
Use the managed-config-change prompt for /etc/ssh/sshd_config. Read the file, propose a minimal unified diff, dry-run the patch, then apply only if policy allows it.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Package And Service Management
|
|
46
|
+
|
|
47
|
+
Prefer idempotent tools:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
Ensure htop is present on the host, then report whether anything changed.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
Ensure nginx is restarted only after checking policy and explaining the service impact.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Transfers
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
Upload ./release.tar.gz to /tmp/release.tar.gz with file_upload and report the SHA-256 verification result.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
Download /var/log/app/app.log to ./app.log with file_download and confirm checksum verification.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Tunnels
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
Create a local tunnel from localhost:15432 to remote database host db.internal:5432, list active tunnels, then close the tunnel when finished.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## BusyBox/dropbear Targets
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
Connect to my embedded host, inspect whether SFTP is available, then use fs_stat and fs_list on /tmp. If a helper is unsupported, explain the capability gap.
|
|
77
|
+
```
|
package/mcp.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ssh-mcp-pro",
|
|
3
|
+
"display_name": "ssh-mcp-pro",
|
|
4
|
+
"description": "Secure MCP SSH automation server with policy controls, resources, prompts, stdio, and HTTP.",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"author": "Osman Aslan",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"runtime": "node",
|
|
9
|
+
"entrypoint": "dist/index.js",
|
|
10
|
+
"transport": "stdio",
|
|
11
|
+
"platforms": [
|
|
12
|
+
"linux",
|
|
13
|
+
"macos",
|
|
14
|
+
"windows"
|
|
15
|
+
],
|
|
16
|
+
"capabilities": {
|
|
17
|
+
"tools": true,
|
|
18
|
+
"resources": true,
|
|
19
|
+
"prompts": true
|
|
20
|
+
}
|
|
21
|
+
}
|