@samanhappy/mcphub 1.1.2 → 1.1.3

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 (71) hide show
  1. package/README.fr.md +4 -0
  2. package/README.md +4 -0
  3. package/README.zh.md +2 -0
  4. package/dist/cli/http.js +54 -1
  5. package/dist/cli/http.js.map +1 -1
  6. package/dist/controllers/serverController.js +17 -2
  7. package/dist/controllers/serverController.js.map +1 -1
  8. package/dist/dao/SystemConfigDaoDbImpl.js +3 -0
  9. package/dist/dao/SystemConfigDaoDbImpl.js.map +1 -1
  10. package/dist/db/entities/SystemConfig.js +4 -0
  11. package/dist/db/entities/SystemConfig.js.map +1 -1
  12. package/dist/services/cimdClientService.js +2 -1
  13. package/dist/services/cimdClientService.js.map +1 -1
  14. package/dist/services/mcpService.js +54 -15
  15. package/dist/services/mcpService.js.map +1 -1
  16. package/dist/services/sseService.js +2 -2
  17. package/dist/services/sseService.js.map +1 -1
  18. package/dist/utils/migration.js +1 -0
  19. package/dist/utils/migration.js.map +1 -1
  20. package/dist/utils/ssrf.js +47 -12
  21. package/dist/utils/ssrf.js.map +1 -1
  22. package/frontend/dist/assets/{ActivityPage-DFLMe7o2.js → ActivityPage-Bs0YrAhj.js} +2 -2
  23. package/frontend/dist/assets/{ActivityPage-DFLMe7o2.js.map → ActivityPage-Bs0YrAhj.js.map} +1 -1
  24. package/frontend/dist/assets/{CopyClientConfigDialog-DukyyXVp.js → CopyClientConfigDialog-TcVaJHaV.js} +2 -2
  25. package/frontend/dist/assets/{CopyClientConfigDialog-DukyyXVp.js.map → CopyClientConfigDialog-TcVaJHaV.js.map} +1 -1
  26. package/frontend/dist/assets/{CredentialsPage-BpBCEmEE.js → CredentialsPage-Cnd6MF-3.js} +2 -2
  27. package/frontend/dist/assets/{CredentialsPage-BpBCEmEE.js.map → CredentialsPage-Cnd6MF-3.js.map} +1 -1
  28. package/frontend/dist/assets/{Dashboard-DjZkbAPt.js → Dashboard--skdgzau.js} +2 -2
  29. package/frontend/dist/assets/{Dashboard-DjZkbAPt.js.map → Dashboard--skdgzau.js.map} +1 -1
  30. package/frontend/dist/assets/{EndpointCopy-Bv-_FPmR.js → EndpointCopy-Dr-iLvMr.js} +2 -2
  31. package/frontend/dist/assets/{EndpointCopy-Bv-_FPmR.js.map → EndpointCopy-Dr-iLvMr.js.map} +1 -1
  32. package/frontend/dist/assets/{GroupsPage-B8BWRIWv.js → GroupsPage-CSIfAW7V.js} +2 -2
  33. package/frontend/dist/assets/{GroupsPage-B8BWRIWv.js.map → GroupsPage-CSIfAW7V.js.map} +1 -1
  34. package/frontend/dist/assets/{LoginPage-OH73zcbT.js → LoginPage-DwnZEV5T.js} +2 -2
  35. package/frontend/dist/assets/{LoginPage-OH73zcbT.js.map → LoginPage-DwnZEV5T.js.map} +1 -1
  36. package/frontend/dist/assets/{LogsPage-B6P_uQvL.js → LogsPage-CTstXCQT.js} +2 -2
  37. package/frontend/dist/assets/{LogsPage-B6P_uQvL.js.map → LogsPage-CTstXCQT.js.map} +1 -1
  38. package/frontend/dist/assets/{MarketPage-CKjkgZpe.js → MarketPage-IbsIGvoI.js} +2 -2
  39. package/frontend/dist/assets/{MarketPage-CKjkgZpe.js.map → MarketPage-IbsIGvoI.js.map} +1 -1
  40. package/frontend/dist/assets/{OAuthConsentPage-DjvtbLnm.js → OAuthConsentPage-DawUB5r6.js} +2 -2
  41. package/frontend/dist/assets/{OAuthConsentPage-DjvtbLnm.js.map → OAuthConsentPage-DawUB5r6.js.map} +1 -1
  42. package/frontend/dist/assets/{PromptsPage-CCMb9OH2.js → PromptsPage-Dim3CdKg.js} +2 -2
  43. package/frontend/dist/assets/{PromptsPage-CCMb9OH2.js.map → PromptsPage-Dim3CdKg.js.map} +1 -1
  44. package/frontend/dist/assets/{ResourcesPage-BERaKn0d.js → ResourcesPage-zcP5M9pv.js} +2 -2
  45. package/frontend/dist/assets/{ResourcesPage-BERaKn0d.js.map → ResourcesPage-zcP5M9pv.js.map} +1 -1
  46. package/frontend/dist/assets/{ServersPage-BNsFiZez.js → ServersPage-CxucQkR-.js} +4 -4
  47. package/frontend/dist/assets/{ServersPage-BNsFiZez.js.map → ServersPage-CxucQkR-.js.map} +1 -1
  48. package/frontend/dist/assets/SettingsPage-CoAt9Wha.js +14 -0
  49. package/frontend/dist/assets/SettingsPage-CoAt9Wha.js.map +1 -0
  50. package/frontend/dist/assets/{StatusDot-IWYCjv_t.js → StatusDot-nh6JXzfm.js} +2 -2
  51. package/frontend/dist/assets/{StatusDot-IWYCjv_t.js.map → StatusDot-nh6JXzfm.js.map} +1 -1
  52. package/frontend/dist/assets/{ToggleGroup-B_NGGU8p.js → ToggleGroup-CeiSM3PL.js} +2 -2
  53. package/frontend/dist/assets/{ToggleGroup-B_NGGU8p.js.map → ToggleGroup-CeiSM3PL.js.map} +1 -1
  54. package/frontend/dist/assets/{UsersPage-D9QdH-ma.js → UsersPage-DLq5cgUz.js} +2 -2
  55. package/frontend/dist/assets/{UsersPage-D9QdH-ma.js.map → UsersPage-DLq5cgUz.js.map} +1 -1
  56. package/frontend/dist/assets/{clipboard-CFeeSZ4D.js → clipboard-CmkeMDp6.js} +2 -2
  57. package/frontend/dist/assets/{clipboard-CFeeSZ4D.js.map → clipboard-CmkeMDp6.js.map} +1 -1
  58. package/frontend/dist/assets/index-dacgBASO.js +3 -0
  59. package/frontend/dist/assets/index-dacgBASO.js.map +1 -0
  60. package/frontend/dist/assets/{resourceService-BoJqsssR.js → resourceService-Nk5qQbQ0.js} +2 -2
  61. package/frontend/dist/assets/{resourceService-BoJqsssR.js.map → resourceService-Nk5qQbQ0.js.map} +1 -1
  62. package/frontend/dist/assets/{useCostData-Dld-MisV.js → useCostData-BgXlKVml.js} +2 -2
  63. package/frontend/dist/assets/{useCostData-Dld-MisV.js.map → useCostData-BgXlKVml.js.map} +1 -1
  64. package/frontend/dist/assets/{variableDetection-C1abuc-p.js → variableDetection-CUnJ5xdC.js} +2 -2
  65. package/frontend/dist/assets/{variableDetection-C1abuc-p.js.map → variableDetection-CUnJ5xdC.js.map} +1 -1
  66. package/frontend/dist/index.html +1 -1
  67. package/package.json +1 -1
  68. package/frontend/dist/assets/SettingsPage-PiL7o9b9.js +0 -12
  69. package/frontend/dist/assets/SettingsPage-PiL7o9b9.js.map +0 -1
  70. package/frontend/dist/assets/index-RTKBtgGw.js +0 -3
  71. package/frontend/dist/assets/index-RTKBtgGw.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cimdClientService.js","sourceRoot":"","sources":["../../src/services/cimdClientService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cimdClientService.js","sourceRoot":"","sources":["../../src/services/cimdClientService.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { getMcpRequestGroup } from '../utils/mcpRequestGroup.js';
4
4
  import { LegacyMcpClient } from '../clients/legacyMcpClient.js';
5
5
  import { LEGACY_PROTOCOL_VERSIONS } from '../utils/mcpProtocol.js';
6
6
  import { AsyncLocalStorage } from 'node:async_hooks';
7
+ import { createHash } from 'node:crypto';
7
8
  import { canAccessGroupRoute } from '../utils/groupAccess.js';
8
9
  import { canServeToolRequests } from '../utils/serverAvailability.js';
9
10
  import { PrincipalRuntimeService } from './principalRuntimeService.js';
@@ -721,16 +722,28 @@ const removeClientState = (id) => {
721
722
  for (const client of state.cookieClients)
722
723
  client.clearSessionCookies(id);
723
724
  };
724
- const acquireClientState = (serverInfo) => {
725
+ const acquireClientState = (serverInfo, openAiSession) => {
725
726
  const contextService = RequestContextService.getInstance();
726
727
  const scope = contextService.getRequestContext()?.clientStateScope;
727
- const handle = contextService.getHeader('x-mcphub-state-id');
728
- if (!scope ||
729
- typeof handle !== 'string' ||
730
- !/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(handle)) {
731
- throw new Error('Stateful tools on stateless MCP require authenticated bearer access and X-MCPHub-State-Id (UUID v4)');
728
+ const explicitHandle = contextService.getHeader('x-mcphub-state-id');
729
+ if (!scope) {
730
+ throw new Error('Stateful tools on stateless MCP require authenticated bearer access and an application state handle');
731
+ }
732
+ let handle;
733
+ if (explicitHandle !== undefined) {
734
+ if (typeof explicitHandle !== 'string' ||
735
+ !/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(explicitHandle)) {
736
+ throw new Error('X-MCPHub-State-Id must be a UUID v4');
737
+ }
738
+ handle = explicitHandle.toLowerCase();
739
+ }
740
+ else if (typeof openAiSession === 'string' && openAiSession.trim()) {
741
+ handle = `openai:${createHash('sha256').update(openAiSession).digest('hex')}`;
742
+ }
743
+ else {
744
+ throw new Error('Stateful tools on stateless MCP require X-MCPHub-State-Id (UUID v4) or _meta["openai/session"]');
732
745
  }
733
- const id = `client-state:${scope}:${handle.toLowerCase()}`;
746
+ const id = `client-state:${scope}:${handle}`;
734
747
  let state = clientStates.get(id);
735
748
  if (state && state.active === 0 && Date.now() - state.lastUsed >= CLIENT_STATE_IDLE_MS) {
736
749
  removeClientState(id);
@@ -3162,7 +3175,7 @@ const handleCallToolRequestImpl = async (request, extra) => {
3162
3175
  const getToolStateId = (info, legacyId) => {
3163
3176
  if (!requestContextService.getRequestContext()?.stateless)
3164
3177
  return legacyId;
3165
- clientStateLease ?? (clientStateLease = acquireClientState(info));
3178
+ clientStateLease ?? (clientStateLease = acquireClientState(info, request.params?._meta?.['openai/session']));
3166
3179
  return clientStateLease.id;
3167
3180
  };
3168
3181
  const reserveHostedIfNeeded = async (serverName, toolName) => {
@@ -3867,9 +3880,19 @@ const handleReadResourceRequestImpl = async (request, extra) => {
3867
3880
  ? { cacheMode: 'bypass' }
3868
3881
  : undefined;
3869
3882
  if (server?.client) {
3870
- result = readOptions
3871
- ? await server.client.readResource({ uri }, readOptions)
3872
- : await server.client.readResource({ uri });
3883
+ // A widget URI the upstream also lists in resources/list is read here, not in
3884
+ // the fallback loop below, so it needs the same idle guard: otherwise an
3885
+ // idle timer armed by an earlier read can close an on-demand upstream while
3886
+ // this read is still in flight.
3887
+ const releaseOnDemandRead = beginOnDemandToolCall(server);
3888
+ try {
3889
+ result = readOptions
3890
+ ? await server.client.readResource({ uri }, readOptions)
3891
+ : await server.client.readResource({ uri });
3892
+ }
3893
+ finally {
3894
+ releaseOnDemandRead?.();
3895
+ }
3873
3896
  if (!result || !Array.isArray(result.contents)) {
3874
3897
  throw new Error(`Failed to read resource: ${uri}`);
3875
3898
  }
@@ -3885,10 +3908,23 @@ const handleReadResourceRequestImpl = async (request, extra) => {
3885
3908
  ? [appsRouteContext.serverInfo]
3886
3909
  : (appsRouteContext.serverInfos ?? []);
3887
3910
  for (const candidate of candidates) {
3888
- if (!candidate.client) {
3889
- continue;
3890
- }
3911
+ // An on-demand candidate may be idle yet still advertise its cached widget
3912
+ // link, so a host can read the ui:// resource before any tool call has
3913
+ // woken it. Hold off its idle shutdown for every read, awake or not, so an
3914
+ // armed idle timer or an overlapping read cannot close the server mid-read,
3915
+ // then wake it the same way the call path does if it is not running.
3916
+ let releaseOnDemandRead;
3891
3917
  try {
3918
+ if (candidate.config?.startOnDemand && candidate.enabled !== false) {
3919
+ releaseOnDemandRead = beginOnDemandToolCall(candidate);
3920
+ if (!candidate.client) {
3921
+ await ensureServerReady(candidate);
3922
+ }
3923
+ candidate.lastUsedAt = Date.now();
3924
+ }
3925
+ if (!candidate.client) {
3926
+ continue;
3927
+ }
3892
3928
  const candidateResult = readOptions
3893
3929
  ? await candidate.client.readResource({ uri }, readOptions)
3894
3930
  : await candidate.client.readResource({ uri });
@@ -3898,7 +3934,10 @@ const handleReadResourceRequestImpl = async (request, extra) => {
3898
3934
  }
3899
3935
  }
3900
3936
  catch {
3901
- // This candidate doesn't own the resource; try the next one.
3937
+ // This candidate doesn't own the resource (or failed to wake); try the next one.
3938
+ }
3939
+ finally {
3940
+ releaseOnDemandRead?.();
3902
3941
  }
3903
3942
  }
3904
3943
  if (!result) {