@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,29 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ /**
3
+ * MCP Connection Status API Routes
4
+ *
5
+ * Provides real-time monitoring and management endpoints for MCP (Model Context Protocol) server connections.
6
+ * This module enables administrators to check the health of connected servers, manage connection states,
7
+ * and retrieve server capabilities including available tools and resources.
8
+ *
9
+ * The status API provides comprehensive information about each connected MCP server including:
10
+ * - Connection status (connected/disconnected)
11
+ * - Server performance metrics
12
+ * - Available tools and resources count
13
+ * - Process information (PID, start time)
14
+ * - Error conditions and recovery status
15
+ *
16
+ * Additionally, it provides active connection management capabilities to connect/disconnect
17
+ * servers programmatically, making it suitable for automated infrastructure management.
18
+ *
19
+ * @param fastify - The Fastify instance to register routes on
20
+ * @returns Promise that resolves when all routes are registered
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // Register MCP status routes
25
+ * await webMcpStatusRoutes(app);
26
+ * ```
27
+ */
28
+ export declare function webMcpStatusRoutes(fastify: FastifyInstance): Promise<void>;
29
+ //# sourceMappingURL=mcp-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-status.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/mcp-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAO1C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,iBAsHhE"}
@@ -0,0 +1,126 @@
1
+ import { hubManager } from '../../services/hub-manager.service.js';
2
+ import { mcpConnectionManager } from '../../services/mcp-connection-manager.js';
3
+ import { logger } from '../../utils/logger.js';
4
+ import { LOG_MODULES } from '../../utils/logger/log-modules.js';
5
+ /**
6
+ * MCP Connection Status API Routes
7
+ *
8
+ * Provides real-time monitoring and management endpoints for MCP (Model Context Protocol) server connections.
9
+ * This module enables administrators to check the health of connected servers, manage connection states,
10
+ * and retrieve server capabilities including available tools and resources.
11
+ *
12
+ * The status API provides comprehensive information about each connected MCP server including:
13
+ * - Connection status (connected/disconnected)
14
+ * - Server performance metrics
15
+ * - Available tools and resources count
16
+ * - Process information (PID, start time)
17
+ * - Error conditions and recovery status
18
+ *
19
+ * Additionally, it provides active connection management capabilities to connect/disconnect
20
+ * servers programmatically, making it suitable for automated infrastructure management.
21
+ *
22
+ * @param fastify - The Fastify instance to register routes on
23
+ * @returns Promise that resolves when all routes are registered
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // Register MCP status routes
28
+ * await webMcpStatusRoutes(app);
29
+ * ```
30
+ */
31
+ export async function webMcpStatusRoutes(fastify) {
32
+ // GET /web/mcp/status - Get status of all MCP servers
33
+ fastify.get('/web/mcp/status', async (_request, reply) => {
34
+ try {
35
+ const servers = hubManager.getAllServers();
36
+ const serverInstances = hubManager.getServerInstances();
37
+ const statusList = [];
38
+ servers.forEach((server) => {
39
+ const instances = serverInstances[server.name] || [];
40
+ instances.forEach((instance) => {
41
+ statusList.push({
42
+ id: instance.id || '',
43
+ name: server.name,
44
+ type: server.config.type,
45
+ status: mcpConnectionManager.getStatus(instance.id || '') || {
46
+ connected: false,
47
+ lastCheck: Date.now(),
48
+ toolsCount: 0,
49
+ resourcesCount: 0,
50
+ pid: undefined
51
+ }
52
+ });
53
+ });
54
+ });
55
+ return statusList;
56
+ }
57
+ catch (error) {
58
+ logger.error('Failed to get MCP status:', error, LOG_MODULES.MCP_STATUS);
59
+ return reply.code(500).send({ error: 'Internal Server Error' });
60
+ }
61
+ });
62
+ // POST /web/mcp/servers/:id/connect - Connect to MCP server
63
+ fastify.post('/web/mcp/servers/:id/connect', async (request, reply) => {
64
+ try {
65
+ const server = hubManager.getServerById(request.params.id);
66
+ if (!server) {
67
+ return reply.code(404).send({ error: 'Server not found' });
68
+ }
69
+ const success = await mcpConnectionManager.connect({
70
+ ...server.config,
71
+ ...server.instance
72
+ });
73
+ if (!success) {
74
+ return reply.code(500).send({ error: 'Failed to connect to server' });
75
+ }
76
+ // Update enabled status in config - The enabled field now belongs to server configuration, not instance configuration
77
+ await hubManager.updateServer(server.name, { enabled: true });
78
+ return { success: true };
79
+ }
80
+ catch (error) {
81
+ logger.error('Failed to connect MCP server:', error, LOG_MODULES.MCP_STATUS);
82
+ return reply.code(500).send({ error: 'Internal Server Error' });
83
+ }
84
+ });
85
+ // POST /web/mcp/servers/:id/disconnect - Disconnect from MCP server
86
+ fastify.post('/web/mcp/servers/:id/disconnect', async (request, reply) => {
87
+ try {
88
+ await mcpConnectionManager.disconnect(request.params.id);
89
+ // Update enabled status in config to ensure it doesn't show as "starting"
90
+ // The enabled field now belongs to server configuration, not instance configuration
91
+ const server = hubManager.getServerById(request.params.id);
92
+ if (server) {
93
+ await hubManager.updateServer(server.name, { enabled: false });
94
+ }
95
+ return { success: true };
96
+ }
97
+ catch (error) {
98
+ logger.error('Failed to disconnect MCP server:', error, LOG_MODULES.MCP_STATUS);
99
+ return reply.code(500).send({ error: 'Internal Server Error' });
100
+ }
101
+ });
102
+ // GET /web/mcp/servers/:id/tools - Get tools for a specific server
103
+ fastify.get('/web/mcp/servers/:id/tools', async (request, reply) => {
104
+ try {
105
+ logger.info(`API request tools for server: ${request.params.id}`, LOG_MODULES.MCP_STATUS);
106
+ const tools = mcpConnectionManager.getTools(request.params.id);
107
+ return tools;
108
+ }
109
+ catch (error) {
110
+ logger.error('Failed to get MCP tools:', error, LOG_MODULES.MCP_STATUS);
111
+ return reply.code(500).send({ error: 'Internal Server Error' });
112
+ }
113
+ });
114
+ // GET /web/mcp/servers/:id/resources - Get resources for a specific server
115
+ fastify.get('/web/mcp/servers/:id/resources', async (request, reply) => {
116
+ try {
117
+ logger.info(`API request resources for server: ${request.params.id}`, LOG_MODULES.MCP_STATUS);
118
+ const resources = mcpConnectionManager.getResources(request.params.id);
119
+ return resources;
120
+ }
121
+ catch (error) {
122
+ logger.error('Failed to get MCP resources:', error, LOG_MODULES.MCP_STATUS);
123
+ return reply.code(500).send({ error: 'Internal Server Error' });
124
+ }
125
+ });
126
+ }
@@ -0,0 +1,28 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ /**
3
+ * MCP Resources API Routes
4
+ *
5
+ * Provides endpoints for discovering and accessing resources from connected MCP (Model Context Protocol) servers.
6
+ * This module enables clients to list available resources across all servers and read specific resource content.
7
+ *
8
+ * The resources API handles both system-level resources (provided by MCP Hub Lite itself) and server-specific
9
+ * resources from connected MCP servers. It provides a unified interface for resource discovery and access,
10
+ * abstracting away the underlying server implementation details.
11
+ *
12
+ * Key features include:
13
+ * - Cross-server resource listing with server categorization
14
+ * - Resource content reading with proper URI handling
15
+ * - System resource integration alongside server resources
16
+ * - Error handling for disconnected or unavailable servers
17
+ *
18
+ * @param fastify - The Fastify instance to register routes on
19
+ * @returns Promise that resolves when all routes are registered
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // Register resource routes
24
+ * await webResourceRoutes(app);
25
+ * ```
26
+ */
27
+ export declare function webResourceRoutes(fastify: FastifyInstance): Promise<void>;
28
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,iBA2E/D"}
@@ -0,0 +1,93 @@
1
+ import { mcpConnectionManager } from '../../services/mcp-connection-manager.js';
2
+ import { hubToolsService } from '../../services/hub-tools.service.js';
3
+ import { MCP_HUB_LITE_SERVER } from '../../models/system-tools.constants.js';
4
+ /**
5
+ * MCP Resources API Routes
6
+ *
7
+ * Provides endpoints for discovering and accessing resources from connected MCP (Model Context Protocol) servers.
8
+ * This module enables clients to list available resources across all servers and read specific resource content.
9
+ *
10
+ * The resources API handles both system-level resources (provided by MCP Hub Lite itself) and server-specific
11
+ * resources from connected MCP servers. It provides a unified interface for resource discovery and access,
12
+ * abstracting away the underlying server implementation details.
13
+ *
14
+ * Key features include:
15
+ * - Cross-server resource listing with server categorization
16
+ * - Resource content reading with proper URI handling
17
+ * - System resource integration alongside server resources
18
+ * - Error handling for disconnected or unavailable servers
19
+ *
20
+ * @param fastify - The Fastify instance to register routes on
21
+ * @returns Promise that resolves when all routes are registered
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * // Register resource routes
26
+ * await webResourceRoutes(app);
27
+ * ```
28
+ */
29
+ export async function webResourceRoutes(fastify) {
30
+ // GET /web/servers/:name/resources/read
31
+ fastify.get('/web/servers/:name/resources/read', async (request, reply) => {
32
+ try {
33
+ const { name } = request.params;
34
+ const { uri } = request.query;
35
+ if (!uri) {
36
+ return reply.code(400).send({ error: 'URI is required' });
37
+ }
38
+ // Handle system resources (mcp-hub-lite)
39
+ if (name === MCP_HUB_LITE_SERVER) {
40
+ const content = await hubToolsService.readResource(uri);
41
+ // Wrap content in MCP resource read format
42
+ return {
43
+ contents: [
44
+ {
45
+ uri,
46
+ mimeType: 'application/json',
47
+ text: JSON.stringify(content, null, 2)
48
+ }
49
+ ]
50
+ };
51
+ }
52
+ // Find server ID
53
+ const serverId = mcpConnectionManager.getServerIdByName(name);
54
+ if (!serverId) {
55
+ // Try using name directly as ID (unlikely but for robustness)
56
+ if (mcpConnectionManager.getStatus(name)) {
57
+ const result = await mcpConnectionManager.readResource(name, uri);
58
+ return result;
59
+ }
60
+ return reply.code(404).send({ error: 'Server not connected or not found' });
61
+ }
62
+ const result = await mcpConnectionManager.readResource(serverId, uri);
63
+ return result;
64
+ }
65
+ catch (error) {
66
+ const errorObj = error;
67
+ return reply.code(500).send({ error: errorObj.message || 'Failed to read resource' });
68
+ }
69
+ });
70
+ fastify.get('/web/resources', async (_request, reply) => {
71
+ try {
72
+ const allResources = mcpConnectionManager.getAllResources();
73
+ // Add Hub System resources
74
+ const systemResources = await hubToolsService.listResources();
75
+ const resources = {};
76
+ // 1. Add Hub System resources first if they exist
77
+ if (systemResources && systemResources.length > 0) {
78
+ resources[MCP_HUB_LITE_SERVER] = systemResources;
79
+ }
80
+ // 2. Add other server resources, filtering out empty ones
81
+ for (const [serverName, serverResources] of Object.entries(allResources)) {
82
+ if (serverResources && serverResources.length > 0) {
83
+ resources[serverName] = serverResources;
84
+ }
85
+ }
86
+ return { resources };
87
+ }
88
+ catch (error) {
89
+ const errorObj = error;
90
+ return reply.code(500).send({ error: errorObj.message || 'Failed to fetch resources' });
91
+ }
92
+ });
93
+ }
@@ -0,0 +1,26 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ /**
3
+ * Tool Search API Routes
4
+ *
5
+ * Provides powerful fuzzy search capabilities for discovering tools across all connected MCP (Model Context Protocol) servers.
6
+ * This module enables users to quickly find relevant tools based on name, description, or other metadata using
7
+ * advanced search algorithms with pagination support.
8
+ *
9
+ * The search API supports flexible query parameters including result limits, offsets for pagination,
10
+ * and various search modes. It integrates with the core search service to provide fast and accurate
11
+ * tool discovery across the entire MCP ecosystem.
12
+ *
13
+ * Additionally includes a dedicated health check endpoint for monitoring the search service availability
14
+ * in production environments.
15
+ *
16
+ * @param fastify - The Fastify instance to register routes on
17
+ * @returns Promise that resolves when all routes are registered
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Register search routes
22
+ * await webSearchRoutes(app);
23
+ * ```
24
+ */
25
+ export declare function webSearchRoutes(fastify: FastifyInstance): Promise<void>;
26
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBA+C7D"}
@@ -0,0 +1,62 @@
1
+ import { searchCoreService } from '../../services/search/search-core.service.js';
2
+ /**
3
+ * Tool Search API Routes
4
+ *
5
+ * Provides powerful fuzzy search capabilities for discovering tools across all connected MCP (Model Context Protocol) servers.
6
+ * This module enables users to quickly find relevant tools based on name, description, or other metadata using
7
+ * advanced search algorithms with pagination support.
8
+ *
9
+ * The search API supports flexible query parameters including result limits, offsets for pagination,
10
+ * and various search modes. It integrates with the core search service to provide fast and accurate
11
+ * tool discovery across the entire MCP ecosystem.
12
+ *
13
+ * Additionally includes a dedicated health check endpoint for monitoring the search service availability
14
+ * in production environments.
15
+ *
16
+ * @param fastify - The Fastify instance to register routes on
17
+ * @returns Promise that resolves when all routes are registered
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Register search routes
22
+ * await webSearchRoutes(app);
23
+ * ```
24
+ */
25
+ export async function webSearchRoutes(fastify) {
26
+ // GET /web/search - Search for tools with query and optional filters
27
+ fastify.get('/web/search', async (request) => {
28
+ const { q, limit, offset } = request.query;
29
+ // Parse search options
30
+ const options = {
31
+ mode: 'fuzzy',
32
+ limit: limit ? Number(limit) : 50,
33
+ offset: offset ? Number(offset) : 0,
34
+ filters: {}
35
+ };
36
+ // Perform search
37
+ const results = await searchCoreService.search(q || '', options);
38
+ return {
39
+ results,
40
+ pagination: {
41
+ total: results.length,
42
+ limit: options.limit,
43
+ offset: options.offset,
44
+ hasMore: results.length >= options.limit
45
+ },
46
+ metadata: {
47
+ query: q,
48
+ filters: options.filters,
49
+ processingTime: 0, // To be implemented: measure processing time
50
+ cached: false // To be implemented: check cache status
51
+ }
52
+ };
53
+ });
54
+ // GET /web/search/health - Search service health check (for monitoring)
55
+ fastify.get('/web/search/health', async () => {
56
+ return {
57
+ status: 'healthy',
58
+ timestamp: new Date().toISOString(),
59
+ service: 'search-core-service'
60
+ };
61
+ });
62
+ }
@@ -0,0 +1,33 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ /**
3
+ * MCP Server Management API Routes
4
+ *
5
+ * Provides comprehensive CRUD (Create, Read, Update, Delete) operations for managing MCP (Model Context Protocol) servers
6
+ * and their runtime instances within the MCP Hub Lite system. This module serves as the primary interface for
7
+ * server configuration management, process control, and bulk operations.
8
+ *
9
+ * The API supports both static server configuration (defining how servers should be configured) and dynamic
10
+ * instance management (controlling actual running server processes). It includes sophisticated validation
11
+ * using Zod schemas to ensure configuration integrity and provides detailed error handling with appropriate
12
+ * HTTP status codes.
13
+ *
14
+ * Key features include:
15
+ * - Full CRUD operations for server configurations
16
+ * - Instance-level management for running server processes
17
+ * - Batch import/export capabilities for server configurations
18
+ * - Automatic server startup based on enabled status
19
+ * - Comprehensive validation using Zod schemas
20
+ * - Detailed error handling with appropriate HTTP status codes
21
+ * - Support for multiple server types (stdio, sse, streamable-http)
22
+ *
23
+ * @param fastify - The Fastify instance to register routes on
24
+ * @returns Promise that resolves when all routes are registered
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * // Register server management routes
29
+ * await webServerRoutes(app);
30
+ * ```
31
+ */
32
+ export declare function webServerRoutes(fastify: FastifyInstance): Promise<void>;
33
+ //# sourceMappingURL=servers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/servers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAY1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBA4O7D"}
@@ -0,0 +1,235 @@
1
+ import { z } from 'zod';
2
+ import { hubManager } from '../../services/hub-manager.service.js';
3
+ import { ServerConfigSchema, ServerInstanceConfigSchema } from '../../config/config.schema.js';
4
+ import { logger } from '../../utils/logger.js';
5
+ /**
6
+ * MCP Server Management API Routes
7
+ *
8
+ * Provides comprehensive CRUD (Create, Read, Update, Delete) operations for managing MCP (Model Context Protocol) servers
9
+ * and their runtime instances within the MCP Hub Lite system. This module serves as the primary interface for
10
+ * server configuration management, process control, and bulk operations.
11
+ *
12
+ * The API supports both static server configuration (defining how servers should be configured) and dynamic
13
+ * instance management (controlling actual running server processes). It includes sophisticated validation
14
+ * using Zod schemas to ensure configuration integrity and provides detailed error handling with appropriate
15
+ * HTTP status codes.
16
+ *
17
+ * Key features include:
18
+ * - Full CRUD operations for server configurations
19
+ * - Instance-level management for running server processes
20
+ * - Batch import/export capabilities for server configurations
21
+ * - Automatic server startup based on enabled status
22
+ * - Comprehensive validation using Zod schemas
23
+ * - Detailed error handling with appropriate HTTP status codes
24
+ * - Support for multiple server types (stdio, sse, streamable-http)
25
+ *
26
+ * @param fastify - The Fastify instance to register routes on
27
+ * @returns Promise that resolves when all routes are registered
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * // Register server management routes
32
+ * await webServerRoutes(app);
33
+ * ```
34
+ */
35
+ export async function webServerRoutes(fastify) {
36
+ // GET /web/servers
37
+ fastify.get('/web/servers', async () => {
38
+ return hubManager.getAllServers();
39
+ });
40
+ // GET /web/servers/name/:name
41
+ fastify.get('/web/servers/name/:name', async (request, reply) => {
42
+ const server = hubManager.getServerByName(request.params.name);
43
+ if (!server) {
44
+ return reply.code(404).send({ error: 'Server not found' });
45
+ }
46
+ return server;
47
+ });
48
+ // GET /web/server-instances
49
+ fastify.get('/web/server-instances', async () => {
50
+ return hubManager.getServerInstances();
51
+ });
52
+ // GET /web/server-instances/:name
53
+ fastify.get('/web/server-instances/:name', async (request, reply) => {
54
+ const instances = hubManager.getServerInstanceByName(request.params.name);
55
+ if (instances.length === 0) {
56
+ return reply.code(404).send({ error: 'Server instances not found' });
57
+ }
58
+ return instances;
59
+ });
60
+ // POST /web/servers
61
+ fastify.post('/web/servers', async (request, reply) => {
62
+ try {
63
+ // Accept server name and configuration as request body
64
+ const postSchema = z.object({
65
+ name: z.string().min(1).max(100),
66
+ config: ServerConfigSchema.partial()
67
+ });
68
+ const body = postSchema.parse(request.body);
69
+ const newServer = await hubManager.addServer(body.name, body.config);
70
+ // If auto-start is enabled, add server instance (addServerInstance will automatically check and handle startup)
71
+ if (newServer.enabled !== false && newServer.enabled !== undefined) {
72
+ try {
73
+ await hubManager.addServerInstance(body.name, {});
74
+ }
75
+ catch (error) {
76
+ // Auto-start failure does not affect server addition operation
77
+ logger.warn(`Failed to auto-start server instance for ${body.name}:`, error);
78
+ }
79
+ }
80
+ return reply.code(201).send({ name: body.name, config: newServer });
81
+ }
82
+ catch (error) {
83
+ if (error instanceof z.ZodError) {
84
+ return reply.code(400).send({ error: 'Validation failed', details: error.issues });
85
+ }
86
+ return reply.code(500).send({ error: 'Internal Server Error' });
87
+ }
88
+ });
89
+ // POST /web/server-instances/:name
90
+ fastify.post('/web/server-instances/:name', async (request, reply) => {
91
+ try {
92
+ const instanceSchema = ServerInstanceConfigSchema.partial();
93
+ const body = instanceSchema.parse(request.body);
94
+ // Check if server exists
95
+ const server = hubManager.getServerByName(request.params.name);
96
+ if (!server) {
97
+ return reply.code(404).send({ error: 'Server not found' });
98
+ }
99
+ const newInstance = await hubManager.addServerInstance(request.params.name, body);
100
+ return reply.code(201).send(newInstance);
101
+ }
102
+ catch (error) {
103
+ if (error instanceof z.ZodError) {
104
+ return reply.code(400).send({ error: 'Validation failed', details: error.issues });
105
+ }
106
+ return reply.code(500).send({ error: 'Internal Server Error' });
107
+ }
108
+ });
109
+ // PUT /web/servers/:name
110
+ fastify.put('/web/servers/:name', async (request, reply) => {
111
+ try {
112
+ const partialSchema = ServerConfigSchema.partial();
113
+ const body = partialSchema.parse(request.body);
114
+ const updatedServer = await hubManager.updateServer(request.params.name, body);
115
+ if (!updatedServer) {
116
+ return reply.code(404).send({ error: 'Server not found' });
117
+ }
118
+ return { name: request.params.name, config: updatedServer };
119
+ }
120
+ catch (error) {
121
+ if (error instanceof z.ZodError) {
122
+ return reply.code(400).send({ error: 'Validation failed', details: error.issues });
123
+ }
124
+ return reply.code(500).send({ error: 'Internal Server Error' });
125
+ }
126
+ });
127
+ // PUT /web/server-instances/:name/:index
128
+ fastify.put('/web/server-instances/:name/:index', async (request, reply) => {
129
+ try {
130
+ const partialSchema = ServerInstanceConfigSchema.partial();
131
+ const body = partialSchema.parse(request.body);
132
+ await hubManager.updateServerInstance(request.params.name, request.params.index, body);
133
+ return reply.code(200).send({ message: 'Server instance updated' });
134
+ }
135
+ catch (error) {
136
+ if (error instanceof z.ZodError) {
137
+ return reply.code(400).send({ error: 'Validation failed', details: error.issues });
138
+ }
139
+ return reply.code(500).send({ error: 'Internal Server Error' });
140
+ }
141
+ });
142
+ // DELETE /web/servers/:name
143
+ fastify.delete('/web/servers/:name', async (request, reply) => {
144
+ const success = await hubManager.removeServer(request.params.name);
145
+ if (!success) {
146
+ return reply.code(404).send({ error: 'Server not found' });
147
+ }
148
+ return reply.code(204).send();
149
+ });
150
+ // DELETE /web/server-instances/:name/:index
151
+ fastify.delete('/web/server-instances/:name/:index', async (request, reply) => {
152
+ try {
153
+ await hubManager.removeServerInstance(request.params.name, request.params.index);
154
+ return reply.code(204).send();
155
+ }
156
+ catch (error) {
157
+ if (error instanceof z.ZodError) {
158
+ return reply.code(400).send({ error: 'Validation failed', details: error.issues });
159
+ }
160
+ return reply.code(500).send({ error: 'Internal Server Error' });
161
+ }
162
+ });
163
+ // POST /web/servers/batch
164
+ fastify.post('/web/servers/batch', async (request, reply) => {
165
+ try {
166
+ // First parse the basic structure without strict validation of server configuration to allow preprocessing
167
+ const batchSchema = z.object({
168
+ mcpServers: z.array(z.object({
169
+ name: z.string().min(1).max(100),
170
+ config: ServerConfigSchema.partial()
171
+ }))
172
+ });
173
+ const body = batchSchema.parse(request.body);
174
+ const results = {
175
+ success: [],
176
+ errors: []
177
+ };
178
+ const existingServers = hubManager.getAllServers();
179
+ const existingNames = new Set(existingServers.map((server) => server.name.toLowerCase()));
180
+ const serversToAdd = [];
181
+ const serversToConnect = [];
182
+ // Phase 1: Collect and validate all servers
183
+ for (const { name, config: serverConfig } of body.mcpServers) {
184
+ try {
185
+ const processedName = name.toLowerCase();
186
+ // Check for duplicate names
187
+ if (existingNames.has(processedName)) {
188
+ results.errors.push({
189
+ name: name,
190
+ error: 'Server with this name already exists'
191
+ });
192
+ continue;
193
+ }
194
+ // Validate server configuration using Zod (now supports "http" type)
195
+ const validatedConfig = ServerConfigSchema.partial().parse(serverConfig);
196
+ serversToAdd.push({ name: processedName, config: validatedConfig });
197
+ if (validatedConfig.enabled !== false && validatedConfig.enabled !== undefined) {
198
+ serversToConnect.push(processedName);
199
+ }
200
+ results.success.push({ name: processedName, config: validatedConfig });
201
+ existingNames.add(processedName); // Prevent duplicates within the same batch
202
+ }
203
+ catch (error) {
204
+ results.errors.push({
205
+ name: name,
206
+ error: error instanceof Error ? error.message : 'Unknown error'
207
+ });
208
+ }
209
+ }
210
+ // Phase 2: Batch save configuration (save only once)
211
+ if (serversToAdd.length > 0) {
212
+ await hubManager.addServersWithoutAutoStart(serversToAdd);
213
+ }
214
+ // Phase 3: Batch create server instances (without auto-connect)
215
+ if (serversToAdd.length > 0) {
216
+ await hubManager.addServerInstancesWithoutConnect(serversToAdd.map((s) => s.name));
217
+ }
218
+ // Phase 4: Concurrently start all server instances that need to be connected
219
+ if (serversToConnect.length > 0) {
220
+ await hubManager.connectServerInstances(serversToConnect);
221
+ }
222
+ return reply.code(200).send({
223
+ code: 200,
224
+ message: 'Servers imported successfully',
225
+ data: results
226
+ });
227
+ }
228
+ catch (error) {
229
+ if (error instanceof z.ZodError) {
230
+ return reply.code(400).send({ error: 'Validation failed', details: error.issues });
231
+ }
232
+ return reply.code(500).send({ error: 'Internal Server Error' });
233
+ }
234
+ });
235
+ }