@loop_ouroboros/mcp-hub-lite 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 (499) hide show
  1. package/CHANGELOG.md +228 -0
  2. package/LICENSE +21 -0
  3. package/README.md +354 -0
  4. package/dist/client/assets/HomeView-f901HeKw.js +1 -0
  5. package/dist/client/assets/ResourceDetailView-BdOaL_-o.css +1 -0
  6. package/dist/client/assets/ResourceDetailView-Bz66ZjfY.js +1 -0
  7. package/dist/client/assets/ResourcesView-CjMklkyv.css +1 -0
  8. package/dist/client/assets/ResourcesView-lI_fItfA.js +1 -0
  9. package/dist/client/assets/ServerDashboard-7_8Og9JJ.css +1 -0
  10. package/dist/client/assets/ServerDashboard-Bgx8WVkx.js +2 -0
  11. package/dist/client/assets/ServerListView-Bws09jNR.css +1 -0
  12. package/dist/client/assets/ServerListView-CP6Ffkfx.js +30 -0
  13. package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +1 -0
  14. package/dist/client/assets/SessionsView-D68qKR4D.js +1 -0
  15. package/dist/client/assets/SettingsView-BPYfO9BE.js +1 -0
  16. package/dist/client/assets/ToolCallDialog-Br8FNebN.js +1 -0
  17. package/dist/client/assets/ToolCallDialog-C7eh7jHE.css +1 -0
  18. package/dist/client/assets/ToolsView-B6hUiR43.js +1 -0
  19. package/dist/client/assets/ToolsView-BLnU8cV6.css +1 -0
  20. package/dist/client/assets/_baseClone-DCmK847M.js +1 -0
  21. package/dist/client/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
  22. package/dist/client/assets/el-form-item-BVMLpmVC.css +1 -0
  23. package/dist/client/assets/el-form-item-DM0q2hmO.js +12 -0
  24. package/dist/client/assets/el-input-BtI9NECe.js +1 -0
  25. package/dist/client/assets/el-input-CmuHb8HS.css +1 -0
  26. package/dist/client/assets/el-loading-CChNmKeI.js +1 -0
  27. package/dist/client/assets/el-loading-bpKhqqQq.css +1 -0
  28. package/dist/client/assets/el-overlay-B2ZKM6Up.css +1 -0
  29. package/dist/client/assets/el-overlay-lZZbPmsX.js +1 -0
  30. package/dist/client/assets/el-select-BXztu2b5.js +1 -0
  31. package/dist/client/assets/el-select-C0U_l4IZ.css +1 -0
  32. package/dist/client/assets/el-tab-pane-CnNoQHsR.css +1 -0
  33. package/dist/client/assets/el-tab-pane-Dy9ruaEX.js +1 -0
  34. package/dist/client/assets/el-table-column-98UyVgBH.js +1 -0
  35. package/dist/client/assets/el-table-column-T_mV9jNw.css +1 -0
  36. package/dist/client/assets/el-tag-B5lLT51E.js +1 -0
  37. package/dist/client/assets/el-tag-DjxZVOpb.css +1 -0
  38. package/dist/client/assets/event-BB_Ol6Sd.js +1 -0
  39. package/dist/client/assets/index-BgKcmWJr.js +1 -0
  40. package/dist/client/assets/index-BsDWtoIl.css +1 -0
  41. package/dist/client/assets/index-BzQXG7no.js +1 -0
  42. package/dist/client/assets/index-CSTs2jYk.js +2 -0
  43. package/dist/client/assets/omit-Bx5HJNV_.js +1 -0
  44. package/dist/client/assets/raf-B9VDMtMF.js +1 -0
  45. package/dist/client/assets/typescript-Bp3YSIOJ.js +1 -0
  46. package/dist/client/assets/vnode-B8aJx8u4.js +1 -0
  47. package/dist/client/assets/vue-vendor-6ny5zj9i.js +3 -0
  48. package/dist/client/index.html +15 -0
  49. package/dist/server/shared/index.d.ts +3 -0
  50. package/dist/server/shared/index.d.ts.map +1 -0
  51. package/dist/server/shared/index.js +2 -0
  52. package/dist/server/shared/models/index.d.ts +4 -0
  53. package/dist/server/shared/models/index.d.ts.map +1 -0
  54. package/dist/server/shared/models/index.js +3 -0
  55. package/dist/server/shared/models/resource.model.d.ts +8 -0
  56. package/dist/server/shared/models/resource.model.d.ts.map +1 -0
  57. package/dist/server/shared/models/resource.model.js +1 -0
  58. package/dist/server/shared/models/server.model.d.ts +57 -0
  59. package/dist/server/shared/models/server.model.d.ts.map +1 -0
  60. package/dist/server/shared/models/server.model.js +1 -0
  61. package/dist/server/shared/models/session.model.d.ts +73 -0
  62. package/dist/server/shared/models/session.model.d.ts.map +1 -0
  63. package/dist/server/shared/models/session.model.js +70 -0
  64. package/dist/server/shared/models/tool.model.d.ts +22 -0
  65. package/dist/server/shared/models/tool.model.d.ts.map +1 -0
  66. package/dist/server/shared/models/tool.model.js +1 -0
  67. package/dist/server/shared/types/client.types.d.ts +35 -0
  68. package/dist/server/shared/types/client.types.d.ts.map +1 -0
  69. package/dist/server/shared/types/client.types.js +5 -0
  70. package/dist/server/shared/types/common.types.d.ts +5 -0
  71. package/dist/server/shared/types/common.types.d.ts.map +1 -0
  72. package/dist/server/shared/types/common.types.js +2 -0
  73. package/dist/server/shared/types/index.d.ts +4 -0
  74. package/dist/server/shared/types/index.d.ts.map +1 -0
  75. package/dist/server/shared/types/index.js +3 -0
  76. package/dist/server/shared/types/session.types.d.ts +15 -0
  77. package/dist/server/shared/types/session.types.d.ts.map +1 -0
  78. package/dist/server/shared/types/session.types.js +5 -0
  79. package/dist/server/shared/types/websocket.types.d.ts +177 -0
  80. package/dist/server/shared/types/websocket.types.d.ts.map +1 -0
  81. package/dist/server/shared/types/websocket.types.js +25 -0
  82. package/dist/server/src/api/mcp/debug-response-wrapper.d.ts +13 -0
  83. package/dist/server/src/api/mcp/debug-response-wrapper.d.ts.map +1 -0
  84. package/dist/server/src/api/mcp/debug-response-wrapper.js +271 -0
  85. package/dist/server/src/api/mcp/gateway.d.ts +14 -0
  86. package/dist/server/src/api/mcp/gateway.d.ts.map +1 -0
  87. package/dist/server/src/api/mcp/gateway.js +116 -0
  88. package/dist/server/src/api/mcp/session-context-extractor.d.ts +47 -0
  89. package/dist/server/src/api/mcp/session-context-extractor.d.ts.map +1 -0
  90. package/dist/server/src/api/mcp/session-context-extractor.js +127 -0
  91. package/dist/server/src/api/mcp/sse-stream-manager.d.ts +13 -0
  92. package/dist/server/src/api/mcp/sse-stream-manager.d.ts.map +1 -0
  93. package/dist/server/src/api/mcp/sse-stream-manager.js +40 -0
  94. package/dist/server/src/api/web/clients.d.ts +30 -0
  95. package/dist/server/src/api/web/clients.d.ts.map +1 -0
  96. package/dist/server/src/api/web/clients.js +41 -0
  97. package/dist/server/src/api/web/config.d.ts +21 -0
  98. package/dist/server/src/api/web/config.d.ts.map +1 -0
  99. package/dist/server/src/api/web/config.js +119 -0
  100. package/dist/server/src/api/web/health.d.ts +21 -0
  101. package/dist/server/src/api/web/health.d.ts.map +1 -0
  102. package/dist/server/src/api/web/health.js +24 -0
  103. package/dist/server/src/api/web/hub-tools.d.ts +30 -0
  104. package/dist/server/src/api/web/hub-tools.d.ts.map +1 -0
  105. package/dist/server/src/api/web/hub-tools.js +202 -0
  106. package/dist/server/src/api/web/logs.d.ts +30 -0
  107. package/dist/server/src/api/web/logs.d.ts.map +1 -0
  108. package/dist/server/src/api/web/logs.js +141 -0
  109. package/dist/server/src/api/web/mcp-status.d.ts +29 -0
  110. package/dist/server/src/api/web/mcp-status.d.ts.map +1 -0
  111. package/dist/server/src/api/web/mcp-status.js +126 -0
  112. package/dist/server/src/api/web/resources.d.ts +28 -0
  113. package/dist/server/src/api/web/resources.d.ts.map +1 -0
  114. package/dist/server/src/api/web/resources.js +93 -0
  115. package/dist/server/src/api/web/search.d.ts +26 -0
  116. package/dist/server/src/api/web/search.d.ts.map +1 -0
  117. package/dist/server/src/api/web/search.js +62 -0
  118. package/dist/server/src/api/web/servers.d.ts +33 -0
  119. package/dist/server/src/api/web/servers.d.ts.map +1 -0
  120. package/dist/server/src/api/web/servers.js +235 -0
  121. package/dist/server/src/api/web/sessions.d.ts +29 -0
  122. package/dist/server/src/api/web/sessions.d.ts.map +1 -0
  123. package/dist/server/src/api/web/sessions.js +104 -0
  124. package/dist/server/src/api/ws/events.d.ts +29 -0
  125. package/dist/server/src/api/ws/events.d.ts.map +1 -0
  126. package/dist/server/src/api/ws/events.js +44 -0
  127. package/dist/server/src/api/ws/ws-handler.d.ts +83 -0
  128. package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -0
  129. package/dist/server/src/api/ws/ws-handler.js +217 -0
  130. package/dist/server/src/app.d.ts +24 -0
  131. package/dist/server/src/app.d.ts.map +1 -0
  132. package/dist/server/src/app.js +108 -0
  133. package/dist/server/src/cli/commands/list.d.ts +71 -0
  134. package/dist/server/src/cli/commands/list.d.ts.map +1 -0
  135. package/dist/server/src/cli/commands/list.js +97 -0
  136. package/dist/server/src/cli/commands/restart.d.ts +42 -0
  137. package/dist/server/src/cli/commands/restart.d.ts.map +1 -0
  138. package/dist/server/src/cli/commands/restart.js +61 -0
  139. package/dist/server/src/cli/commands/start.d.ts +43 -0
  140. package/dist/server/src/cli/commands/start.d.ts.map +1 -0
  141. package/dist/server/src/cli/commands/start.js +160 -0
  142. package/dist/server/src/cli/commands/status.d.ts +39 -0
  143. package/dist/server/src/cli/commands/status.d.ts.map +1 -0
  144. package/dist/server/src/cli/commands/status.js +164 -0
  145. package/dist/server/src/cli/commands/stop.d.ts +34 -0
  146. package/dist/server/src/cli/commands/stop.d.ts.map +1 -0
  147. package/dist/server/src/cli/commands/stop.js +47 -0
  148. package/dist/server/src/cli/commands/ui.d.ts +44 -0
  149. package/dist/server/src/cli/commands/ui.d.ts.map +1 -0
  150. package/dist/server/src/cli/commands/ui.js +95 -0
  151. package/dist/server/src/cli/index.d.ts +62 -0
  152. package/dist/server/src/cli/index.d.ts.map +1 -0
  153. package/dist/server/src/cli/index.js +88 -0
  154. package/dist/server/src/cli/parse-args.d.ts +108 -0
  155. package/dist/server/src/cli/parse-args.d.ts.map +1 -0
  156. package/dist/server/src/cli/parse-args.js +131 -0
  157. package/dist/server/src/cli/server.d.ts +171 -0
  158. package/dist/server/src/cli/server.d.ts.map +1 -0
  159. package/dist/server/src/cli/server.js +246 -0
  160. package/dist/server/src/config/config-change-logger.d.ts +16 -0
  161. package/dist/server/src/config/config-change-logger.d.ts.map +1 -0
  162. package/dist/server/src/config/config-change-logger.js +43 -0
  163. package/dist/server/src/config/config-loader.d.ts +22 -0
  164. package/dist/server/src/config/config-loader.d.ts.map +1 -0
  165. package/dist/server/src/config/config-loader.js +66 -0
  166. package/dist/server/src/config/config-manager.d.ts +158 -0
  167. package/dist/server/src/config/config-manager.d.ts.map +1 -0
  168. package/dist/server/src/config/config-manager.js +246 -0
  169. package/dist/server/src/config/config-saver.d.ts +16 -0
  170. package/dist/server/src/config/config-saver.d.ts.map +1 -0
  171. package/dist/server/src/config/config-saver.js +28 -0
  172. package/dist/server/src/config/config.schema.d.ts +108 -0
  173. package/dist/server/src/config/config.schema.d.ts.map +1 -0
  174. package/dist/server/src/config/config.schema.js +103 -0
  175. package/dist/server/src/config/server-config-manager.d.ts +74 -0
  176. package/dist/server/src/config/server-config-manager.d.ts.map +1 -0
  177. package/dist/server/src/config/server-config-manager.js +157 -0
  178. package/dist/server/src/config/type-converter.d.ts +13 -0
  179. package/dist/server/src/config/type-converter.d.ts.map +1 -0
  180. package/dist/server/src/config/type-converter.js +37 -0
  181. package/dist/server/src/index.d.ts +3 -0
  182. package/dist/server/src/index.d.ts.map +1 -0
  183. package/dist/server/src/index.js +352 -0
  184. package/dist/server/src/models/event.model.d.ts +106 -0
  185. package/dist/server/src/models/event.model.d.ts.map +1 -0
  186. package/dist/server/src/models/event.model.js +5 -0
  187. package/dist/server/src/models/server.model.d.ts +19 -0
  188. package/dist/server/src/models/server.model.d.ts.map +1 -0
  189. package/dist/server/src/models/server.model.js +1 -0
  190. package/dist/server/src/models/system-tools.constants.d.ts +73 -0
  191. package/dist/server/src/models/system-tools.constants.d.ts.map +1 -0
  192. package/dist/server/src/models/system-tools.constants.js +31 -0
  193. package/dist/server/src/models/types.d.ts +84 -0
  194. package/dist/server/src/models/types.d.ts.map +1 -0
  195. package/dist/server/src/models/types.js +67 -0
  196. package/dist/server/src/pid/file.d.ts +26 -0
  197. package/dist/server/src/pid/file.d.ts.map +1 -0
  198. package/dist/server/src/pid/file.js +68 -0
  199. package/dist/server/src/pid/manager.d.ts +98 -0
  200. package/dist/server/src/pid/manager.d.ts.map +1 -0
  201. package/dist/server/src/pid/manager.js +158 -0
  202. package/dist/server/src/pid/types.d.ts +13 -0
  203. package/dist/server/src/pid/types.d.ts.map +1 -0
  204. package/dist/server/src/pid/types.js +4 -0
  205. package/dist/server/src/server/dev-server.d.ts +2 -0
  206. package/dist/server/src/server/dev-server.d.ts.map +1 -0
  207. package/dist/server/src/server/dev-server.js +171 -0
  208. package/dist/server/src/server/runner.d.ts +57 -0
  209. package/dist/server/src/server/runner.d.ts.map +1 -0
  210. package/dist/server/src/server/runner.js +163 -0
  211. package/dist/server/src/services/client-tracker.service.d.ts +132 -0
  212. package/dist/server/src/services/client-tracker.service.d.ts.map +1 -0
  213. package/dist/server/src/services/client-tracker.service.js +203 -0
  214. package/dist/server/src/services/connection/connection-manager.d.ts +478 -0
  215. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -0
  216. package/dist/server/src/services/connection/connection-manager.js +929 -0
  217. package/dist/server/src/services/connection/index.d.ts +6 -0
  218. package/dist/server/src/services/connection/index.d.ts.map +1 -0
  219. package/dist/server/src/services/connection/index.js +4 -0
  220. package/dist/server/src/services/connection/tool-cache.d.ts +122 -0
  221. package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -0
  222. package/dist/server/src/services/connection/tool-cache.js +202 -0
  223. package/dist/server/src/services/connection/types.d.ts +30 -0
  224. package/dist/server/src/services/connection/types.d.ts.map +1 -0
  225. package/dist/server/src/services/connection/types.js +1 -0
  226. package/dist/server/src/services/event-bus.service.d.ts +169 -0
  227. package/dist/server/src/services/event-bus.service.d.ts.map +1 -0
  228. package/dist/server/src/services/event-bus.service.js +200 -0
  229. package/dist/server/src/services/gateway/gateway.service.d.ts +61 -0
  230. package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -0
  231. package/dist/server/src/services/gateway/gateway.service.js +107 -0
  232. package/dist/server/src/services/gateway/index.d.ts +8 -0
  233. package/dist/server/src/services/gateway/index.d.ts.map +1 -0
  234. package/dist/server/src/services/gateway/index.js +6 -0
  235. package/dist/server/src/services/gateway/log-formatter.d.ts +26 -0
  236. package/dist/server/src/services/gateway/log-formatter.d.ts.map +1 -0
  237. package/dist/server/src/services/gateway/log-formatter.js +66 -0
  238. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts +13 -0
  239. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -0
  240. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +131 -0
  241. package/dist/server/src/services/gateway/request-handlers/index.d.ts +9 -0
  242. package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -0
  243. package/dist/server/src/services/gateway/request-handlers/index.js +8 -0
  244. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +11 -0
  245. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -0
  246. package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +85 -0
  247. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts +11 -0
  248. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -0
  249. package/dist/server/src/services/gateway/request-handlers/resources-handler.js +56 -0
  250. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts +11 -0
  251. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -0
  252. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +228 -0
  253. package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts +11 -0
  254. package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts.map +1 -0
  255. package/dist/server/src/services/gateway/request-handlers/tools-handler.js +79 -0
  256. package/dist/server/src/services/gateway/tool-list-generator.d.ts +23 -0
  257. package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -0
  258. package/dist/server/src/services/gateway/tool-list-generator.js +115 -0
  259. package/dist/server/src/services/gateway/types.d.ts +27 -0
  260. package/dist/server/src/services/gateway/types.d.ts.map +1 -0
  261. package/dist/server/src/services/gateway/types.js +4 -0
  262. package/dist/server/src/services/gateway.service.d.ts +7 -0
  263. package/dist/server/src/services/gateway.service.d.ts.map +1 -0
  264. package/dist/server/src/services/gateway.service.js +6 -0
  265. package/dist/server/src/services/hub-manager.service.d.ts +299 -0
  266. package/dist/server/src/services/hub-manager.service.d.ts.map +1 -0
  267. package/dist/server/src/services/hub-manager.service.js +413 -0
  268. package/dist/server/src/services/hub-tools/index.d.ts +10 -0
  269. package/dist/server/src/services/hub-tools/index.d.ts.map +1 -0
  270. package/dist/server/src/services/hub-tools/index.js +6 -0
  271. package/dist/server/src/services/hub-tools/resource-generator.d.ts +63 -0
  272. package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -0
  273. package/dist/server/src/services/hub-tools/resource-generator.js +141 -0
  274. package/dist/server/src/services/hub-tools/server-selector.d.ts +63 -0
  275. package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -0
  276. package/dist/server/src/services/hub-tools/server-selector.js +108 -0
  277. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +47 -0
  278. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -0
  279. package/dist/server/src/services/hub-tools/system-tool-definitions.js +225 -0
  280. package/dist/server/src/services/hub-tools/tool-search.d.ts +85 -0
  281. package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -0
  282. package/dist/server/src/services/hub-tools/tool-search.js +115 -0
  283. package/dist/server/src/services/hub-tools/types.d.ts +42 -0
  284. package/dist/server/src/services/hub-tools/types.d.ts.map +1 -0
  285. package/dist/server/src/services/hub-tools/types.js +1 -0
  286. package/dist/server/src/services/hub-tools.service.d.ts +235 -0
  287. package/dist/server/src/services/hub-tools.service.d.ts.map +1 -0
  288. package/dist/server/src/services/hub-tools.service.js +457 -0
  289. package/dist/server/src/services/log-storage.service.d.ts +177 -0
  290. package/dist/server/src/services/log-storage.service.d.ts.map +1 -0
  291. package/dist/server/src/services/log-storage.service.js +243 -0
  292. package/dist/server/src/services/mcp-connection-manager.d.ts +7 -0
  293. package/dist/server/src/services/mcp-connection-manager.d.ts.map +1 -0
  294. package/dist/server/src/services/mcp-connection-manager.js +6 -0
  295. package/dist/server/src/services/mcp-session-manager.d.ts +6 -0
  296. package/dist/server/src/services/mcp-session-manager.d.ts.map +1 -0
  297. package/dist/server/src/services/mcp-session-manager.js +4 -0
  298. package/dist/server/src/services/search/index.d.ts +5 -0
  299. package/dist/server/src/services/search/index.d.ts.map +1 -0
  300. package/dist/server/src/services/search/index.js +5 -0
  301. package/dist/server/src/services/search/search-cache.d.ts +132 -0
  302. package/dist/server/src/services/search/search-cache.d.ts.map +1 -0
  303. package/dist/server/src/services/search/search-cache.js +151 -0
  304. package/dist/server/src/services/search/search-core.service.d.ts +108 -0
  305. package/dist/server/src/services/search/search-core.service.d.ts.map +1 -0
  306. package/dist/server/src/services/search/search-core.service.js +187 -0
  307. package/dist/server/src/services/search/search-scorer.d.ts +54 -0
  308. package/dist/server/src/services/search/search-scorer.d.ts.map +1 -0
  309. package/dist/server/src/services/search/search-scorer.js +83 -0
  310. package/dist/server/src/services/search/types.d.ts +20 -0
  311. package/dist/server/src/services/search/types.d.ts.map +1 -0
  312. package/dist/server/src/services/search/types.js +1 -0
  313. package/dist/server/src/services/session/index.d.ts +6 -0
  314. package/dist/server/src/services/session/index.d.ts.map +1 -0
  315. package/dist/server/src/services/session/index.js +4 -0
  316. package/dist/server/src/services/session/session-manager.d.ts +352 -0
  317. package/dist/server/src/services/session/session-manager.d.ts.map +1 -0
  318. package/dist/server/src/services/session/session-manager.js +835 -0
  319. package/dist/server/src/services/session/types.d.ts +32 -0
  320. package/dist/server/src/services/session/types.d.ts.map +1 -0
  321. package/dist/server/src/services/session/types.js +1 -0
  322. package/dist/server/src/services/simple-search.service.d.ts +67 -0
  323. package/dist/server/src/services/simple-search.service.d.ts.map +1 -0
  324. package/dist/server/src/services/simple-search.service.js +82 -0
  325. package/dist/server/src/services/system-tool-handler.d.ts +10 -0
  326. package/dist/server/src/services/system-tool-handler.d.ts.map +1 -0
  327. package/dist/server/src/services/system-tool-handler.js +77 -0
  328. package/dist/server/src/utils/error-handler.d.ts +18 -0
  329. package/dist/server/src/utils/error-handler.d.ts.map +1 -0
  330. package/dist/server/src/utils/error-handler.js +59 -0
  331. package/dist/server/src/utils/format-utils.d.ts +23 -0
  332. package/dist/server/src/utils/format-utils.d.ts.map +1 -0
  333. package/dist/server/src/utils/format-utils.js +58 -0
  334. package/dist/server/src/utils/index.d.ts +2 -0
  335. package/dist/server/src/utils/index.d.ts.map +1 -0
  336. package/dist/server/src/utils/index.js +1 -0
  337. package/dist/server/src/utils/json-utils.d.ts +82 -0
  338. package/dist/server/src/utils/json-utils.d.ts.map +1 -0
  339. package/dist/server/src/utils/json-utils.js +204 -0
  340. package/dist/server/src/utils/log-rotator.d.ts +223 -0
  341. package/dist/server/src/utils/log-rotator.d.ts.map +1 -0
  342. package/dist/server/src/utils/log-rotator.js +306 -0
  343. package/dist/server/src/utils/logger/dev-logger.d.ts +39 -0
  344. package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -0
  345. package/dist/server/src/utils/logger/dev-logger.js +63 -0
  346. package/dist/server/src/utils/logger/index.d.ts +36 -0
  347. package/dist/server/src/utils/logger/index.d.ts.map +1 -0
  348. package/dist/server/src/utils/logger/index.js +46 -0
  349. package/dist/server/src/utils/logger/log-colors.d.ts +27 -0
  350. package/dist/server/src/utils/logger/log-colors.d.ts.map +1 -0
  351. package/dist/server/src/utils/logger/log-colors.js +41 -0
  352. package/dist/server/src/utils/logger/log-context.d.ts +13 -0
  353. package/dist/server/src/utils/logger/log-context.d.ts.map +1 -0
  354. package/dist/server/src/utils/logger/log-context.js +5 -0
  355. package/dist/server/src/utils/logger/log-formatter.d.ts +47 -0
  356. package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -0
  357. package/dist/server/src/utils/logger/log-formatter.js +150 -0
  358. package/dist/server/src/utils/logger/log-modules.d.ts +141 -0
  359. package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -0
  360. package/dist/server/src/utils/logger/log-modules.js +81 -0
  361. package/dist/server/src/utils/logger/log-output.d.ts +68 -0
  362. package/dist/server/src/utils/logger/log-output.d.ts.map +1 -0
  363. package/dist/server/src/utils/logger/log-output.js +320 -0
  364. package/dist/server/src/utils/logger/logger.d.ts +190 -0
  365. package/dist/server/src/utils/logger/logger.d.ts.map +1 -0
  366. package/dist/server/src/utils/logger/logger.js +350 -0
  367. package/dist/server/src/utils/logger.d.ts +12 -0
  368. package/dist/server/src/utils/logger.d.ts.map +1 -0
  369. package/dist/server/src/utils/logger.js +12 -0
  370. package/dist/server/src/utils/mcp-error-handler.d.ts +162 -0
  371. package/dist/server/src/utils/mcp-error-handler.d.ts.map +1 -0
  372. package/dist/server/src/utils/mcp-error-handler.js +270 -0
  373. package/dist/server/src/utils/port-checker.d.ts +16 -0
  374. package/dist/server/src/utils/port-checker.d.ts.map +1 -0
  375. package/dist/server/src/utils/port-checker.js +242 -0
  376. package/dist/server/src/utils/request-context.d.ts +71 -0
  377. package/dist/server/src/utils/request-context.d.ts.map +1 -0
  378. package/dist/server/src/utils/request-context.js +73 -0
  379. package/dist/server/src/utils/tool-args-parser.d.ts +17 -0
  380. package/dist/server/src/utils/tool-args-parser.d.ts.map +1 -0
  381. package/dist/server/src/utils/tool-args-parser.js +34 -0
  382. package/dist/server/src/utils/transports/sse-transport.d.ts +104 -0
  383. package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -0
  384. package/dist/server/src/utils/transports/sse-transport.js +189 -0
  385. package/dist/server/src/utils/transports/stdio-transport.d.ts +122 -0
  386. package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -0
  387. package/dist/server/src/utils/transports/stdio-transport.js +324 -0
  388. package/dist/server/src/utils/transports/streamable-http-transport.d.ts +146 -0
  389. package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -0
  390. package/dist/server/src/utils/transports/streamable-http-transport.js +212 -0
  391. package/dist/server/src/utils/transports/transport-factory.d.ts +26 -0
  392. package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -0
  393. package/dist/server/src/utils/transports/transport-factory.js +104 -0
  394. package/dist/server/src/utils/transports/transport.interface.d.ts +35 -0
  395. package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -0
  396. package/dist/server/src/utils/transports/transport.interface.js +1 -0
  397. package/dist/server/tests/contract/mcp-protocol/initialize.test.d.ts +2 -0
  398. package/dist/server/tests/contract/mcp-protocol/initialize.test.d.ts.map +1 -0
  399. package/dist/server/tests/contract/mcp-protocol/initialize.test.js +103 -0
  400. package/dist/server/tests/contract/mcp-protocol/tools-call.test.d.ts +2 -0
  401. package/dist/server/tests/contract/mcp-protocol/tools-call.test.d.ts.map +1 -0
  402. package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +181 -0
  403. package/dist/server/tests/contract/mcp-protocol/tools-list.test.d.ts +2 -0
  404. package/dist/server/tests/contract/mcp-protocol/tools-list.test.d.ts.map +1 -0
  405. package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +155 -0
  406. package/dist/server/tests/evaluation/evaluation.test.d.ts +2 -0
  407. package/dist/server/tests/evaluation/evaluation.test.d.ts.map +1 -0
  408. package/dist/server/tests/evaluation/evaluation.test.js +102 -0
  409. package/dist/server/tests/helpers/sdk-test-helpers.d.ts +32 -0
  410. package/dist/server/tests/helpers/sdk-test-helpers.d.ts.map +1 -0
  411. package/dist/server/tests/helpers/sdk-test-helpers.js +82 -0
  412. package/dist/server/tests/integration/api/gateway.test.d.ts +2 -0
  413. package/dist/server/tests/integration/api/gateway.test.d.ts.map +1 -0
  414. package/dist/server/tests/integration/api/gateway.test.js +366 -0
  415. package/dist/server/tests/integration/gateway/fault-tolerance.test.d.ts +2 -0
  416. package/dist/server/tests/integration/gateway/fault-tolerance.test.d.ts.map +1 -0
  417. package/dist/server/tests/integration/gateway/fault-tolerance.test.js +109 -0
  418. package/dist/server/tests/integration/gateway/mcp-connection.test.d.ts +2 -0
  419. package/dist/server/tests/integration/gateway/mcp-connection.test.d.ts.map +1 -0
  420. package/dist/server/tests/integration/gateway/mcp-connection.test.js +149 -0
  421. package/dist/server/tests/server.test.d.ts +2 -0
  422. package/dist/server/tests/server.test.d.ts.map +1 -0
  423. package/dist/server/tests/server.test.js +95 -0
  424. package/dist/server/tests/setup.d.ts +7 -0
  425. package/dist/server/tests/setup.d.ts.map +1 -0
  426. package/dist/server/tests/setup.js +53 -0
  427. package/dist/server/tests/types/logger-test-helpers.d.ts +17 -0
  428. package/dist/server/tests/types/logger-test-helpers.d.ts.map +1 -0
  429. package/dist/server/tests/types/logger-test-helpers.js +4 -0
  430. package/dist/server/tests/types/test-helpers.d.ts +27 -0
  431. package/dist/server/tests/types/test-helpers.d.ts.map +1 -0
  432. package/dist/server/tests/types/test-helpers.js +4 -0
  433. package/dist/server/tests/unit/cli/basic-cli.test.d.ts +2 -0
  434. package/dist/server/tests/unit/cli/basic-cli.test.d.ts.map +1 -0
  435. package/dist/server/tests/unit/cli/basic-cli.test.js +33 -0
  436. package/dist/server/tests/unit/cli/cli.test.d.ts +2 -0
  437. package/dist/server/tests/unit/cli/cli.test.d.ts.map +1 -0
  438. package/dist/server/tests/unit/cli/cli.test.js +17 -0
  439. package/dist/server/tests/unit/cli/commands.test.d.ts +2 -0
  440. package/dist/server/tests/unit/cli/commands.test.d.ts.map +1 -0
  441. package/dist/server/tests/unit/cli/commands.test.js +75 -0
  442. package/dist/server/tests/unit/cli/server.test.d.ts +2 -0
  443. package/dist/server/tests/unit/cli/server.test.d.ts.map +1 -0
  444. package/dist/server/tests/unit/cli/server.test.js +68 -0
  445. package/dist/server/tests/unit/server/runner.test.d.ts +2 -0
  446. package/dist/server/tests/unit/server/runner.test.d.ts.map +1 -0
  447. package/dist/server/tests/unit/server/runner.test.js +488 -0
  448. package/dist/server/tests/unit/server/setup.d.ts +2 -0
  449. package/dist/server/tests/unit/server/setup.d.ts.map +1 -0
  450. package/dist/server/tests/unit/server/setup.js +21 -0
  451. package/dist/server/tests/unit/services/gateway-logging.test.d.ts +2 -0
  452. package/dist/server/tests/unit/services/gateway-logging.test.d.ts.map +1 -0
  453. package/dist/server/tests/unit/services/gateway-logging.test.js +47 -0
  454. package/dist/server/tests/unit/services/hub-manager-service.test.d.ts +2 -0
  455. package/dist/server/tests/unit/services/hub-manager-service.test.d.ts.map +1 -0
  456. package/dist/server/tests/unit/services/hub-manager-service.test.js +140 -0
  457. package/dist/server/tests/unit/services/hub-manager.test.d.ts +2 -0
  458. package/dist/server/tests/unit/services/hub-manager.test.d.ts.map +1 -0
  459. package/dist/server/tests/unit/services/hub-manager.test.js +98 -0
  460. package/dist/server/tests/unit/services/hub-tools.service.test.d.ts +2 -0
  461. package/dist/server/tests/unit/services/hub-tools.service.test.d.ts.map +1 -0
  462. package/dist/server/tests/unit/services/hub-tools.service.test.js +674 -0
  463. package/dist/server/tests/unit/services/search/search-cache.test.d.ts +2 -0
  464. package/dist/server/tests/unit/services/search/search-cache.test.d.ts.map +1 -0
  465. package/dist/server/tests/unit/services/search/search-cache.test.js +58 -0
  466. package/dist/server/tests/unit/services/search/search-core.service.test.d.ts +2 -0
  467. package/dist/server/tests/unit/services/search/search-core.service.test.d.ts.map +1 -0
  468. package/dist/server/tests/unit/services/search/search-core.service.test.js +84 -0
  469. package/dist/server/tests/unit/services/search/search-scorer.test.d.ts +2 -0
  470. package/dist/server/tests/unit/services/search/search-scorer.test.d.ts.map +1 -0
  471. package/dist/server/tests/unit/services/search/search-scorer.test.js +97 -0
  472. package/dist/server/tests/unit/services/session-manager.test.d.ts +2 -0
  473. package/dist/server/tests/unit/services/session-manager.test.d.ts.map +1 -0
  474. package/dist/server/tests/unit/services/session-manager.test.js +481 -0
  475. package/dist/server/tests/unit/utils/config.test.d.ts +2 -0
  476. package/dist/server/tests/unit/utils/config.test.d.ts.map +1 -0
  477. package/dist/server/tests/unit/utils/config.test.js +634 -0
  478. package/dist/server/tests/unit/utils/json-utils.test.d.ts +2 -0
  479. package/dist/server/tests/unit/utils/json-utils.test.d.ts.map +1 -0
  480. package/dist/server/tests/unit/utils/json-utils.test.js +296 -0
  481. package/dist/server/tests/unit/utils/log-rotator.test.d.ts +2 -0
  482. package/dist/server/tests/unit/utils/log-rotator.test.d.ts.map +1 -0
  483. package/dist/server/tests/unit/utils/log-rotator.test.js +296 -0
  484. package/dist/server/tests/unit/utils/logger.test.d.ts +2 -0
  485. package/dist/server/tests/unit/utils/logger.test.d.ts.map +1 -0
  486. package/dist/server/tests/unit/utils/logger.test.js +462 -0
  487. package/dist/server/tests/unit/utils/mcp-error-handler.test.d.ts +2 -0
  488. package/dist/server/tests/unit/utils/mcp-error-handler.test.d.ts.map +1 -0
  489. package/dist/server/tests/unit/utils/mcp-error-handler.test.js +163 -0
  490. package/dist/server/tests/unit/utils/request-context.test.d.ts +2 -0
  491. package/dist/server/tests/unit/utils/request-context.test.d.ts.map +1 -0
  492. package/dist/server/tests/unit/utils/request-context.test.js +82 -0
  493. package/dist/server/vite.config.d.ts +3 -0
  494. package/dist/server/vite.config.d.ts.map +1 -0
  495. package/dist/server/vite.config.js +160 -0
  496. package/dist/server/vitest.config.d.ts +3 -0
  497. package/dist/server/vitest.config.d.ts.map +1 -0
  498. package/dist/server/vitest.config.js +53 -0
  499. package/package.json +113 -0
@@ -0,0 +1,164 @@
1
+ import { Command } from 'commander';
2
+ import { getServerStatus } from '../server.js';
3
+ import os from 'os';
4
+ /**
5
+ * CLI command for retrieving the current status of the MCP Hub Lite server.
6
+ *
7
+ * This command provides comprehensive information about the running MCP Hub Lite instance,
8
+ * including process details, configuration status, and managed MCP servers. It is designed
9
+ * to help users monitor their MCP gateway service and troubleshoot any operational issues.
10
+ *
11
+ * The status command performs the following functions:
12
+ * - Checks if the MCP Hub Lite process is currently running
13
+ * - Retrieves the process ID (PID) from the PID file
14
+ * - Displays the configured host and port settings
15
+ * - Shows the current MCP integration endpoint configuration
16
+ * - Lists all managed MCP servers and their connection status
17
+ * - Provides detailed operational status information
18
+ *
19
+ * Usage scenarios:
20
+ * - Verifying that the MCP Hub Lite service is running correctly
21
+ * - Debugging connection issues with managed MCP servers
22
+ * - Monitoring system health and resource usage
23
+ * - Validating configuration after changes or updates
24
+ * - Checking the status before performing maintenance operations
25
+ *
26
+ * The command supports an optional --pid parameter to check a specific process ID,
27
+ * which is useful when multiple instances might be running or when the PID file
28
+ * is unavailable or corrupted.
29
+ *
30
+ * @example
31
+ * // Basic usage - check default instance
32
+ * mcp-hub-lite status
33
+ *
34
+ * @example
35
+ * // Check specific process ID
36
+ * mcp-hub-lite status --pid 12345
37
+ *
38
+ * @returns {Command} The configured status command instance for registration with Commander.js
39
+ */
40
+ export const statusCommand = new Command('status')
41
+ .description('Get the status of MCP Hub Lite server')
42
+ .option('--pid <pid>', 'PID of the server to check')
43
+ .action(async (options) => {
44
+ try {
45
+ const status = await getServerStatus(options.pid);
46
+ printFormattedStatus(status);
47
+ process.exit(0);
48
+ }
49
+ catch (error) {
50
+ console.error('Failed to get server status:', error);
51
+ process.exit(1);
52
+ }
53
+ });
54
+ /**
55
+ * Prints formatted status output with emojis and sections.
56
+ *
57
+ * @param status - The enhanced server status object to display
58
+ */
59
+ function printFormattedStatus(status) {
60
+ // ANSI color codes
61
+ const reset = '\x1b[0m';
62
+ const green = '\x1b[32m';
63
+ const red = '\x1b[31m';
64
+ const yellow = '\x1b[33m';
65
+ const cyan = '\x1b[36m';
66
+ const dim = '\x1b[2m';
67
+ const webUiUrl = `http://${status.host}:${status.port}`;
68
+ const mcpEndpoint = `${webUiUrl}/mcp`;
69
+ // Main header
70
+ console.log('');
71
+ console.log(`${cyan}📊 MCP Hub Lite - System Status${reset}`);
72
+ console.log(`${dim}════════════════════════════════════${reset}`);
73
+ // Status section
74
+ const statusIcon = status.running ? `${green}✅${reset}` : `${red}❌${reset}`;
75
+ const statusText = status.running ? 'Running' : 'Stopped';
76
+ console.log(`${statusIcon} Status: ${status.running ? green : red}${statusText}${reset}`);
77
+ if (status.pid) {
78
+ console.log(`🆔 Process ID: ${cyan}${status.pid}${reset}`);
79
+ }
80
+ console.log(`🌐 Host: ${cyan}${status.host}${reset}`);
81
+ console.log(`🔌 Port: ${cyan}${status.port}${reset}`);
82
+ console.log(`📡 Web UI: ${cyan}${webUiUrl}${reset}`);
83
+ console.log(`🔗 MCP Endpoint: ${cyan}${mcpEndpoint}${reset}`);
84
+ console.log(`📄 PID File: ${dim}${formatPath(status.pidFilePath)}${reset}`);
85
+ // MCP Servers section
86
+ if (status.mcpServers && status.mcpServers.length > 0) {
87
+ console.log('');
88
+ console.log(`${yellow}MCP Servers:${reset}`);
89
+ console.log(`${dim}═════════════${reset}`);
90
+ // Calculate column widths
91
+ let maxNameLen = 'Server Name'.length;
92
+ let maxTypeLen = 'Type'.length;
93
+ const maxStatusLen = 'Disconnected'.length;
94
+ for (const server of status.mcpServers) {
95
+ maxNameLen = Math.max(maxNameLen, (server.name || '').length);
96
+ maxTypeLen = Math.max(maxTypeLen, (server.type || '').length);
97
+ }
98
+ // Simple table without complex borders
99
+ const headerName = 'Server Name'.padEnd(maxNameLen);
100
+ const headerType = 'Type'.padEnd(maxTypeLen);
101
+ const headerStatus = 'Status'.padEnd(maxStatusLen);
102
+ console.log(`${cyan}${headerName} ${headerType} ${headerStatus} Tools Resources${reset}`);
103
+ console.log(`${dim}${'─'.repeat(maxNameLen + maxTypeLen + maxStatusLen + 20)}${reset}`);
104
+ for (const server of status.mcpServers) {
105
+ const name = (server.name || '').padEnd(maxNameLen);
106
+ const type = (server.type || '').padEnd(maxTypeLen);
107
+ const statusText = server.connected
108
+ ? `${green}Connected${reset}`.padEnd(maxStatusLen + 9)
109
+ : `${red}Disconnected${reset}`.padEnd(maxStatusLen + 9);
110
+ const tools = server.toolsCount.toString().padStart(5);
111
+ const resources = server.resourcesCount.toString().padStart(9);
112
+ console.log(`${name} ${type} ${statusText} ${tools} ${resources}`);
113
+ if (server.error) {
114
+ console.log(` ${red}Error: ${server.error}${reset}`);
115
+ }
116
+ }
117
+ }
118
+ // MCP Client Configuration
119
+ console.log('');
120
+ console.log(`${yellow}🔌 MCP Client Configuration:${reset}`);
121
+ console.log(`${dim}═══════════════════════════════${reset}`);
122
+ console.log('Add this to your MCP client config:');
123
+ console.log('');
124
+ console.log(`${dim}{${reset}`);
125
+ console.log(`${dim} "mcpServers": {${reset}`);
126
+ console.log(`${dim} "mcp-hub-lite": {${reset}`);
127
+ console.log(`${dim} "url": "${cyan}${mcpEndpoint}${dim}"${reset}`);
128
+ console.log(`${dim} }${reset}`);
129
+ console.log(`${dim} }${reset}`);
130
+ console.log(`${dim}}${reset}`);
131
+ // Quick Commands
132
+ console.log('');
133
+ console.log(`${yellow}💡 Quick Commands:${reset}`);
134
+ console.log(` ${cyan}mcp-hub-lite ui${reset} ${dim}# Open web interface${reset}`);
135
+ console.log(` ${cyan}mcp-hub-lite list${reset} ${dim}# List all MCP servers${reset}`);
136
+ if (status.running) {
137
+ console.log(` ${cyan}mcp-hub-lite stop${reset} ${dim}# Stop the server${reset}`);
138
+ }
139
+ else {
140
+ console.log(` ${cyan}mcp-hub-lite start${reset} ${dim}# Start the server${reset}`);
141
+ }
142
+ console.log('');
143
+ // Final message
144
+ if (status.running) {
145
+ console.log(`${green}🚀 Ready to use!${reset}`);
146
+ }
147
+ else {
148
+ console.log(`${yellow}⏸️ Server not running. Use "mcp-hub-lite start" to start it.${reset}`);
149
+ }
150
+ console.log('');
151
+ }
152
+ /**
153
+ * Formats a file path for display, replacing home directory with ~.
154
+ *
155
+ * @param filePath - The full file path to format
156
+ * @returns Formatted path with ~ for home directory
157
+ */
158
+ function formatPath(filePath) {
159
+ const homeDir = os.homedir();
160
+ if (filePath.startsWith(homeDir)) {
161
+ return '~' + filePath.slice(homeDir.length);
162
+ }
163
+ return filePath;
164
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Stop command implementation for MCP Hub Lite CLI.
3
+ *
4
+ * This command handles the graceful shutdown of the MCP Hub Lite server.
5
+ * It can stop either the currently running server instance or a specific
6
+ * server process identified by PID.
7
+ *
8
+ * @module cli/commands/stop
9
+ */
10
+ import { Command } from 'commander';
11
+ /**
12
+ * Creates and configures the stop command for the CLI.
13
+ *
14
+ * The stop command gracefully terminates the MCP Hub Lite server process,
15
+ * ensuring proper cleanup of resources, active connections, and persistent
16
+ * session data. It reads the PID from the PID file or accepts a specific
17
+ * PID as an option.
18
+ *
19
+ * Available options:
20
+ * - `--pid`: Specify a specific PID to stop (optional)
21
+ *
22
+ * @returns {Command} Configured Commander.js command instance
23
+ *
24
+ * @example
25
+ * ```bash
26
+ * # Stop the currently running server
27
+ * mcp-hub-lite stop
28
+ *
29
+ * # Stop a specific server process by PID
30
+ * mcp-hub-lite stop --pid 12345
31
+ * ```
32
+ */
33
+ export declare const stopCommand: Command;
34
+ //# sourceMappingURL=stop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/stop.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,SAYpB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Stop command implementation for MCP Hub Lite CLI.
3
+ *
4
+ * This command handles the graceful shutdown of the MCP Hub Lite server.
5
+ * It can stop either the currently running server instance or a specific
6
+ * server process identified by PID.
7
+ *
8
+ * @module cli/commands/stop
9
+ */
10
+ import { Command } from 'commander';
11
+ import { stopServer } from '../server.js';
12
+ /**
13
+ * Creates and configures the stop command for the CLI.
14
+ *
15
+ * The stop command gracefully terminates the MCP Hub Lite server process,
16
+ * ensuring proper cleanup of resources, active connections, and persistent
17
+ * session data. It reads the PID from the PID file or accepts a specific
18
+ * PID as an option.
19
+ *
20
+ * Available options:
21
+ * - `--pid`: Specify a specific PID to stop (optional)
22
+ *
23
+ * @returns {Command} Configured Commander.js command instance
24
+ *
25
+ * @example
26
+ * ```bash
27
+ * # Stop the currently running server
28
+ * mcp-hub-lite stop
29
+ *
30
+ * # Stop a specific server process by PID
31
+ * mcp-hub-lite stop --pid 12345
32
+ * ```
33
+ */
34
+ export const stopCommand = new Command('stop')
35
+ .description('Stop the MCP Hub Lite server')
36
+ .option('--pid <pid>', 'PID of the server to stop')
37
+ .action(async (options) => {
38
+ try {
39
+ await stopServer(options.pid);
40
+ console.log('MCP Hub Lite server stopped successfully');
41
+ process.exit(0);
42
+ }
43
+ catch (error) {
44
+ console.error('Failed to stop server:', error);
45
+ process.exit(1);
46
+ }
47
+ });
@@ -0,0 +1,44 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * CLI command to open the MCP Hub Lite web user interface in the default system browser.
4
+ *
5
+ * This command provides a convenient way for users to access the web-based management
6
+ * interface without manually typing the URL. It automatically constructs the URL using
7
+ * the specified host and port options, then opens it in the user's default browser.
8
+ *
9
+ * The command is designed to work with both local development instances and production
10
+ * deployments, allowing users to easily access the UI regardless of the server configuration.
11
+ *
12
+ * Priority order for host and port resolution:
13
+ * 1. Command line options (--host, --port)
14
+ * 2. Environment variables (HOST, PORT)
15
+ * 3. Configuration file settings
16
+ * 4. Default values (localhost:7788)
17
+ *
18
+ * @example
19
+ * ```bash
20
+ * # Open UI with configured settings from .mcp-hub.json
21
+ * mcp-hub-lite ui
22
+ *
23
+ * # Open UI on a specific port
24
+ * mcp-hub-lite ui --port 7788
25
+ *
26
+ * # Open UI on a specific host and port
27
+ * mcp-hub-lite ui --host 192.168.1.100 --port 8080
28
+ *
29
+ * # Using short option flags
30
+ * mcp-hub-lite ui -p 7788 -h my-server.local
31
+ *
32
+ * # Using environment variables
33
+ * PORT=9999 mcp-hub-lite ui
34
+ * ```
35
+ *
36
+ * @command ui
37
+ * @description Opens the MCP Hub Lite web UI in the default system browser
38
+ * @option {string} -p, --port <port> - Port where the MCP Hub Lite server is running
39
+ * @option {string} -h, --host <host> - Host where the MCP Hub Lite server is running
40
+ * @throws {Error} If the browser fails to open or the system encounters an error during execution
41
+ * @returns {Promise<void>} Resolves when the browser has been successfully opened
42
+ */
43
+ export declare const uiCommand: Command;
44
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,SAAS,SAmDlB,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { Command } from 'commander';
2
+ import { exec } from 'child_process';
3
+ import { getConfigManager } from '../../config/config-manager.js';
4
+ /**
5
+ * CLI command to open the MCP Hub Lite web user interface in the default system browser.
6
+ *
7
+ * This command provides a convenient way for users to access the web-based management
8
+ * interface without manually typing the URL. It automatically constructs the URL using
9
+ * the specified host and port options, then opens it in the user's default browser.
10
+ *
11
+ * The command is designed to work with both local development instances and production
12
+ * deployments, allowing users to easily access the UI regardless of the server configuration.
13
+ *
14
+ * Priority order for host and port resolution:
15
+ * 1. Command line options (--host, --port)
16
+ * 2. Environment variables (HOST, PORT)
17
+ * 3. Configuration file settings
18
+ * 4. Default values (localhost:7788)
19
+ *
20
+ * @example
21
+ * ```bash
22
+ * # Open UI with configured settings from .mcp-hub.json
23
+ * mcp-hub-lite ui
24
+ *
25
+ * # Open UI on a specific port
26
+ * mcp-hub-lite ui --port 7788
27
+ *
28
+ * # Open UI on a specific host and port
29
+ * mcp-hub-lite ui --host 192.168.1.100 --port 8080
30
+ *
31
+ * # Using short option flags
32
+ * mcp-hub-lite ui -p 7788 -h my-server.local
33
+ *
34
+ * # Using environment variables
35
+ * PORT=9999 mcp-hub-lite ui
36
+ * ```
37
+ *
38
+ * @command ui
39
+ * @description Opens the MCP Hub Lite web UI in the default system browser
40
+ * @option {string} -p, --port <port> - Port where the MCP Hub Lite server is running
41
+ * @option {string} -h, --host <host> - Host where the MCP Hub Lite server is running
42
+ * @throws {Error} If the browser fails to open or the system encounters an error during execution
43
+ * @returns {Promise<void>} Resolves when the browser has been successfully opened
44
+ */
45
+ export const uiCommand = new Command('ui')
46
+ .description('Open the MCP Hub Lite web UI in browser')
47
+ .option('-p, --port <port>', 'Port where server is running')
48
+ .option('-h, --host <host>', 'Host where server is running')
49
+ .action(async (options) => {
50
+ try {
51
+ const configManager = getConfigManager();
52
+ const config = configManager.getConfig();
53
+ // Priority: command line options > environment variables > config file > defaults
54
+ const host = options.host || process.env.HOST || config.system.host || 'localhost';
55
+ const port = options.port || process.env.PORT || String(config.system.port) || '7788';
56
+ const url = `http://${host}:${port}`;
57
+ console.log(`Opening MCP Hub Lite UI at ${url}`);
58
+ // Open URL in browser based on platform
59
+ const platform = process.platform;
60
+ let openCommand = '';
61
+ if (platform === 'win32') {
62
+ // Windows
63
+ openCommand = `start ${url}`;
64
+ }
65
+ else if (platform === 'darwin') {
66
+ // macOS
67
+ openCommand = `open ${url}`;
68
+ }
69
+ else if (platform === 'linux') {
70
+ // Linux
71
+ openCommand = `xdg-open ${url}`;
72
+ }
73
+ else {
74
+ console.error('Unsupported platform for opening browser');
75
+ process.exit(1);
76
+ }
77
+ exec(openCommand, (error) => {
78
+ if (error) {
79
+ console.error('Failed to open browser:', error.message);
80
+ process.exit(1);
81
+ }
82
+ else {
83
+ process.exit(0);
84
+ }
85
+ });
86
+ // Set a timeout to exit in case exec callback doesn't fire
87
+ setTimeout(() => {
88
+ process.exit(0);
89
+ }, 2000);
90
+ }
91
+ catch (error) {
92
+ console.error('Failed to open UI:', error);
93
+ process.exit(1);
94
+ }
95
+ });
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * MCP Hub Lite CLI Entry Point
4
+ * Implements 6 core commands: start, stop, status, ui, list, restart
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Creates and configures the CLI application using Commander.js
9
+ *
10
+ * This function initializes the main CLI program with its name, description, and version,
11
+ * then registers all available commands to provide a complete command-line interface
12
+ * for managing the MCP Hub Lite service.
13
+ *
14
+ * The CLI provides six core commands:
15
+ * - start: Launches the MCP Hub Lite service in daemon or foreground mode
16
+ * - stop: Gracefully terminates the running service instance
17
+ * - status: Displays current service status including PID, port, host, and server count
18
+ * - ui: Opens the web-based user interface in the default browser
19
+ * - list: Shows all configured MCP servers in a tabular format
20
+ * - restart: Stops and restarts the service with the same configuration
21
+ *
22
+ * Usage examples:
23
+ * ```bash
24
+ * # Start service in daemon mode
25
+ * mcp-hub-lite start
26
+ *
27
+ * # Start service in foreground mode on custom port
28
+ * mcp-hub-lite start --port 8080 --foreground
29
+ *
30
+ * # Stop the running service
31
+ * mcp-hub-lite stop
32
+ *
33
+ * # Check service status
34
+ * mcp-hub-lite status
35
+ *
36
+ * # Open web UI
37
+ * mcp-hub-lite ui
38
+ *
39
+ * # List all configured servers
40
+ * mcp-hub-lite list
41
+ *
42
+ * # Restart the service
43
+ * mcp-hub-lite restart
44
+ * ```
45
+ *
46
+ * @returns {Command} The configured CLI program instance ready for parsing
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const cli = createCli();
51
+ * cli.parse(); // Parse command line arguments and execute
52
+ * ```
53
+ *
54
+ * @see {@link startCommand} - Implementation of the start command
55
+ * @see {@link stopCommand} - Implementation of the stop command
56
+ * @see {@link statusCommand} - Implementation of the status command
57
+ * @see {@link uiCommand} - Implementation of the ui command
58
+ * @see {@link listCommand} - Implementation of the list command
59
+ * @see {@link restartCommand} - Implementation of the restart command
60
+ */
61
+ export declare function createCli(): Command;
62
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAiBnC"}
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * MCP Hub Lite CLI Entry Point
4
+ * Implements 6 core commands: start, stop, status, ui, list, restart
5
+ */
6
+ import { Command } from 'commander';
7
+ import { argv } from 'node:process';
8
+ import { pathToFileURL } from 'node:url';
9
+ import { startCommand } from './commands/start.js';
10
+ import { stopCommand } from './commands/stop.js';
11
+ import { statusCommand } from './commands/status.js';
12
+ import { uiCommand } from './commands/ui.js';
13
+ import { listCommand } from './commands/list.js';
14
+ import { restartCommand } from './commands/restart.js';
15
+ /**
16
+ * Creates and configures the CLI application using Commander.js
17
+ *
18
+ * This function initializes the main CLI program with its name, description, and version,
19
+ * then registers all available commands to provide a complete command-line interface
20
+ * for managing the MCP Hub Lite service.
21
+ *
22
+ * The CLI provides six core commands:
23
+ * - start: Launches the MCP Hub Lite service in daemon or foreground mode
24
+ * - stop: Gracefully terminates the running service instance
25
+ * - status: Displays current service status including PID, port, host, and server count
26
+ * - ui: Opens the web-based user interface in the default browser
27
+ * - list: Shows all configured MCP servers in a tabular format
28
+ * - restart: Stops and restarts the service with the same configuration
29
+ *
30
+ * Usage examples:
31
+ * ```bash
32
+ * # Start service in daemon mode
33
+ * mcp-hub-lite start
34
+ *
35
+ * # Start service in foreground mode on custom port
36
+ * mcp-hub-lite start --port 8080 --foreground
37
+ *
38
+ * # Stop the running service
39
+ * mcp-hub-lite stop
40
+ *
41
+ * # Check service status
42
+ * mcp-hub-lite status
43
+ *
44
+ * # Open web UI
45
+ * mcp-hub-lite ui
46
+ *
47
+ * # List all configured servers
48
+ * mcp-hub-lite list
49
+ *
50
+ * # Restart the service
51
+ * mcp-hub-lite restart
52
+ * ```
53
+ *
54
+ * @returns {Command} The configured CLI program instance ready for parsing
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const cli = createCli();
59
+ * cli.parse(); // Parse command line arguments and execute
60
+ * ```
61
+ *
62
+ * @see {@link startCommand} - Implementation of the start command
63
+ * @see {@link stopCommand} - Implementation of the stop command
64
+ * @see {@link statusCommand} - Implementation of the status command
65
+ * @see {@link uiCommand} - Implementation of the ui command
66
+ * @see {@link listCommand} - Implementation of the list command
67
+ * @see {@link restartCommand} - Implementation of the restart command
68
+ */
69
+ export function createCli() {
70
+ const program = new Command();
71
+ program
72
+ .name('mcp-hub-lite')
73
+ .description('Lightweight MCP Gateway for managing MCP servers')
74
+ .version('1.0.0');
75
+ // Register all core commands
76
+ program.addCommand(startCommand);
77
+ program.addCommand(stopCommand);
78
+ program.addCommand(statusCommand);
79
+ program.addCommand(uiCommand);
80
+ program.addCommand(listCommand);
81
+ program.addCommand(restartCommand);
82
+ return program;
83
+ }
84
+ // Execute the CLI if this file is run directly
85
+ if (argv[1] && pathToFileURL(argv[1]).href === import.meta.url) {
86
+ const cli = createCli();
87
+ cli.parse();
88
+ }
@@ -0,0 +1,108 @@
1
+ /**
2
+ * CLI argument parsing utility
3
+ * Provides parameter validation and parsing functions
4
+ */
5
+ import type { LogLevel } from '../../shared/types/common.types.js';
6
+ export interface CliOptions {
7
+ port?: number;
8
+ host?: string;
9
+ config?: string;
10
+ foreground?: boolean;
11
+ stdio?: boolean;
12
+ }
13
+ /**
14
+ * Parses and validates a port number from a string input.
15
+ *
16
+ * This function converts a string representation of a port number to an integer
17
+ * and validates that it falls within the valid TCP/UDP port range (1-65535).
18
+ * It is primarily used for CLI argument parsing when users specify custom ports
19
+ * via command line options like `--port` or `-p`.
20
+ *
21
+ * @param value - The string representation of the port number to parse
22
+ * @returns The validated port number as an integer
23
+ * @throws {Error} If the input is not a valid number or outside the valid port range (1-65535)
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const port = parsePort("8080"); // Returns 8080
28
+ * const invalidPort = parsePort("99999"); // Throws Error: Invalid port: 99999. Must be between 1 and 65535.
29
+ * ```
30
+ */
31
+ export declare function parsePort(value: string): number;
32
+ /**
33
+ * Parses and validates a hostname or IP address from a string input.
34
+ *
35
+ * This function performs basic validation on hostname/IP address inputs by ensuring
36
+ * the value is not empty or whitespace-only. It trims any leading/trailing whitespace
37
+ * from the input and returns the cleaned hostname. This function is used when parsing
38
+ * CLI arguments for host configuration via options like `--host` or `-h`.
39
+ *
40
+ * Note: This function performs only basic validation (non-empty check). More complex
41
+ * hostname format validation (e.g., DNS compliance, IP address format) should be
42
+ * handled at the network layer or by the underlying server implementation.
43
+ *
44
+ * @param value - The hostname or IP address string to parse and validate
45
+ * @returns The trimmed hostname/IP address string
46
+ * @throws {Error} If the input is null, undefined, or contains only whitespace
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const host = parseHost("localhost"); // Returns "localhost"
51
+ * const hostWithSpaces = parseHost(" 127.0.0.1 "); // Returns "127.0.0.1"
52
+ * const emptyHost = parseHost(""); // Throws Error: Host cannot be empty
53
+ * ```
54
+ */
55
+ export declare function parseHost(value: string): string;
56
+ /**
57
+ * Validates a configuration file path to ensure it points to a valid JSON file.
58
+ *
59
+ * This function checks that the provided file path ends with the `.json` extension,
60
+ * ensuring that only JSON configuration files are accepted. It is used during CLI
61
+ * argument parsing when users specify custom configuration files via the `--config`
62
+ * option. The function does not verify file existence or accessibility, as those
63
+ * checks should be performed by the file system operations that actually read the file.
64
+ *
65
+ * @param path - The file path to validate as a configuration file path
66
+ * @returns The original path string if validation passes
67
+ * @throws {Error} If the path does not end with the '.json' extension
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const validPath = validateConfigPath("./config.json"); // Returns "./config.json"
72
+ * const invalidPath = validateConfigPath("./config.txt"); // Throws Error: Config file must be a .json file
73
+ * ```
74
+ */
75
+ export declare function validateConfigPath(path: string): string;
76
+ /**
77
+ * Validate log level
78
+ */
79
+ export declare function validateLogLevel(level: string): LogLevel;
80
+ /**
81
+ * Merges CLI options with default values to create a complete configuration object.
82
+ *
83
+ * This function takes partial CLI options (which may contain only some of the available
84
+ * options) and merges them with a complete set of default values. It uses nullish coalescing
85
+ * (??) to ensure that only undefined or null values are replaced with defaults, preserving
86
+ * explicitly set falsy values like `false` for boolean options.
87
+ *
88
+ * The function handles all standard CLI options including:
89
+ * - port: TCP port number for the server
90
+ * - host: Hostname or IP address to bind to
91
+ * - config: Path to configuration file
92
+ * - foreground: Whether to run in foreground mode
93
+ * - stdio: Whether to use stdio transport mode
94
+ *
95
+ * @param options - Partial CLI options object containing user-specified values
96
+ * @param defaults - Complete CLI options object containing default values
97
+ * @returns {CliOptions} A complete CLI options object with merged values
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * const userOptions = { port: 8080 };
102
+ * const defaultOptions = { port: 7788, host: 'localhost', config: '.mcp-hub.json', foreground: false, stdio: false };
103
+ * const merged = mergeOptions(userOptions, defaultOptions);
104
+ * // Result: { port: 8080, host: 'localhost', config: '.mcp-hub.json', foreground: false, stdio: false }
105
+ * ```
106
+ */
107
+ export declare function mergeOptions(options: Partial<CliOptions>, defaults: CliOptions): CliOptions;
108
+ //# sourceMappingURL=parse-args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../../../../src/cli/parse-args.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAOxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,CAQ3F"}