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.
Files changed (267) hide show
  1. package/AGENTS.md +127 -0
  2. package/ARCHITECTURE.md +145 -0
  3. package/LICENSE +21 -0
  4. package/LICENSES/MIT.txt +21 -0
  5. package/MIGRATION.md +14 -0
  6. package/README.md +175 -0
  7. package/REGISTRY_SUBMISSION.md +38 -0
  8. package/SECURITY.md +40 -0
  9. package/SECURITY_DECISIONS.md +59 -0
  10. package/dist/agent-bin.d.ts +3 -0
  11. package/dist/agent-bin.d.ts.map +1 -0
  12. package/dist/agent-bin.js +8 -0
  13. package/dist/agent-bin.js.map +1 -0
  14. package/dist/audit.d.ts +25 -0
  15. package/dist/audit.d.ts.map +1 -0
  16. package/dist/audit.js +50 -0
  17. package/dist/audit.js.map +1 -0
  18. package/dist/auth.d.ts +4 -0
  19. package/dist/auth.d.ts.map +1 -0
  20. package/dist/auth.js +33 -0
  21. package/dist/auth.js.map +1 -0
  22. package/dist/cli.d.ts +16 -0
  23. package/dist/cli.d.ts.map +1 -0
  24. package/dist/cli.js +99 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/config.d.ts +103 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +490 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/connector-credentials.d.ts +8 -0
  31. package/dist/connector-credentials.d.ts.map +1 -0
  32. package/dist/connector-credentials.js +132 -0
  33. package/dist/connector-credentials.js.map +1 -0
  34. package/dist/connector-profile.d.ts +17 -0
  35. package/dist/connector-profile.d.ts.map +1 -0
  36. package/dist/connector-profile.js +81 -0
  37. package/dist/connector-profile.js.map +1 -0
  38. package/dist/container.d.ts +18 -0
  39. package/dist/container.d.ts.map +1 -0
  40. package/dist/container.js +52 -0
  41. package/dist/container.js.map +1 -0
  42. package/dist/detect.d.ts +7 -0
  43. package/dist/detect.d.ts.map +1 -0
  44. package/dist/detect.js +271 -0
  45. package/dist/detect.js.map +1 -0
  46. package/dist/ensure.d.ts +17 -0
  47. package/dist/ensure.d.ts.map +1 -0
  48. package/dist/ensure.js +531 -0
  49. package/dist/ensure.js.map +1 -0
  50. package/dist/errors.d.ts +54 -0
  51. package/dist/errors.d.ts.map +1 -0
  52. package/dist/errors.js +84 -0
  53. package/dist/errors.js.map +1 -0
  54. package/dist/fs-tools.d.ts +26 -0
  55. package/dist/fs-tools.d.ts.map +1 -0
  56. package/dist/fs-tools.js +599 -0
  57. package/dist/fs-tools.js.map +1 -0
  58. package/dist/http-rate-limit.d.ts +9 -0
  59. package/dist/http-rate-limit.d.ts.map +1 -0
  60. package/dist/http-rate-limit.js +41 -0
  61. package/dist/http-rate-limit.js.map +1 -0
  62. package/dist/http-security.d.ts +22 -0
  63. package/dist/http-security.d.ts.map +1 -0
  64. package/dist/http-security.js +88 -0
  65. package/dist/http-security.js.map +1 -0
  66. package/dist/index.d.ts +10 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +201 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/logging.d.ts +52 -0
  71. package/dist/logging.d.ts.map +1 -0
  72. package/dist/logging.js +180 -0
  73. package/dist/logging.js.map +1 -0
  74. package/dist/mcp.d.ts +16 -0
  75. package/dist/mcp.d.ts.map +1 -0
  76. package/dist/mcp.js +159 -0
  77. package/dist/mcp.js.map +1 -0
  78. package/dist/metrics.d.ts +95 -0
  79. package/dist/metrics.d.ts.map +1 -0
  80. package/dist/metrics.js +204 -0
  81. package/dist/metrics.js.map +1 -0
  82. package/dist/oauth.d.ts +14 -0
  83. package/dist/oauth.d.ts.map +1 -0
  84. package/dist/oauth.js +105 -0
  85. package/dist/oauth.js.map +1 -0
  86. package/dist/policy.d.ts +64 -0
  87. package/dist/policy.d.ts.map +1 -0
  88. package/dist/policy.js +368 -0
  89. package/dist/policy.js.map +1 -0
  90. package/dist/process.d.ts +24 -0
  91. package/dist/process.d.ts.map +1 -0
  92. package/dist/process.js +212 -0
  93. package/dist/process.js.map +1 -0
  94. package/dist/prompts.d.ts +49 -0
  95. package/dist/prompts.d.ts.map +1 -0
  96. package/dist/prompts.js +191 -0
  97. package/dist/prompts.js.map +1 -0
  98. package/dist/rate-limiter.d.ts +57 -0
  99. package/dist/rate-limiter.d.ts.map +1 -0
  100. package/dist/rate-limiter.js +141 -0
  101. package/dist/rate-limiter.js.map +1 -0
  102. package/dist/remote/agent-cli.d.ts +2 -0
  103. package/dist/remote/agent-cli.d.ts.map +1 -0
  104. package/dist/remote/agent-cli.js +270 -0
  105. package/dist/remote/agent-cli.js.map +1 -0
  106. package/dist/remote/agent-executor.d.ts +26 -0
  107. package/dist/remote/agent-executor.d.ts.map +1 -0
  108. package/dist/remote/agent-executor.js +400 -0
  109. package/dist/remote/agent-executor.js.map +1 -0
  110. package/dist/remote/config.d.ts +3 -0
  111. package/dist/remote/config.d.ts.map +1 -0
  112. package/dist/remote/config.js +52 -0
  113. package/dist/remote/config.js.map +1 -0
  114. package/dist/remote/control-plane.d.ts +57 -0
  115. package/dist/remote/control-plane.d.ts.map +1 -0
  116. package/dist/remote/control-plane.js +1248 -0
  117. package/dist/remote/control-plane.js.map +1 -0
  118. package/dist/remote/crypto.d.ts +38 -0
  119. package/dist/remote/crypto.d.ts.map +1 -0
  120. package/dist/remote/crypto.js +143 -0
  121. package/dist/remote/crypto.js.map +1 -0
  122. package/dist/remote/mcp-tools.d.ts +10 -0
  123. package/dist/remote/mcp-tools.d.ts.map +1 -0
  124. package/dist/remote/mcp-tools.js +201 -0
  125. package/dist/remote/mcp-tools.js.map +1 -0
  126. package/dist/remote/policy.d.ts +11 -0
  127. package/dist/remote/policy.d.ts.map +1 -0
  128. package/dist/remote/policy.js +94 -0
  129. package/dist/remote/policy.js.map +1 -0
  130. package/dist/remote/schemas.d.ts +298 -0
  131. package/dist/remote/schemas.d.ts.map +1 -0
  132. package/dist/remote/schemas.js +111 -0
  133. package/dist/remote/schemas.js.map +1 -0
  134. package/dist/remote/scopes.d.ts +6 -0
  135. package/dist/remote/scopes.d.ts.map +1 -0
  136. package/dist/remote/scopes.js +24 -0
  137. package/dist/remote/scopes.js.map +1 -0
  138. package/dist/remote/store.d.ts +45 -0
  139. package/dist/remote/store.d.ts.map +1 -0
  140. package/dist/remote/store.js +355 -0
  141. package/dist/remote/store.js.map +1 -0
  142. package/dist/remote/types.d.ts +183 -0
  143. package/dist/remote/types.d.ts.map +1 -0
  144. package/dist/remote/types.js +103 -0
  145. package/dist/remote/types.js.map +1 -0
  146. package/dist/remote/util.d.ts +6 -0
  147. package/dist/remote/util.d.ts.map +1 -0
  148. package/dist/remote/util.js +45 -0
  149. package/dist/remote/util.js.map +1 -0
  150. package/dist/remote/websocket.d.ts +26 -0
  151. package/dist/remote/websocket.d.ts.map +1 -0
  152. package/dist/remote/websocket.js +167 -0
  153. package/dist/remote/websocket.js.map +1 -0
  154. package/dist/render-http.d.ts +2 -0
  155. package/dist/render-http.d.ts.map +1 -0
  156. package/dist/render-http.js +14 -0
  157. package/dist/render-http.js.map +1 -0
  158. package/dist/resources.d.ts +19 -0
  159. package/dist/resources.d.ts.map +1 -0
  160. package/dist/resources.js +96 -0
  161. package/dist/resources.js.map +1 -0
  162. package/dist/retry.d.ts +45 -0
  163. package/dist/retry.d.ts.map +1 -0
  164. package/dist/retry.js +120 -0
  165. package/dist/retry.js.map +1 -0
  166. package/dist/safety.d.ts +31 -0
  167. package/dist/safety.d.ts.map +1 -0
  168. package/dist/safety.js +174 -0
  169. package/dist/safety.js.map +1 -0
  170. package/dist/server-http.d.ts +2 -0
  171. package/dist/server-http.d.ts.map +1 -0
  172. package/dist/server-http.js +432 -0
  173. package/dist/server-http.js.map +1 -0
  174. package/dist/session.d.ts +116 -0
  175. package/dist/session.d.ts.map +1 -0
  176. package/dist/session.js +666 -0
  177. package/dist/session.js.map +1 -0
  178. package/dist/shell.d.ts +10 -0
  179. package/dist/shell.d.ts.map +1 -0
  180. package/dist/shell.js +83 -0
  181. package/dist/shell.js.map +1 -0
  182. package/dist/ssh-config.d.ts +94 -0
  183. package/dist/ssh-config.d.ts.map +1 -0
  184. package/dist/ssh-config.js +234 -0
  185. package/dist/ssh-config.js.map +1 -0
  186. package/dist/streaming.d.ts +36 -0
  187. package/dist/streaming.d.ts.map +1 -0
  188. package/dist/streaming.js +140 -0
  189. package/dist/streaming.js.map +1 -0
  190. package/dist/telemetry.d.ts +17 -0
  191. package/dist/telemetry.d.ts.map +1 -0
  192. package/dist/telemetry.js +101 -0
  193. package/dist/telemetry.js.map +1 -0
  194. package/dist/tools/connector.provider.d.ts +28 -0
  195. package/dist/tools/connector.provider.d.ts.map +1 -0
  196. package/dist/tools/connector.provider.js +360 -0
  197. package/dist/tools/connector.provider.js.map +1 -0
  198. package/dist/tools/ensure.provider.d.ts +18 -0
  199. package/dist/tools/ensure.provider.d.ts.map +1 -0
  200. package/dist/tools/ensure.provider.js +173 -0
  201. package/dist/tools/ensure.provider.js.map +1 -0
  202. package/dist/tools/fs.provider.d.ts +21 -0
  203. package/dist/tools/fs.provider.d.ts.map +1 -0
  204. package/dist/tools/fs.provider.js +259 -0
  205. package/dist/tools/fs.provider.js.map +1 -0
  206. package/dist/tools/index.d.ts +4 -0
  207. package/dist/tools/index.d.ts.map +1 -0
  208. package/dist/tools/index.js +68 -0
  209. package/dist/tools/index.js.map +1 -0
  210. package/dist/tools/metadata.d.ts +11 -0
  211. package/dist/tools/metadata.d.ts.map +1 -0
  212. package/dist/tools/metadata.js +10 -0
  213. package/dist/tools/metadata.js.map +1 -0
  214. package/dist/tools/output-schemas.d.ts +217 -0
  215. package/dist/tools/output-schemas.d.ts.map +1 -0
  216. package/dist/tools/output-schemas.js +300 -0
  217. package/dist/tools/output-schemas.js.map +1 -0
  218. package/dist/tools/process.provider.d.ts +22 -0
  219. package/dist/tools/process.provider.d.ts.map +1 -0
  220. package/dist/tools/process.provider.js +146 -0
  221. package/dist/tools/process.provider.js.map +1 -0
  222. package/dist/tools/registry.d.ts +12 -0
  223. package/dist/tools/registry.d.ts.map +1 -0
  224. package/dist/tools/registry.js +163 -0
  225. package/dist/tools/registry.js.map +1 -0
  226. package/dist/tools/results.d.ts +4 -0
  227. package/dist/tools/results.d.ts.map +1 -0
  228. package/dist/tools/results.js +5 -0
  229. package/dist/tools/results.js.map +1 -0
  230. package/dist/tools/session.provider.d.ts +23 -0
  231. package/dist/tools/session.provider.d.ts.map +1 -0
  232. package/dist/tools/session.provider.js +299 -0
  233. package/dist/tools/session.provider.js.map +1 -0
  234. package/dist/tools/system.provider.d.ts +18 -0
  235. package/dist/tools/system.provider.d.ts.map +1 -0
  236. package/dist/tools/system.provider.js +81 -0
  237. package/dist/tools/system.provider.js.map +1 -0
  238. package/dist/tools/transfer.provider.d.ts +16 -0
  239. package/dist/tools/transfer.provider.d.ts.map +1 -0
  240. package/dist/tools/transfer.provider.js +85 -0
  241. package/dist/tools/transfer.provider.js.map +1 -0
  242. package/dist/tools/tunnel.provider.d.ts +18 -0
  243. package/dist/tools/tunnel.provider.d.ts.map +1 -0
  244. package/dist/tools/tunnel.provider.js +142 -0
  245. package/dist/tools/tunnel.provider.js.map +1 -0
  246. package/dist/tools/types.d.ts +16 -0
  247. package/dist/tools/types.d.ts.map +1 -0
  248. package/dist/tools/types.js +2 -0
  249. package/dist/tools/types.js.map +1 -0
  250. package/dist/transfer.d.ts +40 -0
  251. package/dist/transfer.d.ts.map +1 -0
  252. package/dist/transfer.js +363 -0
  253. package/dist/transfer.js.map +1 -0
  254. package/dist/tunnel.d.ts +37 -0
  255. package/dist/tunnel.d.ts.map +1 -0
  256. package/dist/tunnel.js +234 -0
  257. package/dist/tunnel.js.map +1 -0
  258. package/dist/types.d.ts +341 -0
  259. package/dist/types.d.ts.map +1 -0
  260. package/dist/types.js +184 -0
  261. package/dist/types.js.map +1 -0
  262. package/docs/docker.md +22 -0
  263. package/examples/README.md +77 -0
  264. package/mcp.json +21 -0
  265. package/package.json +147 -0
  266. package/registry/ssh-mcp-pro/mcp.json +21 -0
  267. package/server.json +76 -0
package/package.json ADDED
@@ -0,0 +1,147 @@
1
+ {
2
+ "name": "ssh-mcp-pro",
3
+ "version": "1.0.0",
4
+ "mcpName": "io.github.oaslananka/ssh-mcp-pro",
5
+ "description": "Model Context Protocol (MCP) SSH client server for remote automation",
6
+ "type": "module",
7
+ "packageManager": "pnpm@11.0.9",
8
+ "main": "dist/index.js",
9
+ "exports": "./dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "files": [
12
+ "dist",
13
+ "docs",
14
+ "!docs/api",
15
+ "examples",
16
+ "AGENTS.md",
17
+ "ARCHITECTURE.md",
18
+ "SECURITY_DECISIONS.md",
19
+ "MIGRATION.md",
20
+ "mcp.json",
21
+ "server.json",
22
+ "README.md",
23
+ "LICENSE",
24
+ "LICENSES/MIT.txt",
25
+ "SECURITY.md",
26
+ "REGISTRY_SUBMISSION.md",
27
+ "registry"
28
+ ],
29
+ "bin": {
30
+ "ssh-mcp-pro": "dist/index.js",
31
+ "ssh-mcp-pro-agent": "dist/agent-bin.js"
32
+ },
33
+ "scripts": {
34
+ "build": "tsc -p tsconfig.json",
35
+ "dev": "tsc -p tsconfig.json -w",
36
+ "dev:control-plane": "pnpm run build && node scripts/dev-control-plane.mjs",
37
+ "dev:agent": "pnpm run build && node scripts/dev-agent.mjs",
38
+ "typecheck": "tsc --noEmit -p tsconfig.json",
39
+ "test": "vitest run --project unit --reporter=default --reporter=junit",
40
+ "test:coverage": "vitest run --coverage --project unit --project integration --project e2e",
41
+ "test:integration": "vitest run --project integration",
42
+ "test:integration:windows": "vitest run --project integration test/integration/windows-ssh.integration.test.ts",
43
+ "test:e2e": "vitest run --project e2e",
44
+ "test:perf": "vitest run --project perf",
45
+ "test:perf:baseline": "WRITE_BASELINE=true pnpm run test:perf",
46
+ "lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"vitest.config.ts\"",
47
+ "lint:fix": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"vitest.config.ts\" --fix",
48
+ "lint:staged": "node scripts/run-staged-checks.mjs --lint-only",
49
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"scripts/**/*.{mjs,cjs}\" \".github/workflows/*.{yml,yaml}\" \"vitest.config.ts\"",
50
+ "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\" \"scripts/**/*.{mjs,cjs}\" \".github/workflows/*.{yml,yaml}\" \"vitest.config.ts\"",
51
+ "format:staged": "node scripts/run-staged-checks.mjs",
52
+ "prepare": "node scripts/setup-git-hooks.mjs",
53
+ "prepack": "pnpm run build && pnpm run sync-version -- --check && pnpm run validate:mcp-metadata && pnpm run validate:chatgpt-app && pnpm run validate:claude-connector",
54
+ "prepublishOnly": "pnpm run check",
55
+ "docker:ssh-fixture:up": "node scripts/docker-ssh-fixture.mjs up",
56
+ "docker:ssh-fixture:down": "node scripts/docker-ssh-fixture.mjs down",
57
+ "e2e:docker": "node scripts/docker-ssh-fixture.mjs run e2e",
58
+ "integration:docker": "node scripts/docker-ssh-fixture.mjs run integration",
59
+ "docs": "pnpm exec typedoc --options typedoc.json",
60
+ "docs:check": "pnpm exec typedoc --options typedoc.json --treatWarningsAsErrors",
61
+ "start:http": "node dist/render-http.js",
62
+ "setup:chatgpt": "node scripts/setup-chatgpt.mjs",
63
+ "sync-version": "node scripts/sync-version.mjs",
64
+ "validate:mcp-metadata": "node scripts/validate-mcp-metadata.mjs",
65
+ "validate:mcp-registry": "node scripts/check-mcp-registry-record.mjs",
66
+ "validate:chatgpt-app": "node scripts/validate-chatgpt-app.mjs",
67
+ "validate:claude-connector": "node scripts/validate-claude-connector.mjs",
68
+ "check:doc-language": "node scripts/check-doc-language.mjs",
69
+ "check:rulesets": "node scripts/check-rulesets.mjs",
70
+ "reuse:lint": "reuse lint",
71
+ "lint:commits": "node scripts/lint-commits.mjs",
72
+ "lint:pr-title": "node scripts/lint-pr-title.mjs",
73
+ "test:pr-title-lint": "node scripts/test-pr-title-lint.mjs",
74
+ "verify:actions-runtime": "node scripts/verify-actions-runtime.mjs",
75
+ "review:threads": "node scripts/check-review-threads.mjs",
76
+ "release:state": "node scripts/release-state.mjs",
77
+ "check:npm-name": "node scripts/check-npm-name.mjs ssh-mcp-pro",
78
+ "audit": "pnpm audit --audit-level moderate",
79
+ "licenses:check": "node scripts/check-licenses.mjs",
80
+ "pack:check": "node scripts/check-package-contents.mjs",
81
+ "pack:install-smoke": "node scripts/check-package-install-smoke.mjs",
82
+ "check:quality": "pnpm run format:check && pnpm run check:doc-language && pnpm run check:rulesets && pnpm run verify:actions-runtime && pnpm run lint && pnpm run typecheck && pnpm run audit && pnpm run licenses:check",
83
+ "check:package": "pnpm run build && pnpm run sync-version -- --check && pnpm run validate:mcp-metadata && pnpm run validate:chatgpt-app && pnpm run validate:claude-connector && pnpm run docs:check && pnpm run pack:check && pnpm run pack:install-smoke",
84
+ "check:push": "pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm test",
85
+ "check": "pnpm run check:quality && pnpm run test:coverage && pnpm run check:package",
86
+ "hook:pre-commit": "pnpm run format:staged",
87
+ "hook:pre-push": "pnpm run check:push",
88
+ "release:dry-run": "node scripts/validate-release-please.mjs && node scripts/release-state.mjs --offline --json && pnpm run check:package",
89
+ "sbom": "node scripts/generate-sbom.mjs"
90
+ },
91
+ "keywords": [
92
+ "mcp",
93
+ "ssh",
94
+ "copilot",
95
+ "automation",
96
+ "remote",
97
+ "model-context-protocol",
98
+ "github-copilot",
99
+ "ssh-client",
100
+ "devops",
101
+ "infrastructure"
102
+ ],
103
+ "author": "Osman Aslan <oaslananka>",
104
+ "license": "MIT",
105
+ "repository": {
106
+ "type": "git",
107
+ "url": "git+https://github.com/oaslananka/ssh-mcp-pro.git"
108
+ },
109
+ "homepage": "https://github.com/oaslananka/ssh-mcp-pro#readme",
110
+ "bugs": {
111
+ "url": "https://github.com/oaslananka/ssh-mcp-pro/issues"
112
+ },
113
+ "publishConfig": {
114
+ "access": "public"
115
+ },
116
+ "engines": {
117
+ "node": "^22.22.2 || ^24.15.0",
118
+ "pnpm": "^11.0.9"
119
+ },
120
+ "dependencies": {
121
+ "@modelcontextprotocol/sdk": "^1.29.0",
122
+ "@opentelemetry/api": "^1.9.1",
123
+ "@opentelemetry/exporter-trace-otlp-http": "^0.218.0",
124
+ "@opentelemetry/resources": "^2.7.1",
125
+ "@opentelemetry/sdk-node": "^0.218.0",
126
+ "@opentelemetry/semantic-conventions": "^1.41.1",
127
+ "jose": "6.2.3",
128
+ "node-ssh": "^13.2.1",
129
+ "zod": "^4.4.3"
130
+ },
131
+ "devDependencies": {
132
+ "@types/node": "^24.12.4",
133
+ "@types/ssh2": "^1.15.5",
134
+ "@typescript-eslint/eslint-plugin": "^8.59.4",
135
+ "@typescript-eslint/parser": "^8.59.4",
136
+ "@vitest/coverage-v8": "^4.1.7",
137
+ "ajv": "^8.20.0",
138
+ "autocannon": "^7.15.0",
139
+ "eslint": "^9.39.4",
140
+ "fast-check": "^4.8.0",
141
+ "prettier": "^3.8.3",
142
+ "typedoc": "0.28.19",
143
+ "typescript": "^5.9.3",
144
+ "vite": "^7.3.3",
145
+ "vitest": "^4.1.7"
146
+ }
147
+ }
@@ -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
+ }
package/server.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.oaslananka/ssh-mcp-pro",
4
+ "title": "ssh-mcp-pro",
5
+ "description": "Secure MCP SSH automation server with policy controls, resources, prompts, stdio, and HTTP.",
6
+ "repository": {
7
+ "url": "https://github.com/oaslananka/ssh-mcp-pro",
8
+ "source": "github"
9
+ },
10
+ "version": "1.0.0",
11
+ "packages": [
12
+ {
13
+ "registryType": "npm",
14
+ "registryBaseUrl": "https://registry.npmjs.org",
15
+ "identifier": "ssh-mcp-pro",
16
+ "version": "1.0.0",
17
+ "transport": {
18
+ "type": "stdio"
19
+ }
20
+ },
21
+ {
22
+ "registryType": "npm",
23
+ "registryBaseUrl": "https://registry.npmjs.org",
24
+ "identifier": "ssh-mcp-pro",
25
+ "version": "1.0.0",
26
+ "runtimeHint": "npx",
27
+ "transport": {
28
+ "type": "streamable-http",
29
+ "url": "http://127.0.0.1:{--port}/mcp"
30
+ },
31
+ "packageArguments": [
32
+ {
33
+ "type": "positional",
34
+ "value": "--transport=http"
35
+ },
36
+ {
37
+ "type": "named",
38
+ "name": "--host",
39
+ "value": "127.0.0.1"
40
+ },
41
+ {
42
+ "type": "named",
43
+ "name": "--port",
44
+ "valueHint": "port",
45
+ "default": "3000"
46
+ }
47
+ ],
48
+ "environmentVariables": [
49
+ {
50
+ "name": "SSH_MCP_HTTP_ALLOWED_ORIGINS",
51
+ "description": "Comma-separated allowed browser origins for Streamable HTTP clients. Keep this restricted when not using loopback.",
52
+ "isRequired": false,
53
+ "isSecret": false
54
+ },
55
+ {
56
+ "name": "SSH_MCP_HTTP_BEARER_TOKEN_FILE",
57
+ "description": "Path to a bearer token file. Required for non-loopback HTTP bindings.",
58
+ "isRequired": false,
59
+ "isSecret": true
60
+ },
61
+ {
62
+ "name": "SSH_MCP_HTTP_PUBLIC_URL",
63
+ "description": "Stable HTTPS public /mcp URL. Required for non-loopback HTTP bindings.",
64
+ "isRequired": false,
65
+ "isSecret": false
66
+ },
67
+ {
68
+ "name": "SSH_MCP_HTTP_TRUST_PROXY",
69
+ "description": "Set to true only behind a trusted reverse proxy that controls forwarded headers.",
70
+ "isRequired": false,
71
+ "isSecret": false
72
+ }
73
+ ]
74
+ }
75
+ ]
76
+ }