@samanhappy/mcphub 1.0.17 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/betterAuth.js +2 -2
- package/dist/betterAuth.js.map +1 -1
- package/dist/clients/openapi.js +28 -0
- package/dist/clients/openapi.js.map +1 -1
- package/dist/controllers/groupController.js +66 -2
- package/dist/controllers/groupController.js.map +1 -1
- package/dist/controllers/serverController.js +22 -4
- package/dist/controllers/serverController.js.map +1 -1
- package/dist/controllers/userController.js +10 -1
- package/dist/controllers/userController.js.map +1 -1
- package/dist/dao/SystemConfigDaoDbImpl.js +3 -0
- package/dist/dao/SystemConfigDaoDbImpl.js.map +1 -1
- package/dist/db/entities/Group.js.map +1 -1
- package/dist/db/entities/SystemConfig.js +4 -0
- package/dist/db/entities/SystemConfig.js.map +1 -1
- package/dist/services/activityLoggingService.js +36 -6
- package/dist/services/activityLoggingService.js.map +1 -1
- package/dist/services/groupService.js +25 -0
- package/dist/services/groupService.js.map +1 -1
- package/dist/services/mcpService.js +155 -24
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/requestContextService.js +15 -0
- package/dist/services/requestContextService.js.map +1 -1
- package/dist/services/smartRoutingService.js +63 -12
- package/dist/services/smartRoutingService.js.map +1 -1
- package/dist/services/sseService.js +5 -2
- package/dist/services/sseService.js.map +1 -1
- package/dist/services/userService.js +18 -0
- package/dist/services/userService.js.map +1 -1
- package/dist/utils/serialization.js +85 -12
- package/dist/utils/serialization.js.map +1 -1
- package/dist/utils/ssrf.js +155 -0
- package/dist/utils/ssrf.js.map +1 -0
- package/dist/utils/tokenTruncation.js +14 -0
- package/dist/utils/tokenTruncation.js.map +1 -1
- package/frontend/dist/assets/{ActivityPage-KqU4EjKb.js → ActivityPage-DjDalhlo.js} +2 -2
- package/frontend/dist/assets/{ActivityPage-KqU4EjKb.js.map → ActivityPage-DjDalhlo.js.map} +1 -1
- package/frontend/dist/assets/{ConfirmDialog-Cag_haxr.js → ConfirmDialog-BKNVI65J.js} +2 -2
- package/frontend/dist/assets/{ConfirmDialog-Cag_haxr.js.map → ConfirmDialog-BKNVI65J.js.map} +1 -1
- package/frontend/dist/assets/{Dashboard-CXc-ImS1.js → Dashboard-Cf2VFPQ7.js} +2 -2
- package/frontend/dist/assets/{Dashboard-CXc-ImS1.js.map → Dashboard-Cf2VFPQ7.js.map} +1 -1
- package/frontend/dist/assets/{DeleteDialog-BBfJpiiD.js → DeleteDialog-7NPk3Hro.js} +2 -2
- package/frontend/dist/assets/{DeleteDialog-BBfJpiiD.js.map → DeleteDialog-7NPk3Hro.js.map} +1 -1
- package/frontend/dist/assets/{EndpointCopy-B0Jzcw_o.js → EndpointCopy-DW_j2a9P.js} +2 -2
- package/frontend/dist/assets/{EndpointCopy-B0Jzcw_o.js.map → EndpointCopy-DW_j2a9P.js.map} +1 -1
- package/frontend/dist/assets/GroupsPage-DUspUR95.js +33 -0
- package/frontend/dist/assets/GroupsPage-DUspUR95.js.map +1 -0
- package/frontend/dist/assets/{LoginPage-BhY00qA7.js → LoginPage-o710z6HX.js} +2 -2
- package/frontend/dist/assets/{LoginPage-BhY00qA7.js.map → LoginPage-o710z6HX.js.map} +1 -1
- package/frontend/dist/assets/{LogsPage-Dg-lc3Pg.js → LogsPage-DiXiSUhj.js} +2 -2
- package/frontend/dist/assets/{LogsPage-Dg-lc3Pg.js.map → LogsPage-DiXiSUhj.js.map} +1 -1
- package/frontend/dist/assets/{MarketPage-Cx40FYHN.js → MarketPage-Codk7YxZ.js} +2 -2
- package/frontend/dist/assets/{MarketPage-Cx40FYHN.js.map → MarketPage-Codk7YxZ.js.map} +1 -1
- package/frontend/dist/assets/{Pagination-DBAu79mv.js → Pagination-DAcOi8eq.js} +2 -2
- package/frontend/dist/assets/{Pagination-DBAu79mv.js.map → Pagination-DAcOi8eq.js.map} +1 -1
- package/frontend/dist/assets/{PromptsPage-CGdbhjVN.js → PromptsPage-DQacrj7y.js} +2 -2
- package/frontend/dist/assets/{PromptsPage-CGdbhjVN.js.map → PromptsPage-DQacrj7y.js.map} +1 -1
- package/frontend/dist/assets/{ResourcesPage-Cb85Tu7s.js → ResourcesPage-BS25aKa7.js} +2 -2
- package/frontend/dist/assets/{ResourcesPage-Cb85Tu7s.js.map → ResourcesPage-BS25aKa7.js.map} +1 -1
- package/frontend/dist/assets/ServersPage-D7L7zYLX.js +37 -0
- package/frontend/dist/assets/ServersPage-D7L7zYLX.js.map +1 -0
- package/frontend/dist/assets/SettingsPage-3PaaNjJQ.js +12 -0
- package/frontend/dist/assets/SettingsPage-3PaaNjJQ.js.map +1 -0
- package/frontend/dist/assets/{StatusDot-CpT1CIHe.js → StatusDot-udIVio-o.js} +2 -2
- package/frontend/dist/assets/{StatusDot-CpT1CIHe.js.map → StatusDot-udIVio-o.js.map} +1 -1
- package/frontend/dist/assets/{ToggleGroup-Dd_LLvuF.js → ToggleGroup-PVPGDLq8.js} +2 -2
- package/frontend/dist/assets/{ToggleGroup-Dd_LLvuF.js.map → ToggleGroup-PVPGDLq8.js.map} +1 -1
- package/frontend/dist/assets/{UsersPage-B1kkBEmr.js → UsersPage-C7BUNQm9.js} +2 -2
- package/frontend/dist/assets/{UsersPage-B1kkBEmr.js.map → UsersPage-C7BUNQm9.js.map} +1 -1
- package/frontend/dist/assets/{contextCost-BdSIYgf1.js → contextCost-DqhBunlo.js} +2 -2
- package/frontend/dist/assets/{contextCost-BdSIYgf1.js.map → contextCost-DqhBunlo.js.map} +1 -1
- package/frontend/dist/assets/framework-vendor-X-WP1v0m.js +61 -0
- package/frontend/dist/assets/framework-vendor-X-WP1v0m.js.map +1 -0
- package/frontend/dist/assets/{i18n-vendor-DP1IRITP.js → i18n-vendor-BLr2MLKp.js} +2 -2
- package/frontend/dist/assets/{i18n-vendor-DP1IRITP.js.map → i18n-vendor-BLr2MLKp.js.map} +1 -1
- package/frontend/dist/assets/{icons-vendor-Cumt8zWo.js → icons-vendor-DMtsx1SI.js} +2 -2
- package/frontend/dist/assets/{icons-vendor-Cumt8zWo.js.map → icons-vendor-DMtsx1SI.js.map} +1 -1
- package/frontend/dist/assets/{index-D1-Bdpe1.css → index-BlTPJflb.css} +1 -1
- package/frontend/dist/assets/index-CPJj7k3z.js +3 -0
- package/frontend/dist/assets/index-CPJj7k3z.js.map +1 -0
- package/frontend/dist/assets/{resourceService-ajx0g9wO.js → resourceService-BjMkU6_N.js} +2 -2
- package/frontend/dist/assets/{resourceService-ajx0g9wO.js.map → resourceService-BjMkU6_N.js.map} +1 -1
- package/frontend/dist/assets/useSettingsData-B9qL54qz.js +2 -0
- package/frontend/dist/assets/{useSettingsData-DPg3UYfr.js.map → useSettingsData-B9qL54qz.js.map} +1 -1
- package/frontend/dist/assets/{variableDetection-C_2zoP1B.js → variableDetection-Bp_stsiy.js} +2 -2
- package/frontend/dist/assets/{variableDetection-C_2zoP1B.js.map → variableDetection-Bp_stsiy.js.map} +1 -1
- package/frontend/dist/index.html +5 -5
- package/package.json +11 -11
- package/frontend/dist/assets/GroupsPage-CswSlOw8.js +0 -33
- package/frontend/dist/assets/GroupsPage-CswSlOw8.js.map +0 -1
- package/frontend/dist/assets/ServersPage-EHYBPHCn.js +0 -37
- package/frontend/dist/assets/ServersPage-EHYBPHCn.js.map +0 -1
- package/frontend/dist/assets/SettingsPage-S3Sjrsdr.js +0 -12
- package/frontend/dist/assets/SettingsPage-S3Sjrsdr.js.map +0 -1
- package/frontend/dist/assets/framework-vendor-DeqnZ0v6.js +0 -61
- package/frontend/dist/assets/framework-vendor-DeqnZ0v6.js.map +0 -1
- package/frontend/dist/assets/index-Cm_FKd7K.js +0 -3
- package/frontend/dist/assets/index-Cm_FKd7K.js.map +0 -1
- package/frontend/dist/assets/useSettingsData-DPg3UYfr.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupService.js","sourceRoot":"","sources":["../../src/services/groupService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAwC,EAAwB,EAAE;IACtG,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,wDAAwD;YACxD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC1E,CAAC;QACD,6EAA6E;QAC7E,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;YAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;SACrC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAW,EAAE;IAChD,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;IAEtE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,QAAQ,CAAC;AAC9C,CAAC,CAAC;AAEF,iBAAiB;AACjB,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAAuB,EAAE;IACxD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1E,CAAC,CAAC;AAEF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAW,EAA+B,EAAE;IACnF,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,aAAa,GAAG;QACpB,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,IAAI,IAAI;QACnE,oBAAoB,EAAE,YAAY,EAAE,OAAO,EAAE,oBAAoB,IAAI,IAAI;KAC1E,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,CACL,MAAM,CAAC,IAAI,CACT,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAC1F,IAAI,SAAS,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,IAAY,EACZ,WAAoB,EACpB,UAA2C,EAAE,EAC7C,KAAc,EACU,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,+CAA+C;QAC/C,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sEAAsE;QACtE,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAyB,iBAAiB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CACnF,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CACnC,CAAC;QAEF,MAAM,QAAQ,GAAW;YACvB,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI;YACJ,WAAW;YACX,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,KAAK,IAAI,OAAO;SACxB,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAU,EAAE,IAAqB,EAA0B,EAAE;IAC7F,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,YAAY,EAAE,CAAC;YACjB,iBAAiB,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,2CAA2C;AAC3C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,OAAe,EACf,OAAwC,EAChB,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gDAAgD;QAChD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAC7D,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CACnC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAE/E,IAAI,YAAY,EAAE,CAAC;YACjB,iBAAiB,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,iBAAiB;AACjB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAU,EAAoB,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAE/B,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAe,EACf,UAAkB,EACM,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/D,2CAA2C;QAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YAC1D,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7F,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAEpF,IAAI,YAAY,EAAE,CAAC;gBACjB,iBAAiB,EAAE,CAAC;YACtB,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,iBAAiB,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,UAAU,aAAa,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,OAAe,EACf,UAAkB,EACM,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAEzF,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,UAAU,eAAe,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAe,EAAqB,EAAE;IAC5E,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,OAAe,EACf,UAAkB,EACuB,EAAE;IAC3C,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,OAAe,EAAiC,EAAE;IAC9F,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,OAAe,EACf,UAAkB,EAClB,KAAuB,EACC,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/D,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC9E,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,CAAC,sBAAsB;QACrC,CAAC;QAED,gDAAgD;QAChD,iBAAiB,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QAE7C,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEpF,IAAI,YAAY,EAAE,CAAC;YACjB,iBAAiB,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,UAAU,aAAa,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"groupService.js","sourceRoot":"","sources":["../../src/services/groupService.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'
|
|
|
10
10
|
import { StreamableHTTPClientTransport, } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
11
11
|
import { normalizeHeaders } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
12
12
|
import { createFetchWithProxy, getProxyConfigFromEnv } from './proxy.js';
|
|
13
|
+
import { assertSafeUrl, createRedirectValidatingFetch } from '../utils/ssrf.js';
|
|
14
|
+
import { getUserDao } from '../dao/index.js';
|
|
13
15
|
import { expandEnvVars, replaceEnvVars, getNameSeparator } from '../config/index.js';
|
|
14
16
|
import config from '../config/index.js';
|
|
15
17
|
import { getGroup } from './sseService.js';
|
|
@@ -27,7 +29,7 @@ import { maybeCompressToolResult } from './toolResultCompressionService.js';
|
|
|
27
29
|
import { assertHostedToolAllowed, filterHostedTools, reserveHostedToolCall, settleHostedToolCall, } from './hostedAuthService.js';
|
|
28
30
|
import { formatErrorForLogging, sanitizeStringForLogging, summarizeErrorForLogging, } from '../utils/serialization.js';
|
|
29
31
|
import { MCP_APPS_CAPABILITIES, filterModelVisibleTools, hasMcpAppsCapability, isAppOnlyTool, stripMcpAppsMetadata, } from '../utils/mcpApps.js';
|
|
30
|
-
import { supportsCacheRefresh, injectRefreshFlag, clearRunnerCache
|
|
32
|
+
import { supportsCacheRefresh, injectRefreshFlag, clearRunnerCache } from '../utils/cacheUtils.js';
|
|
31
33
|
const servers = {};
|
|
32
34
|
import { setupClientKeepAlive } from './keepAliveService.js';
|
|
33
35
|
/**
|
|
@@ -654,7 +656,9 @@ const summarizePromptForLogging = (prompt) => {
|
|
|
654
656
|
return summary;
|
|
655
657
|
};
|
|
656
658
|
export const collectPassthroughHeaders = (requestHeaders, passthroughHeaderNames) => {
|
|
657
|
-
if (!requestHeaders ||
|
|
659
|
+
if (!requestHeaders ||
|
|
660
|
+
!Array.isArray(passthroughHeaderNames) ||
|
|
661
|
+
passthroughHeaderNames.length === 0) {
|
|
658
662
|
return {};
|
|
659
663
|
}
|
|
660
664
|
const passthroughHeaders = {};
|
|
@@ -696,11 +700,23 @@ export const createTransportFromConfig = async (name, conf) => {
|
|
|
696
700
|
...process.env,
|
|
697
701
|
...replaceEnvVars(conf.env || {}),
|
|
698
702
|
};
|
|
703
|
+
// SSRF guard: block URL/streamable-http transports from reaching
|
|
704
|
+
// loopback / RFC1918 / link-local targets (e.g. cloud metadata service).
|
|
705
|
+
// Admin-owned servers may legitimately target internal services, so they
|
|
706
|
+
// skip the internal-IP blocklist. allowInternal also governs per-hop
|
|
707
|
+
// redirect validation in createRedirectValidatingFetch below.
|
|
708
|
+
const ownerUser = conf.owner
|
|
709
|
+
? await getUserDao().findByUsername(conf.owner)
|
|
710
|
+
: null;
|
|
711
|
+
const allowInternal = !!ownerUser?.isAdmin;
|
|
712
|
+
if (conf.url) {
|
|
713
|
+
await assertSafeUrl(conf.url, { allowInternal });
|
|
714
|
+
}
|
|
699
715
|
if (conf.type === 'streamable-http') {
|
|
700
716
|
const options = {};
|
|
701
717
|
const headers = conf.headers ? replaceEnvVars(conf.headers, env) : {};
|
|
702
718
|
const baseFetch = createFetchWithProxy(getProxyConfigFromEnv(env));
|
|
703
|
-
const requestAwareFetch = createRequestContextAwareFetch(baseFetch, conf.passthroughHeaders);
|
|
719
|
+
const requestAwareFetch = createRedirectValidatingFetch(createRequestContextAwareFetch(baseFetch, conf.passthroughHeaders), allowInternal);
|
|
704
720
|
if (Object.keys(headers).length > 0) {
|
|
705
721
|
options.requestInit = {
|
|
706
722
|
headers,
|
|
@@ -720,7 +736,7 @@ export const createTransportFromConfig = async (name, conf) => {
|
|
|
720
736
|
const options = {};
|
|
721
737
|
const headers = conf.headers ? replaceEnvVars(conf.headers, env) : {};
|
|
722
738
|
const baseFetch = createFetchWithProxy(getProxyConfigFromEnv(env));
|
|
723
|
-
const requestAwareFetch = createRequestContextAwareFetch(baseFetch, conf.passthroughHeaders);
|
|
739
|
+
const requestAwareFetch = createRedirectValidatingFetch(createRequestContextAwareFetch(baseFetch, conf.passthroughHeaders), allowInternal);
|
|
724
740
|
if (Object.keys(headers).length > 0) {
|
|
725
741
|
options.eventSourceInit = {
|
|
726
742
|
headers,
|
|
@@ -908,8 +924,7 @@ export const initializeClientsFromSettings = async (isInit, serverName, options)
|
|
|
908
924
|
const existingServer = existingServerInfos.find((s) => s.name === name);
|
|
909
925
|
const isDifferentServer = Boolean(serverName) && serverName !== name;
|
|
910
926
|
if (existingServer &&
|
|
911
|
-
(isDifferentServer ||
|
|
912
|
-
(!serverName && existingServer.status === 'connected'))) {
|
|
927
|
+
(isDifferentServer || (!serverName && existingServer.status === 'connected'))) {
|
|
913
928
|
nextServerInfos.push({
|
|
914
929
|
...existingServer,
|
|
915
930
|
enabled: expandedConf.enabled === undefined ? true : expandedConf.enabled,
|
|
@@ -988,6 +1003,9 @@ export const initializeClientsFromSettings = async (isInit, serverName, options)
|
|
|
988
1003
|
serverInfo.tools = mcpTools;
|
|
989
1004
|
serverInfo.openApiClient = openApiClient;
|
|
990
1005
|
console.log(`Successfully initialized OpenAPI server: ${name} with ${mcpTools.length} tools`);
|
|
1006
|
+
// Broadcast now that tools are loaded. OpenAPI servers expose tools
|
|
1007
|
+
// only (no prompts/resources). See the standard-path note above.
|
|
1008
|
+
broadcastToolListChanged();
|
|
991
1009
|
// Save tools as vector embeddings for search
|
|
992
1010
|
syncToolsAsVectorEmbeddings(name, mcpTools, {
|
|
993
1011
|
reportProgress: options?.reportEmbeddingProgress === true && serverName === name,
|
|
@@ -1076,6 +1094,11 @@ export const initializeClientsFromSettings = async (isInit, serverName, options)
|
|
|
1076
1094
|
updateServerToolsCache(serverInfo, tools.tools, {
|
|
1077
1095
|
reportEmbeddingProgress: options?.reportEmbeddingProgress === true && serverName === name,
|
|
1078
1096
|
});
|
|
1097
|
+
// Broadcast only after tools are actually loaded into the cache.
|
|
1098
|
+
// The connection completes asynchronously, so callers (e.g. enabling
|
|
1099
|
+
// a server) cannot broadcast a correct tool list themselves — doing so
|
|
1100
|
+
// would race ahead of this point and push a stale (empty) list.
|
|
1101
|
+
broadcastToolListChanged();
|
|
1079
1102
|
})
|
|
1080
1103
|
.catch((error) => {
|
|
1081
1104
|
console.error('Failed to list tools for server', {
|
|
@@ -1091,6 +1114,7 @@ export const initializeClientsFromSettings = async (isInit, serverName, options)
|
|
|
1091
1114
|
.then((prompts) => {
|
|
1092
1115
|
console.log(`Successfully listed ${prompts.prompts.length} prompts for server: ${name}`);
|
|
1093
1116
|
updateServerPromptsCache(serverInfo, prompts.prompts);
|
|
1117
|
+
broadcastPromptListChanged();
|
|
1094
1118
|
})
|
|
1095
1119
|
.catch((error) => {
|
|
1096
1120
|
console.error('Failed to list prompts for server', {
|
|
@@ -1106,6 +1130,7 @@ export const initializeClientsFromSettings = async (isInit, serverName, options)
|
|
|
1106
1130
|
.then((resources) => {
|
|
1107
1131
|
console.log(`Successfully listed ${resources.resources.length} resources for server: ${name}`);
|
|
1108
1132
|
updateServerResourcesCache(serverInfo, resources.resources);
|
|
1133
|
+
broadcastResourceListChanged();
|
|
1109
1134
|
})
|
|
1110
1135
|
.catch((error) => {
|
|
1111
1136
|
console.error('Failed to list resources for server', {
|
|
@@ -1605,6 +1630,31 @@ const normalizeToolNameForServer = (serverName, toolName) => {
|
|
|
1605
1630
|
const prefix = `${serverName}${getNameSeparator()}`;
|
|
1606
1631
|
return toolName.startsWith(prefix) ? toolName.substring(prefix.length) : toolName;
|
|
1607
1632
|
};
|
|
1633
|
+
const getGroupLookupName = (group) => {
|
|
1634
|
+
if (group?.startsWith('$smart/')) {
|
|
1635
|
+
return group.substring(7) || undefined;
|
|
1636
|
+
}
|
|
1637
|
+
return group;
|
|
1638
|
+
};
|
|
1639
|
+
const getExposedServerName = (serverName, serverConfig) => {
|
|
1640
|
+
return serverConfig?.alias?.trim() || serverName;
|
|
1641
|
+
};
|
|
1642
|
+
const replacePrefixedServerName = (name, fromServerName, toServerName) => {
|
|
1643
|
+
if (fromServerName === toServerName) {
|
|
1644
|
+
return name;
|
|
1645
|
+
}
|
|
1646
|
+
const separator = getNameSeparator();
|
|
1647
|
+
const prefix = `${fromServerName}${separator}`;
|
|
1648
|
+
return name.startsWith(prefix)
|
|
1649
|
+
? `${toServerName}${separator}${name.substring(prefix.length)}`
|
|
1650
|
+
: name;
|
|
1651
|
+
};
|
|
1652
|
+
const projectNameForGroup = (name, serverName, serverConfig) => {
|
|
1653
|
+
return replacePrefixedServerName(name, serverName, getExposedServerName(serverName, serverConfig));
|
|
1654
|
+
};
|
|
1655
|
+
const resolveNameFromGroup = (name, serverName, serverConfig) => {
|
|
1656
|
+
return replacePrefixedServerName(name, getExposedServerName(serverName, serverConfig), serverName);
|
|
1657
|
+
};
|
|
1608
1658
|
const findToolOnServer = (serverInfo, toolName, allowRawName) => {
|
|
1609
1659
|
return serverInfo.tools.find((tool) => tool.name === toolName ||
|
|
1610
1660
|
(allowRawName && normalizeToolNameForServer(serverInfo.name, tool.name) === toolName));
|
|
@@ -1614,7 +1664,55 @@ const assertToolAvailableForRoute = (tool, appsRouteContext) => {
|
|
|
1614
1664
|
throw new Error(`Tool '${tool.name}' is only available to MCP Apps`);
|
|
1615
1665
|
}
|
|
1616
1666
|
};
|
|
1617
|
-
const
|
|
1667
|
+
const resolveToolInGroup = async (group, toolName, allowRawName) => {
|
|
1668
|
+
const lookupGroup = getGroupLookupName(group);
|
|
1669
|
+
if (!lookupGroup) {
|
|
1670
|
+
return undefined;
|
|
1671
|
+
}
|
|
1672
|
+
const { filteredServerInfos, serverConfigsByName } = await getFilteredServerInfosForGroup(lookupGroup);
|
|
1673
|
+
for (const serverInfo of filteredServerInfos) {
|
|
1674
|
+
if (serverInfo.status !== 'connected' || serverInfo.enabled === false) {
|
|
1675
|
+
continue;
|
|
1676
|
+
}
|
|
1677
|
+
const serverConfig = serverConfigsByName.get(serverInfo.name);
|
|
1678
|
+
const internalToolName = resolveNameFromGroup(toolName, serverInfo.name, serverConfig);
|
|
1679
|
+
const tool = findToolOnServer(serverInfo, internalToolName, allowRawName);
|
|
1680
|
+
if (!tool) {
|
|
1681
|
+
continue;
|
|
1682
|
+
}
|
|
1683
|
+
const filteredTools = await filterToolsByGroup(lookupGroup, serverInfo.name, [tool], serverConfig);
|
|
1684
|
+
if (filteredTools.length === 0) {
|
|
1685
|
+
continue;
|
|
1686
|
+
}
|
|
1687
|
+
return { serverInfo, toolName: internalToolName, tool };
|
|
1688
|
+
}
|
|
1689
|
+
return undefined;
|
|
1690
|
+
};
|
|
1691
|
+
async function resolvePromptInGroup(group, promptName) {
|
|
1692
|
+
const lookupGroup = getGroupLookupName(group);
|
|
1693
|
+
if (!lookupGroup) {
|
|
1694
|
+
return undefined;
|
|
1695
|
+
}
|
|
1696
|
+
const { filteredServerInfos, serverConfigsByName } = await getFilteredServerInfosForGroup(lookupGroup);
|
|
1697
|
+
for (const serverInfo of filteredServerInfos) {
|
|
1698
|
+
if (serverInfo.status !== 'connected' || serverInfo.enabled === false) {
|
|
1699
|
+
continue;
|
|
1700
|
+
}
|
|
1701
|
+
const serverConfig = serverConfigsByName.get(serverInfo.name);
|
|
1702
|
+
const internalPromptName = resolveNameFromGroup(promptName, serverInfo.name, serverConfig);
|
|
1703
|
+
const prompt = serverInfo.prompts.find((item) => item.name === internalPromptName);
|
|
1704
|
+
if (!prompt) {
|
|
1705
|
+
continue;
|
|
1706
|
+
}
|
|
1707
|
+
const filteredPrompts = await filterPromptsByGroup(lookupGroup, serverInfo.name, [prompt], serverConfig);
|
|
1708
|
+
if (filteredPrompts.length === 0) {
|
|
1709
|
+
continue;
|
|
1710
|
+
}
|
|
1711
|
+
return { serverInfo, promptName: internalPromptName };
|
|
1712
|
+
}
|
|
1713
|
+
return undefined;
|
|
1714
|
+
}
|
|
1715
|
+
const projectToolForDownstream = (serverName, tool, appsRouteContext, serverConfig) => {
|
|
1618
1716
|
if (!appsRouteContext.enabled && isAppOnlyTool(tool)) {
|
|
1619
1717
|
return undefined;
|
|
1620
1718
|
}
|
|
@@ -1623,7 +1721,7 @@ const projectToolForDownstream = (serverName, tool, appsRouteContext) => {
|
|
|
1623
1721
|
...projectedTool,
|
|
1624
1722
|
name: appsRouteContext.enabled
|
|
1625
1723
|
? normalizeToolNameForServer(serverName, projectedTool.name)
|
|
1626
|
-
: projectedTool.name,
|
|
1724
|
+
: projectNameForGroup(projectedTool.name, serverName, serverConfig),
|
|
1627
1725
|
};
|
|
1628
1726
|
};
|
|
1629
1727
|
export const handleListToolsRequest = async (_, extra) => {
|
|
@@ -1640,10 +1738,11 @@ export const handleListToolsRequest = async (_, extra) => {
|
|
|
1640
1738
|
const allTools = [];
|
|
1641
1739
|
for (const serverInfo of filteredServerInfos) {
|
|
1642
1740
|
if (serverInfo.tools && serverInfo.tools.length > 0) {
|
|
1741
|
+
const groupServerConfig = serverConfigsByName.get(serverInfo.name);
|
|
1643
1742
|
// Filter tools based on server configuration
|
|
1644
1743
|
let tools = await filterToolsByConfig(serverInfo.name, serverInfo.tools);
|
|
1645
1744
|
// If this is a group request, apply group-level tool filtering
|
|
1646
|
-
tools = await filterToolsByGroup(group, serverInfo.name, tools,
|
|
1745
|
+
tools = await filterToolsByGroup(group, serverInfo.name, tools, groupServerConfig);
|
|
1647
1746
|
// Apply custom descriptions from server configuration
|
|
1648
1747
|
const serverConfig = await getServerDao().findById(serverInfo.name);
|
|
1649
1748
|
const toolsWithCustomDescriptions = tools.map((tool) => {
|
|
@@ -1654,7 +1753,7 @@ export const handleListToolsRequest = async (_, extra) => {
|
|
|
1654
1753
|
};
|
|
1655
1754
|
});
|
|
1656
1755
|
allTools.push(...toolsWithCustomDescriptions.flatMap((tool) => {
|
|
1657
|
-
const projectedTool = projectToolForDownstream(serverInfo.name, tool, appsRouteContext);
|
|
1756
|
+
const projectedTool = projectToolForDownstream(serverInfo.name, tool, appsRouteContext, groupServerConfig);
|
|
1658
1757
|
return projectedTool ? [projectedTool] : [];
|
|
1659
1758
|
}));
|
|
1660
1759
|
}
|
|
@@ -1674,7 +1773,10 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
1674
1773
|
// Extract group and key info from request context (set by SSE/HTTP handlers)
|
|
1675
1774
|
// Fallback to extra for backward compatibility (e.g., direct API calls)
|
|
1676
1775
|
const group = requestContextService.getGroupContext() || extra?.group || getGroup(sessionId) || undefined;
|
|
1677
|
-
const username = requestContextService.getUsernameContext() ||
|
|
1776
|
+
const username = requestContextService.getUsernameContext() ||
|
|
1777
|
+
extra?.username ||
|
|
1778
|
+
(requestContextService.getKeyKindContext() === 'system' ? 'system' : undefined) ||
|
|
1779
|
+
undefined;
|
|
1678
1780
|
let appsRouteContext = { enabled: false };
|
|
1679
1781
|
const keyId = bearerKeyContext.keyId || extra?.keyId || undefined;
|
|
1680
1782
|
const keyName = bearerKeyContext.keyName || extra?.keyName || undefined;
|
|
@@ -1715,12 +1817,22 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
1715
1817
|
}
|
|
1716
1818
|
const { arguments: toolArgs } = request.params.arguments || {};
|
|
1717
1819
|
let targetServerInfo;
|
|
1820
|
+
let targetToolName = toolName;
|
|
1821
|
+
let targetTool;
|
|
1718
1822
|
if (appsRouteContext.enabled) {
|
|
1719
1823
|
targetServerInfo = appsRouteContext.serverInfo;
|
|
1720
1824
|
}
|
|
1721
1825
|
else if (extra && extra.server) {
|
|
1722
1826
|
targetServerInfo = getServerByName(extra.server);
|
|
1723
1827
|
}
|
|
1828
|
+
else if (group) {
|
|
1829
|
+
const groupTool = await resolveToolInGroup(group, toolName, appsRouteContext.enabled);
|
|
1830
|
+
if (groupTool) {
|
|
1831
|
+
targetServerInfo = groupTool.serverInfo;
|
|
1832
|
+
targetToolName = groupTool.toolName;
|
|
1833
|
+
targetTool = groupTool.tool;
|
|
1834
|
+
}
|
|
1835
|
+
}
|
|
1724
1836
|
else {
|
|
1725
1837
|
// Find the first server that has this tool
|
|
1726
1838
|
targetServerInfo = serverInfos.find((serverInfo) => serverInfo.status === 'connected' &&
|
|
@@ -1731,7 +1843,7 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
1731
1843
|
throw new Error(`No available servers found with tool: ${toolName}`);
|
|
1732
1844
|
}
|
|
1733
1845
|
// Check if the tool exists on the server
|
|
1734
|
-
const tool = findToolOnServer(targetServerInfo,
|
|
1846
|
+
const tool = targetTool ?? findToolOnServer(targetServerInfo, targetToolName, appsRouteContext.enabled);
|
|
1735
1847
|
if (!tool) {
|
|
1736
1848
|
throw new Error(`Tool '${toolName}' not found on server '${targetServerInfo.name}'`);
|
|
1737
1849
|
}
|
|
@@ -1743,12 +1855,12 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
1743
1855
|
// Use toolArgs if it has properties, otherwise fallback to request.params.arguments
|
|
1744
1856
|
const finalArgs = toolArgs && typeof toolArgs === 'object' ? toolArgs : {};
|
|
1745
1857
|
console.log('Invoking OpenAPI tool', {
|
|
1746
|
-
toolName,
|
|
1858
|
+
toolName: targetToolName,
|
|
1747
1859
|
serverName: targetServerInfo.name,
|
|
1748
1860
|
arguments: summarizeArgumentsForLogging(finalArgs),
|
|
1749
1861
|
});
|
|
1750
1862
|
// Remove server prefix from tool name if present
|
|
1751
|
-
const cleanToolName = normalizeToolNameForServer(targetServerInfo.name,
|
|
1863
|
+
const cleanToolName = normalizeToolNameForServer(targetServerInfo.name, targetToolName);
|
|
1752
1864
|
// Extract passthrough headers from extra or request context
|
|
1753
1865
|
let passthroughHeaders;
|
|
1754
1866
|
let requestHeaders = null;
|
|
@@ -1821,11 +1933,11 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
1821
1933
|
// Use toolArgs if it has properties, otherwise fallback to request.params.arguments
|
|
1822
1934
|
const finalArgs = toolArgs && typeof toolArgs === 'object' ? toolArgs : {};
|
|
1823
1935
|
console.log('Invoking tool', {
|
|
1824
|
-
toolName,
|
|
1936
|
+
toolName: targetToolName,
|
|
1825
1937
|
serverName: targetServerInfo.name,
|
|
1826
1938
|
arguments: summarizeArgumentsForLogging(finalArgs),
|
|
1827
1939
|
});
|
|
1828
|
-
const cleanToolName = normalizeToolNameForServer(targetServerInfo.name,
|
|
1940
|
+
const cleanToolName = normalizeToolNameForServer(targetServerInfo.name, targetToolName);
|
|
1829
1941
|
await reserveHostedIfNeeded(targetServerInfo.name, cleanToolName);
|
|
1830
1942
|
const result = await callToolWithReconnect(targetServerInfo, {
|
|
1831
1943
|
name: cleanToolName,
|
|
@@ -1864,12 +1976,17 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
1864
1976
|
});
|
|
1865
1977
|
}
|
|
1866
1978
|
// Regular tool handling
|
|
1979
|
+
const groupTool = !appsRouteContext.enabled && group
|
|
1980
|
+
? await resolveToolInGroup(group, request.params.name, appsRouteContext.enabled)
|
|
1981
|
+
: undefined;
|
|
1867
1982
|
const serverInfo = appsRouteContext.enabled
|
|
1868
1983
|
? appsRouteContext.serverInfo
|
|
1869
|
-
: getServerByTool(request.params.name);
|
|
1870
|
-
const
|
|
1871
|
-
|
|
1872
|
-
|
|
1984
|
+
: (groupTool?.serverInfo ?? (group ? undefined : getServerByTool(request.params.name)));
|
|
1985
|
+
const routeToolName = groupTool?.toolName ?? request.params.name;
|
|
1986
|
+
const tool = groupTool?.tool ??
|
|
1987
|
+
(serverInfo
|
|
1988
|
+
? findToolOnServer(serverInfo, routeToolName, appsRouteContext.enabled)
|
|
1989
|
+
: undefined);
|
|
1873
1990
|
if (!serverInfo || !tool) {
|
|
1874
1991
|
throw new Error(`Server not found: ${request.params.name}`);
|
|
1875
1992
|
}
|
|
@@ -1879,7 +1996,7 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
1879
1996
|
// For OpenAPI servers, use the OpenAPI client
|
|
1880
1997
|
const openApiClient = serverInfo.openApiClient;
|
|
1881
1998
|
// Remove server prefix from tool name if present
|
|
1882
|
-
const cleanToolName = normalizeToolNameForServer(serverInfo.name,
|
|
1999
|
+
const cleanToolName = normalizeToolNameForServer(serverInfo.name, routeToolName);
|
|
1883
2000
|
console.log('Invoking OpenAPI tool', {
|
|
1884
2001
|
toolName: cleanToolName,
|
|
1885
2002
|
serverName: serverInfo.name,
|
|
@@ -1955,7 +2072,7 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
1955
2072
|
if (!client) {
|
|
1956
2073
|
throw new Error(`Client not found for server: ${serverInfo.name}`);
|
|
1957
2074
|
}
|
|
1958
|
-
const cleanToolName = normalizeToolNameForServer(serverInfo.name,
|
|
2075
|
+
const cleanToolName = normalizeToolNameForServer(serverInfo.name, routeToolName);
|
|
1959
2076
|
await reserveHostedIfNeeded(serverInfo.name, cleanToolName);
|
|
1960
2077
|
const result = await callToolWithReconnect(serverInfo, { ...request.params, name: cleanToolName }, serverInfo.options || {});
|
|
1961
2078
|
await settleHostedIfNeeded({
|
|
@@ -2031,6 +2148,8 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
2031
2148
|
export const handleGetPromptRequest = async (request, extra) => {
|
|
2032
2149
|
try {
|
|
2033
2150
|
const { name, arguments: promptArgs } = request.params;
|
|
2151
|
+
const sessionId = extra?.sessionId || '';
|
|
2152
|
+
const group = extra?.group || getGroup(sessionId) || undefined;
|
|
2034
2153
|
// Check built-in prompts first
|
|
2035
2154
|
const builtinPrompt = await getBuiltinPromptDao().findByName(name);
|
|
2036
2155
|
if (builtinPrompt && builtinPrompt.enabled !== false) {
|
|
@@ -2051,9 +2170,17 @@ export const handleGetPromptRequest = async (request, extra) => {
|
|
|
2051
2170
|
};
|
|
2052
2171
|
}
|
|
2053
2172
|
let server;
|
|
2173
|
+
let promptNameForServer = name;
|
|
2054
2174
|
if (extra && extra.server) {
|
|
2055
2175
|
server = getServerByName(extra.server);
|
|
2056
2176
|
}
|
|
2177
|
+
else if (group) {
|
|
2178
|
+
const groupPrompt = await resolvePromptInGroup(group, name);
|
|
2179
|
+
if (groupPrompt) {
|
|
2180
|
+
server = groupPrompt.serverInfo;
|
|
2181
|
+
promptNameForServer = groupPrompt.promptName;
|
|
2182
|
+
}
|
|
2183
|
+
}
|
|
2057
2184
|
else {
|
|
2058
2185
|
// Find the first server that has this prompt
|
|
2059
2186
|
server = serverInfos.find((serverInfo) => serverInfo.status === 'connected' &&
|
|
@@ -2066,7 +2193,9 @@ export const handleGetPromptRequest = async (request, extra) => {
|
|
|
2066
2193
|
// Remove server prefix from prompt name if present
|
|
2067
2194
|
const separator = getNameSeparator();
|
|
2068
2195
|
const prefix = `${server.name}${separator}`;
|
|
2069
|
-
const cleanPromptName =
|
|
2196
|
+
const cleanPromptName = promptNameForServer.startsWith(prefix)
|
|
2197
|
+
? promptNameForServer.substring(prefix.length)
|
|
2198
|
+
: promptNameForServer;
|
|
2070
2199
|
const promptParams = {
|
|
2071
2200
|
name: cleanPromptName || '',
|
|
2072
2201
|
arguments: promptArgs,
|
|
@@ -2112,6 +2241,7 @@ export const handleListPromptsRequest = async (_, extra) => {
|
|
|
2112
2241
|
const { filteredServerInfos, serverConfigsByName } = await getFilteredServerInfosForGroup(group);
|
|
2113
2242
|
for (const serverInfo of filteredServerInfos) {
|
|
2114
2243
|
if (serverInfo.prompts && serverInfo.prompts.length > 0) {
|
|
2244
|
+
const groupServerConfig = serverConfigsByName.get(serverInfo.name);
|
|
2115
2245
|
// Filter prompts based on server configuration
|
|
2116
2246
|
const serverConfig = await getServerDao().findById(serverInfo.name);
|
|
2117
2247
|
let enabledPrompts = serverInfo.prompts;
|
|
@@ -2122,12 +2252,13 @@ export const handleListPromptsRequest = async (_, extra) => {
|
|
|
2122
2252
|
return promptConfig?.enabled !== false;
|
|
2123
2253
|
});
|
|
2124
2254
|
}
|
|
2125
|
-
enabledPrompts = await filterPromptsByGroup(group, serverInfo.name, enabledPrompts,
|
|
2255
|
+
enabledPrompts = await filterPromptsByGroup(group, serverInfo.name, enabledPrompts, groupServerConfig);
|
|
2126
2256
|
// Apply custom descriptions from server configuration
|
|
2127
2257
|
const promptsWithCustomDescriptions = enabledPrompts.map((prompt) => {
|
|
2128
2258
|
const promptConfig = serverConfig?.prompts?.[prompt.name];
|
|
2129
2259
|
return normalizePromptForList({
|
|
2130
2260
|
...prompt,
|
|
2261
|
+
name: projectNameForGroup(prompt.name, serverInfo.name, groupServerConfig),
|
|
2131
2262
|
description: promptConfig?.description || prompt.description, // Use custom description if available
|
|
2132
2263
|
});
|
|
2133
2264
|
});
|