@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 @@
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBAU7D"}
@@ -0,0 +1,41 @@
1
+ import { clientTrackerService } from '../../services/client-tracker.service.js';
2
+ import { logger } from '../../utils/logger.js';
3
+ /**
4
+ * Registers web API routes for client management endpoints.
5
+ *
6
+ * This function sets up the HTTP routes that allow external clients to retrieve
7
+ * information about currently connected clients tracked by the system. The client
8
+ * tracking service maintains real-time information about all active connections,
9
+ * including session details, client metadata, and connection status.
10
+ *
11
+ * Primary Use Cases:
12
+ * - Monitoring dashboard to display active client connections
13
+ * - Debugging and diagnostics for client connectivity issues
14
+ * - Integration with external monitoring systems
15
+ * - Client lifecycle management and auditing
16
+ *
17
+ * The registered endpoint provides read-only access to client data and includes
18
+ * proper error handling with appropriate HTTP status codes and logging.
19
+ *
20
+ * @param fastify - The Fastify instance to register routes on
21
+ * @returns Promise<void> - Resolves when routes are registered
22
+ *
23
+ * @example
24
+ * // Register client routes
25
+ * await webClientRoutes(app);
26
+ *
27
+ * // Client can then make GET request to /api/clients
28
+ * // Returns: Array of ClientContext objects with session and connection details
29
+ */
30
+ export async function webClientRoutes(fastify) {
31
+ fastify.get('/api/clients', async (_request, reply) => {
32
+ try {
33
+ const clients = clientTrackerService.getClients();
34
+ return reply.send(clients);
35
+ }
36
+ catch (error) {
37
+ logger.error('Failed to get clients:', error);
38
+ return reply.code(500).send({ error: 'Failed to get clients' });
39
+ }
40
+ });
41
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Configuration Management API Routes
3
+ *
4
+ * This module provides comprehensive configuration management endpoints for the MCP Hub Lite system.
5
+ * It handles reading, updating, importing, exporting, and batch operations for system configuration.
6
+ *
7
+ * The configuration includes server definitions, system settings, and other runtime parameters
8
+ * that control the behavior of the MCP Hub Lite service.
9
+ *
10
+ * @param fastify - The Fastify instance to register routes on
11
+ * @returns Promise that resolves when all routes are registered
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Register configuration management routes
16
+ * await configRoutes(app);
17
+ * ```
18
+ */
19
+ import { FastifyInstance } from 'fastify';
20
+ export declare function configRoutes(fastify: FastifyInstance): Promise<void>;
21
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAU1C,wBAAsB,YAAY,CAAC,OAAO,EAAE,eAAe,iBAsG1D"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Configuration Management API Routes
3
+ *
4
+ * This module provides comprehensive configuration management endpoints for the MCP Hub Lite system.
5
+ * It handles reading, updating, importing, exporting, and batch operations for system configuration.
6
+ *
7
+ * The configuration includes server definitions, system settings, and other runtime parameters
8
+ * that control the behavior of the MCP Hub Lite service.
9
+ *
10
+ * @param fastify - The Fastify instance to register routes on
11
+ * @returns Promise that resolves when all routes are registered
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Register configuration management routes
16
+ * await configRoutes(app);
17
+ * ```
18
+ */
19
+ import { configManager } from '../../config/config-manager.js';
20
+ import { eventBus, EventTypes } from '../../services/event-bus.service.js';
21
+ import { isDevModeEnabled } from '../../utils/json-utils.js';
22
+ export async function configRoutes(fastify) {
23
+ // GET /web/config - Get current configuration
24
+ fastify.get('/web/config', async (_request, reply) => {
25
+ try {
26
+ const config = configManager.getConfig();
27
+ const isDevMode = isDevModeEnabled();
28
+ return reply.send({
29
+ ...config,
30
+ isDevMode
31
+ });
32
+ }
33
+ catch (error) {
34
+ const errorObj = error;
35
+ return reply.code(500).send({
36
+ error: 'Failed to get configuration',
37
+ message: errorObj.message
38
+ });
39
+ }
40
+ });
41
+ // PUT /web/config - Update complete configuration
42
+ fastify.put('/web/config', async (request, reply) => {
43
+ try {
44
+ const newConfig = request.body;
45
+ await configManager.updateConfig(newConfig);
46
+ // Publish configuration update event
47
+ eventBus.publish(EventTypes.CONFIGURATION_UPDATED, {
48
+ timestamp: Date.now(),
49
+ config: newConfig
50
+ });
51
+ return reply.send({ success: true, message: 'Configuration updated successfully' });
52
+ }
53
+ catch (error) {
54
+ const errorObj = error;
55
+ return reply.code(500).send({
56
+ error: 'Failed to update configuration',
57
+ message: errorObj.message
58
+ });
59
+ }
60
+ });
61
+ // POST /web/config/export - Export configuration
62
+ fastify.post('/web/config/export', async (_request, reply) => {
63
+ try {
64
+ const config = configManager.getConfig();
65
+ reply.header('Content-Disposition', 'attachment; filename=mcp-hub-config.json');
66
+ reply.header('Content-Type', 'application/json');
67
+ return reply.send(JSON.stringify(config));
68
+ }
69
+ catch (error) {
70
+ const errorObj = error;
71
+ return reply.code(500).send({
72
+ error: 'Failed to export configuration',
73
+ message: errorObj.message
74
+ });
75
+ }
76
+ });
77
+ // POST /web/config/import - Import configuration
78
+ fastify.post('/web/config/import', async (request, reply) => {
79
+ try {
80
+ const importedConfig = request.body;
81
+ await configManager.updateConfig(importedConfig);
82
+ // Publish configuration update event
83
+ eventBus.publish(EventTypes.CONFIGURATION_UPDATED, {
84
+ timestamp: Date.now(),
85
+ config: importedConfig
86
+ });
87
+ return reply.send({ success: true, message: 'Configuration imported successfully' });
88
+ }
89
+ catch (error) {
90
+ const errorObj = error;
91
+ return reply.code(400).send({
92
+ error: 'Failed to import configuration',
93
+ message: errorObj.message
94
+ });
95
+ }
96
+ });
97
+ // PATCH /web/config/servers - Batch update server configuration
98
+ fastify.patch('/web/config/servers', async (request, reply) => {
99
+ try {
100
+ const { servers } = request.body;
101
+ const config = configManager.getConfig();
102
+ config.servers = servers;
103
+ await configManager.updateConfig(config);
104
+ // Publish configuration update event
105
+ eventBus.publish(EventTypes.CONFIGURATION_UPDATED, {
106
+ timestamp: Date.now(),
107
+ config
108
+ });
109
+ return reply.send({ success: true, message: 'Servers configuration updated' });
110
+ }
111
+ catch (error) {
112
+ const errorObj = error;
113
+ return reply.code(500).send({
114
+ error: 'Failed to update servers configuration',
115
+ message: errorObj.message
116
+ });
117
+ }
118
+ });
119
+ }
@@ -0,0 +1,21 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ /**
3
+ * Health Check API Routes
4
+ *
5
+ * Provides system health monitoring endpoints to verify the operational status of the MCP Hub Lite service.
6
+ * These endpoints are essential for infrastructure monitoring, load balancers, and service discovery systems.
7
+ *
8
+ * The health check returns a simple status indicator along with a timestamp to verify that the service
9
+ * is responding correctly and can handle incoming requests.
10
+ *
11
+ * @param fastify - The Fastify instance to register routes on
12
+ * @returns Promise that resolves when all routes are registered
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Register health check routes
17
+ * await webHealthRoutes(app);
18
+ * ```
19
+ */
20
+ export declare function webHealthRoutes(fastify: FastifyInstance): Promise<void>;
21
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBAK7D"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Health Check API Routes
3
+ *
4
+ * Provides system health monitoring endpoints to verify the operational status of the MCP Hub Lite service.
5
+ * These endpoints are essential for infrastructure monitoring, load balancers, and service discovery systems.
6
+ *
7
+ * The health check returns a simple status indicator along with a timestamp to verify that the service
8
+ * is responding correctly and can handle incoming requests.
9
+ *
10
+ * @param fastify - The Fastify instance to register routes on
11
+ * @returns Promise that resolves when all routes are registered
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Register health check routes
16
+ * await webHealthRoutes(app);
17
+ * ```
18
+ */
19
+ export async function webHealthRoutes(fastify) {
20
+ // GET /web/health
21
+ fastify.get('/web/health', async () => {
22
+ return { status: 'ok', timestamp: new Date().toISOString() };
23
+ });
24
+ }
@@ -0,0 +1,30 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ /**
3
+ * MCP Hub Tools API Routes
4
+ *
5
+ * Provides a comprehensive set of endpoints for discovering, inspecting, and invoking tools across
6
+ * all connected MCP (Model Context Protocol) servers. This module serves as the central hub for
7
+ * tool management and execution within the MCP Hub Lite system.
8
+ *
9
+ * The API supports both system-level tools (built into MCP Hub Lite) and server-specific tools
10
+ * from connected MCP servers. It enables powerful search capabilities, detailed tool inspection,
11
+ * and secure tool invocation with proper parameter validation.
12
+ *
13
+ * Key features include:
14
+ * - System tool discovery and execution
15
+ * - Cross-server tool listing and searching
16
+ * - Server-specific tool management
17
+ * - Tool schema inspection and validation
18
+ * - Secure tool invocation with session context
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 hub tools routes
26
+ * await webHubToolsRoutes(app);
27
+ * ```
28
+ */
29
+ export declare function webHubToolsRoutes(fastify: FastifyInstance): Promise<void>;
30
+ //# sourceMappingURL=hub-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-tools.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/hub-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA8B1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,iBA0O/D"}
@@ -0,0 +1,202 @@
1
+ import { z } from 'zod';
2
+ import { hubToolsService } from '../../services/hub-tools.service.js';
3
+ /**
4
+ * MCP Hub Tools API Routes
5
+ *
6
+ * Provides a comprehensive set of endpoints for discovering, inspecting, and invoking tools across
7
+ * all connected MCP (Model Context Protocol) servers. This module serves as the central hub for
8
+ * tool management and execution within the MCP Hub Lite system.
9
+ *
10
+ * The API supports both system-level tools (built into MCP Hub Lite) and server-specific tools
11
+ * from connected MCP servers. It enables powerful search capabilities, detailed tool inspection,
12
+ * and secure tool invocation with proper parameter validation.
13
+ *
14
+ * Key features include:
15
+ * - System tool discovery and execution
16
+ * - Cross-server tool listing and searching
17
+ * - Server-specific tool management
18
+ * - Tool schema inspection and validation
19
+ * - Secure tool invocation with session context
20
+ *
21
+ * @param fastify - The Fastify instance to register routes on
22
+ * @returns Promise that resolves when all routes are registered
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // Register hub tools routes
27
+ * await webHubToolsRoutes(app);
28
+ * ```
29
+ */
30
+ export async function webHubToolsRoutes(fastify) {
31
+ // GET /web/hub-tools/system - List system tools
32
+ fastify.get('/web/hub-tools/system', async () => {
33
+ return hubToolsService.getSystemTools();
34
+ });
35
+ // POST /web/hub-tools/system/:toolName/call - Call a system tool
36
+ fastify.post('/web/hub-tools/system/:toolName/call', async (request, reply) => {
37
+ try {
38
+ const { toolName } = request.params;
39
+ const { toolArgs = {} } = request.body;
40
+ // Handle system tool calls uniformly through callSystemTool method to ensure logging
41
+ return await hubToolsService.callSystemTool(toolName, toolArgs);
42
+ }
43
+ catch (error) {
44
+ if (error instanceof Error && error.message.includes('System tool')) {
45
+ return reply.code(404).send({
46
+ error: 'Tool not found',
47
+ message: error.message
48
+ });
49
+ }
50
+ return reply.code(500).send({
51
+ error: 'Internal Server Error',
52
+ message: error instanceof Error ? error.message : 'Unknown error'
53
+ });
54
+ }
55
+ });
56
+ // GET /web/hub-tools/servers - List all connected servers
57
+ fastify.get('/web/hub-tools/servers', async () => {
58
+ const servers = await hubToolsService.listServers();
59
+ return servers;
60
+ });
61
+ // GET /web/hub-tools/servers/find - Find servers matching a pattern
62
+ fastify.get('/web/hub-tools/servers/find', async (request) => {
63
+ const { pattern, searchIn = 'both', caseSensitive = 'false' } = request.query;
64
+ const servers = await hubToolsService.findServers({
65
+ pattern,
66
+ searchIn: searchIn,
67
+ caseSensitive: caseSensitive === 'true'
68
+ });
69
+ return servers;
70
+ });
71
+ // GET /web/hub-tools/servers/:serverName/tools - List all tools in a specific server
72
+ fastify.get('/web/hub-tools/servers/:serverName/tools', async (request, reply) => {
73
+ try {
74
+ const { serverName } = request.params;
75
+ const { sessionId, tags } = request.query;
76
+ const requestOptions = {
77
+ sessionId,
78
+ tags: tags ? JSON.parse(tags) : undefined
79
+ };
80
+ const result = await hubToolsService.listAllToolsInServer({ serverName, requestOptions });
81
+ return result;
82
+ }
83
+ catch (error) {
84
+ return reply.code(404).send({
85
+ error: 'Server not found',
86
+ message: error instanceof Error ? error.message : 'Unknown error'
87
+ });
88
+ }
89
+ });
90
+ // GET /web/hub-tools/servers/:serverName/tools/find - Find tools in a specific server
91
+ fastify.get('/web/hub-tools/servers/:serverName/tools/find', async (request, reply) => {
92
+ try {
93
+ const { serverName } = request.params;
94
+ const { pattern, searchIn = 'both', caseSensitive = 'false', sessionId, tags } = request.query;
95
+ const requestOptions = {
96
+ sessionId,
97
+ tags: tags ? JSON.parse(tags) : undefined
98
+ };
99
+ const result = await hubToolsService.findToolsInServer({
100
+ serverName,
101
+ pattern,
102
+ searchIn: searchIn,
103
+ caseSensitive: caseSensitive === 'true',
104
+ requestOptions
105
+ });
106
+ return result;
107
+ }
108
+ catch (error) {
109
+ if (error instanceof Error && error.message.includes('not found')) {
110
+ return reply.code(404).send({
111
+ error: 'Server not found',
112
+ message: error.message
113
+ });
114
+ }
115
+ return reply.code(500).send({
116
+ error: 'Internal Server Error',
117
+ message: error instanceof Error ? error.message : 'Unknown error'
118
+ });
119
+ }
120
+ });
121
+ // GET /web/hub-tools/servers/:serverName/tools/:toolName - Get specific tool details
122
+ fastify.get('/web/hub-tools/servers/:serverName/tools/:toolName', async (request, reply) => {
123
+ try {
124
+ const { serverName, toolName } = request.params;
125
+ const { sessionId, tags } = request.query;
126
+ const requestOptions = {
127
+ sessionId,
128
+ tags: tags ? JSON.parse(tags) : undefined
129
+ };
130
+ const tool = await hubToolsService.getTool({ serverName, toolName, requestOptions });
131
+ if (!tool) {
132
+ return reply.code(404).send({
133
+ error: 'Tool not found',
134
+ message: `Tool "${toolName}" not found on server "${serverName}"`
135
+ });
136
+ }
137
+ return tool;
138
+ }
139
+ catch (error) {
140
+ if (error instanceof Error && error.message.includes('not found')) {
141
+ return reply.code(404).send({
142
+ error: error.message.includes('Server') ? 'Server not found' : 'Tool not found',
143
+ message: error.message
144
+ });
145
+ }
146
+ return reply.code(500).send({
147
+ error: 'Internal Server Error',
148
+ message: error instanceof Error ? error.message : 'Unknown error'
149
+ });
150
+ }
151
+ });
152
+ // POST /web/hub-tools/servers/:serverName/tools/:toolName/call - Call a specific tool
153
+ const CallToolBodySchema = z.object({
154
+ toolArgs: z.record(z.string(), z.any()),
155
+ requestOptions: z
156
+ .object({
157
+ sessionId: z.string().optional(),
158
+ tags: z.record(z.string(), z.string()).optional()
159
+ })
160
+ .optional()
161
+ });
162
+ fastify.post('/web/hub-tools/servers/:serverName/tools/:toolName/call', async (request, reply) => {
163
+ try {
164
+ const { serverName, toolName } = request.params;
165
+ const { toolArgs, requestOptions } = CallToolBodySchema.parse(request.body);
166
+ const result = await hubToolsService.callTool({
167
+ serverName,
168
+ toolName,
169
+ toolArgs,
170
+ requestOptions
171
+ });
172
+ return result;
173
+ }
174
+ catch (error) {
175
+ if (error instanceof Error && error.message.includes('not found')) {
176
+ return reply.code(404).send({
177
+ error: error.message.includes('Server') ? 'Server not found' : 'Tool not found',
178
+ message: error.message
179
+ });
180
+ }
181
+ return reply.code(500).send({
182
+ error: 'Internal Server Error',
183
+ message: error instanceof Error ? error.message : 'Unknown error'
184
+ });
185
+ }
186
+ });
187
+ // GET /web/hub-tools/tools - List all tools from all servers
188
+ fastify.get('/web/hub-tools/tools', async () => {
189
+ const allTools = await hubToolsService.listAllTools();
190
+ return allTools;
191
+ });
192
+ // GET /web/hub-tools/tools/find - Find tools matching a pattern across all servers
193
+ fastify.get('/web/hub-tools/tools/find', async (request) => {
194
+ const { pattern, searchIn = 'both', caseSensitive = 'false' } = request.query;
195
+ const tools = await hubToolsService.findTools({
196
+ pattern,
197
+ searchIn: searchIn,
198
+ caseSensitive: caseSensitive === 'true'
199
+ });
200
+ return tools;
201
+ });
202
+ }
@@ -0,0 +1,30 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ /**
3
+ * Server Logs API Routes
4
+ *
5
+ * Provides comprehensive logging endpoints for monitoring and debugging MCP server operations.
6
+ * This module enables real-time log streaming, historical log retrieval, and log management
7
+ * across all connected MCP servers.
8
+ *
9
+ * The logging system supports multiple log levels (debug, info, warn, error), pagination,
10
+ * filtering by timestamp, and real-time Server-Sent Events (SSE) streaming for live monitoring.
11
+ * Logs are stored per-server and can be retrieved individually or aggregated across all servers.
12
+ *
13
+ * Key features include:
14
+ * - Per-server log retrieval with filtering and pagination
15
+ * - Real-time log streaming via SSE
16
+ * - Log count statistics
17
+ * - Cross-server log aggregation
18
+ * - Log clearing and maintenance operations
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 log routes
26
+ * await webLogRoutes(app);
27
+ * ```
28
+ */
29
+ export declare function webLogRoutes(fastify: FastifyInstance): Promise<void>;
30
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,eAAe,iBA0I1D"}
@@ -0,0 +1,141 @@
1
+ import { z } from 'zod';
2
+ import { logStorage } from '../../services/log-storage.service.js';
3
+ /**
4
+ * Server Logs API Routes
5
+ *
6
+ * Provides comprehensive logging endpoints for monitoring and debugging MCP server operations.
7
+ * This module enables real-time log streaming, historical log retrieval, and log management
8
+ * across all connected MCP servers.
9
+ *
10
+ * The logging system supports multiple log levels (debug, info, warn, error), pagination,
11
+ * filtering by timestamp, and real-time Server-Sent Events (SSE) streaming for live monitoring.
12
+ * Logs are stored per-server and can be retrieved individually or aggregated across all servers.
13
+ *
14
+ * Key features include:
15
+ * - Per-server log retrieval with filtering and pagination
16
+ * - Real-time log streaming via SSE
17
+ * - Log count statistics
18
+ * - Cross-server log aggregation
19
+ * - Log clearing and maintenance operations
20
+ *
21
+ * @param fastify - The Fastify instance to register routes on
22
+ * @returns Promise that resolves when all routes are registered
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // Register log routes
27
+ * await webLogRoutes(app);
28
+ * ```
29
+ */
30
+ export async function webLogRoutes(fastify) {
31
+ // Query string schema for logs endpoints
32
+ const logQuerySchema = z.object({
33
+ level: z.custom().optional(),
34
+ limit: z.coerce.number().int().positive().optional(),
35
+ offset: z.coerce.number().int().min(0).optional(),
36
+ since: z.coerce.number().int().optional()
37
+ });
38
+ // GET /web/servers/:id/logs - Get logs for a specific server
39
+ fastify.get('/web/servers/:id/logs', async (request) => {
40
+ const { id } = request.params;
41
+ const query = logQuerySchema.parse(request.query);
42
+ const logs = logStorage.getLogs(id, query);
43
+ return {
44
+ code: 200,
45
+ message: 'Success',
46
+ data: logs,
47
+ timestamp: new Date().toISOString()
48
+ };
49
+ });
50
+ // GET /web/servers/:id/logs/stream - Get real-time logs stream via SSE
51
+ fastify.get('/web/servers/:id/logs/stream', async (request, reply) => {
52
+ const { id } = request.params;
53
+ // Set SSE headers
54
+ reply.raw.writeHead(200, {
55
+ 'Content-Type': 'text/event-stream',
56
+ 'Cache-Control': 'no-cache',
57
+ Connection: 'keep-alive',
58
+ 'Access-Control-Allow-Origin': '*',
59
+ 'Access-Control-Allow-Headers': 'Cache-Control'
60
+ });
61
+ // Send initial event
62
+ reply.raw.write(`data: ${JSON.stringify({
63
+ type: 'connected',
64
+ timestamp: new Date().toISOString(),
65
+ message: 'Connected to log stream'
66
+ })}\n\n`);
67
+ // Handle client disconnect
68
+ request.raw.on('close', () => {
69
+ logStorage.removeLogListener(id, listener);
70
+ });
71
+ // Create log listener
72
+ const listener = (log) => {
73
+ try {
74
+ reply.raw.write(`data: ${JSON.stringify(log)}\n\n`);
75
+ }
76
+ catch {
77
+ // Ignore write errors (e.g. client disconnected)
78
+ }
79
+ };
80
+ logStorage.addLogListener(id, listener);
81
+ // Keep connection alive
82
+ const keepAliveInterval = setInterval(() => {
83
+ try {
84
+ reply.raw.write(': ping\n\n');
85
+ }
86
+ catch {
87
+ clearInterval(keepAliveInterval);
88
+ logStorage.removeLogListener(id, listener);
89
+ }
90
+ }, 30000);
91
+ // Return a promise that never resolves to keep the connection alive
92
+ return new Promise(() => {
93
+ // Connection will be closed when client disconnects or server shuts down
94
+ });
95
+ });
96
+ // DELETE /web/servers/:id/logs - Clear logs for a specific server
97
+ fastify.delete('/web/servers/:id/logs', async (request) => {
98
+ const { id } = request.params;
99
+ logStorage.clearLogs(id);
100
+ return {
101
+ code: 200,
102
+ message: 'Logs cleared',
103
+ timestamp: new Date().toISOString()
104
+ };
105
+ });
106
+ // GET /web/logs - Get all logs from all servers
107
+ fastify.get('/web/logs', async (request) => {
108
+ const query = logQuerySchema.parse(request.query);
109
+ const servers = logStorage.getServersWithLogs();
110
+ const allLogs = servers
111
+ .flatMap((serverId) => logStorage.getLogs(serverId, query))
112
+ .sort((a, b) => a.timestamp - b.timestamp);
113
+ // Apply pagination to all logs
114
+ const offset = query.offset || 0;
115
+ const limit = query.limit || allLogs.length;
116
+ return {
117
+ code: 200,
118
+ message: 'Success',
119
+ data: allLogs.slice(offset, offset + limit),
120
+ timestamp: new Date().toISOString()
121
+ };
122
+ });
123
+ // GET /web/servers/:id/logs/count - Get log count for a specific server
124
+ fastify.get('/web/servers/:id/logs/count', async (request) => {
125
+ const { id } = request.params;
126
+ const { level } = request.query;
127
+ let count = logStorage.getLogCount(id);
128
+ if (level) {
129
+ const validLevels = ['debug', 'info', 'warn', 'error'];
130
+ if (validLevels.includes(level)) {
131
+ count = logStorage.getLogs(id, { level: level }).length;
132
+ }
133
+ }
134
+ return {
135
+ code: 200,
136
+ message: 'Success',
137
+ data: { count },
138
+ timestamp: new Date().toISOString()
139
+ };
140
+ });
141
+ }