@samanhappy/mcphub 1.1.6 → 1.1.8

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 (145) hide show
  1. package/dist/clients/openapi.js +2 -1
  2. package/dist/clients/openapi.js.map +1 -1
  3. package/dist/controllers/authController.js +27 -1
  4. package/dist/controllers/authController.js.map +1 -1
  5. package/dist/controllers/configController.js +4 -1
  6. package/dist/controllers/configController.js.map +1 -1
  7. package/dist/controllers/groupController.js +21 -6
  8. package/dist/controllers/groupController.js.map +1 -1
  9. package/dist/controllers/metricsController.js +33 -0
  10. package/dist/controllers/metricsController.js.map +1 -0
  11. package/dist/controllers/oauthServerController.js +12 -14
  12. package/dist/controllers/oauthServerController.js.map +1 -1
  13. package/dist/controllers/serverController.js +117 -11
  14. package/dist/controllers/serverController.js.map +1 -1
  15. package/dist/dao/GroupDaoDbImpl.js +9 -0
  16. package/dist/dao/GroupDaoDbImpl.js.map +1 -1
  17. package/dist/dao/OAuthTokenDaoDbImpl.js +2 -0
  18. package/dist/dao/OAuthTokenDaoDbImpl.js.map +1 -1
  19. package/dist/dao/ServerDao.js.map +1 -1
  20. package/dist/dao/ServerDaoDbImpl.js.map +1 -1
  21. package/dist/db/entities/Group.js +8 -0
  22. package/dist/db/entities/Group.js.map +1 -1
  23. package/dist/db/entities/OAuthToken.js +4 -0
  24. package/dist/db/entities/OAuthToken.js.map +1 -1
  25. package/dist/db/entities/Server.js +4 -0
  26. package/dist/db/entities/Server.js.map +1 -1
  27. package/dist/middlewares/auth.js +7 -25
  28. package/dist/middlewares/auth.js.map +1 -1
  29. package/dist/middlewares/toolCallGuard.js +499 -0
  30. package/dist/middlewares/toolCallGuard.js.map +1 -0
  31. package/dist/middlewares/userContext.js +6 -34
  32. package/dist/middlewares/userContext.js.map +1 -1
  33. package/dist/models/OAuth.js +14 -93
  34. package/dist/models/OAuth.js.map +1 -1
  35. package/dist/routes/index.js +4 -1
  36. package/dist/routes/index.js.map +1 -1
  37. package/dist/services/betterAuthConfig.js +1 -0
  38. package/dist/services/betterAuthConfig.js.map +1 -1
  39. package/dist/services/contextCostService.js +3 -1
  40. package/dist/services/contextCostService.js.map +1 -1
  41. package/dist/services/groupService.js +1 -0
  42. package/dist/services/groupService.js.map +1 -1
  43. package/dist/services/mcpOAuthProvider.js +0 -2
  44. package/dist/services/mcpOAuthProvider.js.map +1 -1
  45. package/dist/services/mcpService.js +120 -45
  46. package/dist/services/mcpService.js.map +1 -1
  47. package/dist/services/metricsService.js +54 -0
  48. package/dist/services/metricsService.js.map +1 -0
  49. package/dist/services/oauthClientRegistration.js +1 -1
  50. package/dist/services/oauthClientRegistration.js.map +1 -1
  51. package/dist/services/oauthServerService.js +15 -1
  52. package/dist/services/oauthServerService.js.map +1 -1
  53. package/dist/services/openApiGeneratorService.js +3 -1
  54. package/dist/services/openApiGeneratorService.js.map +1 -1
  55. package/dist/services/personalOAuthService.js +70 -8
  56. package/dist/services/personalOAuthService.js.map +1 -1
  57. package/dist/services/registrationService.js +28 -0
  58. package/dist/services/registrationService.js.map +1 -0
  59. package/dist/services/smartRoutingService.js +7 -6
  60. package/dist/services/smartRoutingService.js.map +1 -1
  61. package/dist/services/templateService.js +3 -1
  62. package/dist/services/templateService.js.map +1 -1
  63. package/dist/services/toolResultCompressionService.js +26 -1
  64. package/dist/services/toolResultCompressionService.js.map +1 -1
  65. package/dist/services/userService.js +22 -4
  66. package/dist/services/userService.js.map +1 -1
  67. package/dist/utils/migration.js +4 -2
  68. package/dist/utils/migration.js.map +1 -1
  69. package/dist/utils/oauthBearer.js +4 -2
  70. package/dist/utils/oauthBearer.js.map +1 -1
  71. package/dist/utils/oauthRedirectUri.js +3 -11
  72. package/dist/utils/oauthRedirectUri.js.map +1 -1
  73. package/dist/utils/parameterConversion.js +9 -4
  74. package/dist/utils/parameterConversion.js.map +1 -1
  75. package/dist/utils/passthroughHeaders.js +17 -0
  76. package/dist/utils/passthroughHeaders.js.map +1 -0
  77. package/dist/utils/rateLimit.js +1 -1
  78. package/dist/utils/rateLimit.js.map +1 -1
  79. package/dist/utils/serialization.js +2 -5
  80. package/dist/utils/serialization.js.map +1 -1
  81. package/dist/utils/serverConfigValidation.js +2 -1
  82. package/dist/utils/serverConfigValidation.js.map +1 -1
  83. package/dist/utils/settingsSync.js +58 -5
  84. package/dist/utils/settingsSync.js.map +1 -1
  85. package/dist/utils/tokenTruncation.js +1 -1
  86. package/dist/utils/tokenTruncation.js.map +1 -1
  87. package/dist/utils/toolConfig.js +93 -0
  88. package/dist/utils/toolConfig.js.map +1 -0
  89. package/dist/utils/userSession.js +29 -0
  90. package/dist/utils/userSession.js.map +1 -0
  91. package/frontend/dist/assets/{ActivityPage-e2s2j32V.js → ActivityPage-CJdAfOUF.js} +2 -2
  92. package/frontend/dist/assets/{ActivityPage-e2s2j32V.js.map → ActivityPage-CJdAfOUF.js.map} +1 -1
  93. package/frontend/dist/assets/{CopyClientConfigDialog-B71Cl89b.js → CopyClientConfigDialog-DKktm8jj.js} +2 -2
  94. package/frontend/dist/assets/{CopyClientConfigDialog-B71Cl89b.js.map → CopyClientConfigDialog-DKktm8jj.js.map} +1 -1
  95. package/frontend/dist/assets/{CredentialsPage-BnA17pRJ.js → CredentialsPage-CPyZrp4Z.js} +2 -2
  96. package/frontend/dist/assets/{CredentialsPage-BnA17pRJ.js.map → CredentialsPage-CPyZrp4Z.js.map} +1 -1
  97. package/frontend/dist/assets/{Dashboard-gC_Z286J.js → Dashboard-DM_IiBIT.js} +2 -2
  98. package/frontend/dist/assets/{Dashboard-gC_Z286J.js.map → Dashboard-DM_IiBIT.js.map} +1 -1
  99. package/frontend/dist/assets/{EndpointCopy-BjD8ehcn.js → EndpointCopy-DHQjJesJ.js} +2 -2
  100. package/frontend/dist/assets/{EndpointCopy-BjD8ehcn.js.map → EndpointCopy-DHQjJesJ.js.map} +1 -1
  101. package/frontend/dist/assets/{GroupsPage-DiT_skCf.js → GroupsPage-VKHjil-L.js} +4 -4
  102. package/frontend/dist/assets/GroupsPage-VKHjil-L.js.map +1 -0
  103. package/frontend/dist/assets/LoginPage-CKrI0By4.js +2 -0
  104. package/frontend/dist/assets/LoginPage-CKrI0By4.js.map +1 -0
  105. package/frontend/dist/assets/{LogsPage-BzI3IAHO.js → LogsPage-Dh8gRpEH.js} +2 -2
  106. package/frontend/dist/assets/{LogsPage-BzI3IAHO.js.map → LogsPage-Dh8gRpEH.js.map} +1 -1
  107. package/frontend/dist/assets/{MarketPage-DVo32QTs.js → MarketPage-BN4qL8L9.js} +2 -2
  108. package/frontend/dist/assets/{MarketPage-DVo32QTs.js.map → MarketPage-BN4qL8L9.js.map} +1 -1
  109. package/frontend/dist/assets/{OAuthConsentPage-DUapnxQ9.js → OAuthConsentPage-Cyj-rrA4.js} +2 -2
  110. package/frontend/dist/assets/{OAuthConsentPage-DUapnxQ9.js.map → OAuthConsentPage-Cyj-rrA4.js.map} +1 -1
  111. package/frontend/dist/assets/{PromptsPage-BAqJay5m.js → PromptsPage-YWD04XeI.js} +2 -2
  112. package/frontend/dist/assets/{PromptsPage-BAqJay5m.js.map → PromptsPage-YWD04XeI.js.map} +1 -1
  113. package/frontend/dist/assets/{ResourcesPage-kIOm5X1A.js → ResourcesPage-CVRzHCf4.js} +2 -2
  114. package/frontend/dist/assets/{ResourcesPage-kIOm5X1A.js.map → ResourcesPage-CVRzHCf4.js.map} +1 -1
  115. package/frontend/dist/assets/ServersPage-DJBurfOe.js +39 -0
  116. package/frontend/dist/assets/ServersPage-DJBurfOe.js.map +1 -0
  117. package/frontend/dist/assets/{SettingsPage-DkMmUgCh.js → SettingsPage-3sK6NJRn.js} +6 -6
  118. package/frontend/dist/assets/SettingsPage-3sK6NJRn.js.map +1 -0
  119. package/frontend/dist/assets/{StatusDot-Bm_C7v3r.js → StatusDot-CLZidCyq.js} +2 -2
  120. package/frontend/dist/assets/{StatusDot-Bm_C7v3r.js.map → StatusDot-CLZidCyq.js.map} +1 -1
  121. package/frontend/dist/assets/{ToggleGroup-DcOtP3Gf.js → ToggleGroup-Dfh4jKpP.js} +2 -2
  122. package/frontend/dist/assets/{ToggleGroup-DcOtP3Gf.js.map → ToggleGroup-Dfh4jKpP.js.map} +1 -1
  123. package/frontend/dist/assets/{UsersPage-DpcbXD3K.js → UsersPage-DfFqSRVb.js} +2 -2
  124. package/frontend/dist/assets/{UsersPage-DpcbXD3K.js.map → UsersPage-DfFqSRVb.js.map} +1 -1
  125. package/frontend/dist/assets/{clipboard-CvokTzlX.js → clipboard-wUZFI68F.js} +2 -2
  126. package/frontend/dist/assets/{clipboard-CvokTzlX.js.map → clipboard-wUZFI68F.js.map} +1 -1
  127. package/frontend/dist/assets/framework-vendor-CQFm9vKd.js.map +1 -1
  128. package/frontend/dist/assets/index-BbogfcdA.js +3 -0
  129. package/frontend/dist/assets/index-BbogfcdA.js.map +1 -0
  130. package/frontend/dist/assets/{resourceService-CbZwkCgS.js → resourceService-D7yitP7i.js} +2 -2
  131. package/frontend/dist/assets/{resourceService-CbZwkCgS.js.map → resourceService-D7yitP7i.js.map} +1 -1
  132. package/frontend/dist/assets/{useCostData-DZ5NdhVp.js → useCostData-33G6s4EW.js} +2 -2
  133. package/frontend/dist/assets/{useCostData-DZ5NdhVp.js.map → useCostData-33G6s4EW.js.map} +1 -1
  134. package/frontend/dist/assets/{variableDetection-SMtrW-P5.js → variableDetection-BVSe56ia.js} +2 -2
  135. package/frontend/dist/assets/{variableDetection-SMtrW-P5.js.map → variableDetection-BVSe56ia.js.map} +1 -1
  136. package/frontend/dist/index.html +1 -1
  137. package/package.json +3 -2
  138. package/frontend/dist/assets/GroupsPage-DiT_skCf.js.map +0 -1
  139. package/frontend/dist/assets/LoginPage-DK3WmTV9.js +0 -2
  140. package/frontend/dist/assets/LoginPage-DK3WmTV9.js.map +0 -1
  141. package/frontend/dist/assets/ServersPage-CkUdGq0R.js +0 -39
  142. package/frontend/dist/assets/ServersPage-CkUdGq0R.js.map +0 -1
  143. package/frontend/dist/assets/SettingsPage-DkMmUgCh.js.map +0 -1
  144. package/frontend/dist/assets/index-DkQidC_d.js +0 -3
  145. package/frontend/dist/assets/index-DkQidC_d.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mcpOAuthProvider.js","sourceRoot":"","sources":["../../src/services/mcpOAuthProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpOAuthProvider.js","sourceRoot":"","sources":["../../src/services/mcpOAuthProvider.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { isSafePassthroughHeader } from '../utils/passthroughHeaders.js';
2
+ import { observeToolCall, setMetricsServer } from './metricsService.js';
1
3
  import { hasPersonalOAuth, PersonalOAuthContext, personalOAuthContexts, personalAuthorizationRequired, } from './personalOAuthService.js';
2
4
  import { preserveListFreshness, combineListFreshness, remainingListTtl, } from '../utils/listFreshness.js';
3
5
  import { expandServerConfig, getServerEnvironment } from './serverConfigEnvironment.js';
@@ -8,6 +10,8 @@ import { AsyncLocalStorage } from 'node:async_hooks';
8
10
  import { createHash } from 'node:crypto';
9
11
  import { canAccessGroupRoute } from '../utils/groupAccess.js';
10
12
  import { canServeToolRequests } from '../utils/serverAvailability.js';
13
+ import { assertToolCallArgumentsSafe, isToolCallGuardEnabled, ToolCallBlockedError, } from '../middlewares/toolCallGuard.js';
14
+ import { applyHiddenParams, findToolConfig, removeHiddenArguments, } from '../utils/toolConfig.js';
11
15
  import { PrincipalRuntimeService } from './principalRuntimeService.js';
12
16
  import { UserContextService } from './userContextService.js';
13
17
  import { deleteCredentialBindings, missingCredentialError } from './credentialBindingService.js';
@@ -230,12 +234,26 @@ export const initUpstreamServers = async () => {
230
234
  // Initialize smart routing service with references to mcpService functions
231
235
  initSmartRoutingService(getVisibleServerInfos, filterToolsByConfig, filterToolsByGroup);
232
236
  };
237
+ // Blank parts are dropped; nothing left means no instructions at all, not "".
238
+ const joinInstructions = (...parts) => parts
239
+ .map((part) => part?.trim())
240
+ .filter(Boolean)
241
+ .join('\n\n') || undefined;
242
+ // Instructions of the group a route names ($smart/<group> or <group>), for a
243
+ // caller allowed on that route. Bare $smart and server-name routes have no group.
244
+ const getGroupInstructions = async (group) => {
245
+ const lookupGroup = getGroupLookupName(group);
246
+ const foundGroup = lookupGroup ? await findRouteGroup(lookupGroup) : null;
247
+ return foundGroup && canAccessGroupRoute(foundGroup) ? foundGroup.instructions : undefined;
248
+ };
233
249
  const getMcpServerDescriptor = async (group) => {
250
+ const groupInstructions = await getGroupInstructions(group);
234
251
  if (!group || isSmartRoutingGroup(group)) {
235
252
  return {
236
253
  name: config.mcpHubName,
237
254
  version: config.mcpHubVersion,
238
255
  group,
256
+ instructions: joinInstructions(groupInstructions),
239
257
  };
240
258
  }
241
259
  const { filteredServerInfos } = await getFilteredServerInfosForGroup(group);
@@ -244,7 +262,7 @@ const getMcpServerDescriptor = async (group) => {
244
262
  return {
245
263
  name: serverInfo.name,
246
264
  version: serverInfo.version || config.mcpHubVersion,
247
- instructions: serverInfo.instructions,
265
+ instructions: joinInstructions(groupInstructions, serverInfo.instructions),
248
266
  appendGroupSuffix: false,
249
267
  };
250
268
  }
@@ -252,6 +270,7 @@ const getMcpServerDescriptor = async (group) => {
252
270
  name: config.mcpHubName,
253
271
  version: config.mcpHubVersion,
254
272
  group,
273
+ instructions: joinInstructions(groupInstructions),
255
274
  appendGroupSuffix: true,
256
275
  };
257
276
  };
@@ -488,6 +507,8 @@ const hasDescriptionOverride = (config) => {
488
507
  const resolveDescriptionOverride = (defaultDescription, config) => {
489
508
  return hasDescriptionOverride(config) ? config?.description || '' : defaultDescription || '';
490
509
  };
510
+ // The dashboard/API projection keeps the full input schema (the dashboard
511
+ // lists every parameter to choose what to hide) and reports the configured list.
491
512
  const buildToolWithDescriptionMetadata = (tool, toolConfig) => {
492
513
  const upstreamDescription = tool.description || '';
493
514
  return {
@@ -495,13 +516,15 @@ const buildToolWithDescriptionMetadata = (tool, toolConfig) => {
495
516
  description: resolveDescriptionOverride(upstreamDescription, toolConfig),
496
517
  defaultDescription: upstreamDescription,
497
518
  hasDescriptionOverride: hasDescriptionOverride(toolConfig),
519
+ ...(toolConfig?.hiddenParams?.length ? { hiddenParams: toolConfig.hiddenParams } : {}),
498
520
  enabled: toolConfig?.enabled !== false,
499
521
  };
500
522
  };
501
- // Apply any per-tool description override before the tool text is embedded for
502
- // Smart Routing search. Deliberately narrower than buildToolWithDescriptionMetadata:
503
- // only `description` (plus the hasDescriptionOverride marker used by the
504
- // tool-set hash) is touched, so serverInfo.tools (built by
523
+ // Apply any per-tool description override and hidden parameters before the tool
524
+ // text is embedded for Smart Routing search. Deliberately narrower than
525
+ // buildToolWithDescriptionMetadata: only `description` (plus the
526
+ // hasDescriptionOverride marker used by the tool-set hash) and `inputSchema`
527
+ // are touched, so serverInfo.tools (built by
505
528
  // normalizeToolForCache/updateServerToolsCache) still never carries `enabled` --
506
529
  // preserving the existing invariant that execution gating reads the persisted
507
530
  // config directly, not this projection. Without this step, overrides only
@@ -512,16 +535,18 @@ const applyDescriptionOverridesForEmbedding = async (serverName, tools) => {
512
535
  if (!serverConfig?.tools) {
513
536
  return tools;
514
537
  }
538
+ // A partial sync passes only some tools; the key rule needs all of them
539
+ const runtimeNames = (getServerByName(serverName)?.tools ?? tools).map((tool) => tool.name);
515
540
  return tools.map((tool) => {
516
- const bareToolName = normalizeToolNameForServer(serverName, tool.name);
517
- const toolConfig = serverConfig.tools?.[tool.name] ?? serverConfig.tools?.[bareToolName];
541
+ const toolConfig = findToolConfig(serverConfig.tools, serverName, tool.name, runtimeNames);
542
+ const visibleTool = applyHiddenParams(tool, toolConfig);
518
543
  return hasDescriptionOverride(toolConfig)
519
544
  ? {
520
- ...tool,
545
+ ...visibleTool,
521
546
  description: resolveDescriptionOverride(tool.description, toolConfig),
522
547
  hasDescriptionOverride: true,
523
548
  }
524
- : tool;
549
+ : visibleTool;
525
550
  });
526
551
  };
527
552
  // Tail of the embedding tasks queued per server. A per-user connect and a
@@ -911,6 +936,9 @@ export const getServerConnectionStats = () => {
911
936
  // Personal definitions have no shared connection whose readiness can be checked.
912
937
  return summarizeServerConnections(serverInfos.filter((info) => !hasPersonalAuthentication(info.config)));
913
938
  };
939
+ export const getMetricsServerSnapshot = () => serverInfos
940
+ .filter((info) => info.enabled !== false && !hasPersonalAuthentication(info.config))
941
+ .map((info) => ({ status: info.status, type: inferServerType(info.config) || 'unknown' }));
914
942
  // Returns true if all enabled servers are connected
915
943
  export const connected = () => {
916
944
  const { total, connected: connectedServers } = getServerConnectionStats();
@@ -1142,7 +1170,7 @@ export const collectPassthroughHeaders = (requestHeaders, passthroughHeaderNames
1142
1170
  const passthroughHeaders = {};
1143
1171
  for (const headerName of passthroughHeaderNames) {
1144
1172
  const normalizedHeaderName = headerName.trim();
1145
- if (!normalizedHeaderName) {
1173
+ if (!isSafePassthroughHeader(normalizedHeaderName)) {
1146
1174
  continue;
1147
1175
  }
1148
1176
  const headerValue = headerValueToString(getHeaderValue(requestHeaders, normalizedHeaderName));
@@ -1331,6 +1359,16 @@ export const createTransportFromConfig = async (name, conf) => {
1331
1359
  }
1332
1360
  return transport;
1333
1361
  };
1362
+ // Call arguments without the tool's hidden parameters; `toolName` is the bare upstream name.
1363
+ // Looked up by the cached runtime name: findToolConfig removes one server prefix,
1364
+ // so a bare name that itself starts with the prefix (server `fc`, tool
1365
+ // `fc-scrape`) would otherwise resolve to the wrong entry.
1366
+ const withoutHiddenArguments = (serverInfo, toolName, args) => {
1367
+ const runtimeName = `${serverInfo.name}${getNameSeparator()}${toolName}`;
1368
+ const tool = serverInfo.tools?.find((candidate) => candidate.name === runtimeName);
1369
+ const toolConfig = findToolConfig(serverInfo.config?.tools, serverInfo.name, runtimeName, (serverInfo.tools ?? []).map((candidate) => candidate.name));
1370
+ return removeHiddenArguments(args, tool?.inputSchema, toolConfig);
1371
+ };
1334
1372
  // Helper function to handle client.callTool with reconnection logic
1335
1373
  const callToolWithReconnect = async (serverInfo, toolParams, options, maxRetries = 1, isolated) => {
1336
1374
  // Local, reassignable refs so a reconnect can swap in the new connection for
@@ -1341,6 +1379,11 @@ const callToolWithReconnect = async (serverInfo, toolParams, options, maxRetries
1341
1379
  if (!client) {
1342
1380
  throw new Error(`Client not found for server: ${serverInfo.name}`);
1343
1381
  }
1382
+ // Both MCP call paths pass through here, so hidden parameters are dropped once.
1383
+ toolParams = {
1384
+ ...toolParams,
1385
+ arguments: withoutHiddenArguments(serverInfo, toolParams.name, toolParams.arguments),
1386
+ };
1344
1387
  if (hasPersonalAuthentication(serverInfo.config)) {
1345
1388
  return client.callTool(toolParams, options || {});
1346
1389
  }
@@ -2074,11 +2117,8 @@ export const getServersInfo = async (page, limit, user) => {
2074
2117
  // as the dashboard sends, or bare, as a direct API call may) with no
2075
2118
  // normalization — check both so the dashboard reflects a disable set
2076
2119
  // either way instead of always showing enabled:true for one of them.
2077
- const toolsWithEnabled = tools.map((tool) => {
2078
- const bareToolName = normalizeToolNameForServer(name, tool.name);
2079
- const toolConfig = serverConfig?.tools?.[tool.name] ?? serverConfig?.tools?.[bareToolName];
2080
- return buildToolWithDescriptionMetadata(tool, toolConfig);
2081
- });
2120
+ const runtimeNames = tools.map((tool) => tool.name);
2121
+ const toolsWithEnabled = tools.map((tool) => buildToolWithDescriptionMetadata(tool, findToolConfig(serverConfig?.tools, name, tool.name, runtimeNames)));
2082
2122
  const promptsWithEnabled = prompts.map((prompt) => {
2083
2123
  const promptConfig = serverConfig?.prompts?.[prompt.name];
2084
2124
  return {
@@ -2319,12 +2359,12 @@ const filterToolsByConfig = async (serverName, tools) => {
2319
2359
  // If no tool configuration exists, all tools are enabled by default
2320
2360
  return tools;
2321
2361
  }
2362
+ // Callers may pass a subset; the key rule needs every tool of the server
2363
+ const runtimeNames = (getServerByName(serverName)?.tools ?? tools).map((tool) => tool.name);
2322
2364
  return tools.filter((tool) => {
2323
- // toggleTool stores the disable under whatever key string the caller used
2324
- // (bare upstream name or server-prefixed name, never normalized) — check
2325
- // both, same as findToolOnServer's execution-time gate.
2326
- const bareToolName = normalizeToolNameForServer(serverName, tool.name);
2327
- const toolConfig = serverConfig.tools?.[tool.name] ?? serverConfig.tools?.[bareToolName];
2365
+ // A disable may be stored under the runtime or the bare name — same key rule
2366
+ // as findToolOnServer's execution-time gate (findToolConfig).
2367
+ const toolConfig = findToolConfig(serverConfig.tools, serverName, tool.name, runtimeNames);
2328
2368
  // If tool is not in config, it's enabled by default
2329
2369
  return toolConfig?.enabled !== false;
2330
2370
  });
@@ -2969,16 +3009,11 @@ const findToolOnServer = (serverInfo, toolName, allowRawName) => {
2969
3009
  // which is a different object. So the persisted per-tool config must be
2970
3010
  // consulted directly here.
2971
3011
  //
2972
- // toggleTool (serverController.ts) stores `tools[toolName] = ...` using
2973
- // whatever string the caller passed as :toolName, with no normalization.
2974
- // The dashboard sends the already-prefixed `tool.name`, matching what
2975
- // getServersInfo's toolsWithEnabled already reads — but any other caller
2976
- // (REST API used directly, scripts, docs examples) can just as validly
2977
- // pass the bare upstream name, which then never matches a prefixed-only
2978
- // lookup. Check both so a disable takes effect regardless of which form
2979
- // was used to set it.
2980
- const bareToolName = normalizeToolNameForServer(serverInfo.name, tool.name);
2981
- const toolConfig = serverInfo.config?.tools?.[tool.name] ?? serverInfo.config?.tools?.[bareToolName];
3012
+ // A disable may be stored under the runtime (prefixed) name, as the
3013
+ // dashboard writes it, or under the bare upstream name, as a settings file
3014
+ // or a direct API call may. findToolConfig checks both, and never reads
3015
+ // another tool's runtime key as this tool's bare name.
3016
+ const toolConfig = findToolConfig(serverInfo.config?.tools, serverInfo.name, tool.name, serverInfo.tools.map((candidate) => candidate.name));
2982
3017
  if (toolConfig && toolConfig.enabled === false) {
2983
3018
  return undefined;
2984
3019
  }
@@ -3079,12 +3114,13 @@ const listGroupTools = async (group, filteredServerInfos, serverConfigsByName, a
3079
3114
  let tools = await filterToolsByConfig(serverInfo.name, serverInfo.tools);
3080
3115
  // If this is a group request, apply group-level tool filtering
3081
3116
  tools = await filterToolsByGroup(group, serverInfo.name, tools, groupServerConfig);
3082
- // Apply custom descriptions from server configuration
3117
+ // Apply custom descriptions and hidden parameters from server configuration
3083
3118
  const serverConfig = await getServerDao().findById(serverInfo.name);
3119
+ const runtimeNames = serverInfo.tools.map((tool) => tool.name);
3084
3120
  const toolsWithCustomDescriptions = tools.map((tool) => {
3085
- const toolConfig = serverConfig?.tools?.[tool.name];
3121
+ const toolConfig = findToolConfig(serverConfig?.tools, serverInfo.name, tool.name, runtimeNames);
3086
3122
  return {
3087
- ...tool,
3123
+ ...applyHiddenParams(tool, toolConfig),
3088
3124
  description: resolveDescriptionOverride(tool.description, toolConfig),
3089
3125
  };
3090
3126
  });
@@ -3168,6 +3204,31 @@ const handleCallToolRequestImpl = async (request, extra) => {
3168
3204
  logger.log('Handling CallToolRequest for tool', summarizeToolRequestForLogging(request.params));
3169
3205
  const startTime = Date.now();
3170
3206
  const activityLogger = getActivityLoggingService();
3207
+ // Opt-in fail-closed guard for high-confidence command-injection / SSRF /
3208
+ // cloud-credential-theft payloads in tool call arguments. Disabled by
3209
+ // default (TOOL_CALL_GUARD_ENABLED=true to enable); see
3210
+ // src/middlewares/toolCallGuard.ts.
3211
+ if (isToolCallGuardEnabled()) {
3212
+ try {
3213
+ assertToolCallArgumentsSafe(request?.params?.arguments);
3214
+ }
3215
+ catch (guardError) {
3216
+ if (guardError instanceof ToolCallBlockedError) {
3217
+ logger.warn(`Tool call blocked by guard: server/tool=${request?.params?.name ?? 'unknown'}, rule=${guardError.ruleId}`);
3218
+ return {
3219
+ content: [
3220
+ {
3221
+ type: 'text',
3222
+ text: `Error: ${guardError.message}`,
3223
+ },
3224
+ ],
3225
+ isError: true,
3226
+ errorCode: -32001,
3227
+ };
3228
+ }
3229
+ throw guardError;
3230
+ }
3231
+ }
3171
3232
  // Get request context for activity logging
3172
3233
  const requestContextService = RequestContextService.getInstance();
3173
3234
  const bearerKeyContext = requestContextService.getBearerKeyContext();
@@ -3271,6 +3332,7 @@ const handleCallToolRequestImpl = async (request, extra) => {
3271
3332
  if (!targetServerInfo) {
3272
3333
  throw new ToolUnavailableError(`Tool not available: ${toolName}`, classifyUnavailableReason(toolName));
3273
3334
  }
3335
+ setMetricsServer(targetServerInfo.name);
3274
3336
  // If the target is an on-demand server that is not yet running, wake it up now.
3275
3337
  // Concurrent callers are serialised via ensureServerReady's singleton promise.
3276
3338
  releaseOnDemandToolCall = beginOnDemandToolCall(targetServerInfo);
@@ -3318,6 +3380,8 @@ const handleCallToolRequestImpl = async (request, extra) => {
3318
3380
  if (requestHeaders && targetServerInfo.config?.openapi?.passthroughHeaders) {
3319
3381
  passthroughHeaders = {};
3320
3382
  for (const headerName of targetServerInfo.config.openapi.passthroughHeaders) {
3383
+ if (!isSafePassthroughHeader(headerName))
3384
+ continue;
3321
3385
  // Handle different header name cases (Express normalizes headers to lowercase)
3322
3386
  const headerValue = requestHeaders[headerName] || requestHeaders[headerName.toLowerCase()];
3323
3387
  if (headerValue) {
@@ -3334,7 +3398,7 @@ const handleCallToolRequestImpl = async (request, extra) => {
3334
3398
  throw new Error(`OpenAPI server '${targetServerInfo.name}' requires cookie-session state and is not yet available on stateless MCP requests`);
3335
3399
  }
3336
3400
  await reserveHostedIfNeeded(targetServerInfo.name, cleanToolName);
3337
- const result = await openApiClient.callTool(cleanToolName, finalArgs, passthroughHeaders, false, stateId);
3401
+ const result = await openApiClient.callTool(cleanToolName, withoutHiddenArguments(targetServerInfo, cleanToolName, finalArgs), passthroughHeaders, false, stateId);
3338
3402
  await settleHostedIfNeeded({
3339
3403
  success: true,
3340
3404
  requestContent: finalArgs,
@@ -3462,6 +3526,7 @@ const handleCallToolRequestImpl = async (request, extra) => {
3462
3526
  throw new ToolUnavailableError(`Tool not available: ${request.params.name}`, classifyUnavailableReason(request.params.name));
3463
3527
  }
3464
3528
  assertToolAvailableForRoute(tool, appsRouteContext);
3529
+ setMetricsServer(serverInfo.name);
3465
3530
  // Wake the on-demand server before invoking the tool. It may be asleep with
3466
3531
  // a cached tool list (visible above) but no live client. Mirrors the
3467
3532
  // $smart call_tool path. See #1029.
@@ -3496,6 +3561,8 @@ const handleCallToolRequestImpl = async (request, extra) => {
3496
3561
  if (requestHeaders && serverInfo.config?.openapi?.passthroughHeaders) {
3497
3562
  passthroughHeaders = {};
3498
3563
  for (const headerName of serverInfo.config.openapi.passthroughHeaders) {
3564
+ if (!isSafePassthroughHeader(headerName))
3565
+ continue;
3499
3566
  // Handle different header name cases (Express normalizes headers to lowercase)
3500
3567
  const headerValue = requestHeaders[headerName] || requestHeaders[headerName.toLowerCase()];
3501
3568
  if (headerValue) {
@@ -3513,7 +3580,7 @@ const handleCallToolRequestImpl = async (request, extra) => {
3513
3580
  throw new Error(`OpenAPI server '${serverInfo.name}' requires cookie-session state and is not yet available on stateless MCP requests`);
3514
3581
  }
3515
3582
  await reserveHostedIfNeeded(serverInfo.name, cleanToolName);
3516
- const result = await openApiClient.callTool(cleanToolName, finalArgs, passthroughHeaders, false, stateId);
3583
+ const result = await openApiClient.callTool(cleanToolName, withoutHiddenArguments(serverInfo, cleanToolName, finalArgs), passthroughHeaders, false, stateId);
3517
3584
  await settleHostedIfNeeded({
3518
3585
  success: true,
3519
3586
  requestContent: finalArgs,
@@ -3607,7 +3674,13 @@ const handleCallToolRequestImpl = async (request, extra) => {
3607
3674
  const unavailable = error instanceof ToolUnavailableError
3608
3675
  ? { message: error.message, reason: error.reason }
3609
3676
  : undefined;
3677
+ const activityToolName = getActivityToolNameFromRequest(request);
3610
3678
  logger.error('Error handling CallToolRequest', {
3679
+ group,
3680
+ username,
3681
+ callerId: keyId,
3682
+ callerLabel: keyName,
3683
+ toolName: activityToolName,
3611
3684
  ...summarizeErrorForLogging(error),
3612
3685
  ...(unavailable ? { reason: unavailable.reason } : {}),
3613
3686
  });
@@ -3618,7 +3691,6 @@ const handleCallToolRequestImpl = async (request, extra) => {
3618
3691
  requestContent: getActivityInputFromToolRequest(request),
3619
3692
  responseContent: { error: formatErrorForLogging(error) },
3620
3693
  });
3621
- const activityToolName = getActivityToolNameFromRequest(request);
3622
3694
  const serverInfo = (typeof extra?.server === 'string' ? getServerByName(extra.server) : undefined) ||
3623
3695
  getServerByTool(activityToolName);
3624
3696
  const cleanToolName = stripToolServerPrefix(activityToolName, serverInfo?.name);
@@ -4320,7 +4392,8 @@ const withCacheHints = (handler, passthroughTtl = false, listField) => async (re
4320
4392
  return { ...result, ttlMs, cacheScope: 'private' };
4321
4393
  };
4322
4394
  export const handleListToolsRequest = withPrincipalServers(withCacheHints(handleListToolsRequestImpl, false, 'tools'), 'list');
4323
- export const handleCallToolRequest = withPrincipalServers(handleCallToolRequestImpl, 'tool');
4395
+ const callToolWithPrincipal = withPrincipalServers(handleCallToolRequestImpl, 'tool');
4396
+ export const handleCallToolRequest = (request, extra) => observeToolCall(() => callToolWithPrincipal(request, extra));
4324
4397
  export const handleGetPromptRequest = withPrincipalServers(handleGetPromptRequestImpl, 'prompt');
4325
4398
  export const handleListPromptsRequest = withPrincipalServers(withCacheHints(handleListPromptsRequestImpl, false, 'prompts'), 'list');
4326
4399
  export const handleListResourcesRequest = withPrincipalServers(withCacheHints(handleListResourcesRequestImpl, false, 'resources'), 'list');
@@ -4357,19 +4430,21 @@ export const createMcpServer = (name, version, options) => {
4357
4430
  server.setRequestHandler('resources/read', handleReadResourceRequest);
4358
4431
  return server;
4359
4432
  };
4433
+ // The group a route segment names: by name, or by id when it is a UUID.
4434
+ const findRouteGroup = async (group) => {
4435
+ const groupDao = getGroupDao();
4436
+ const foundGroup = await groupDao.findByName(group);
4437
+ if (foundGroup)
4438
+ return foundGroup;
4439
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
4440
+ return uuidRegex.test(group) ? groupDao.findById(group) : null;
4441
+ };
4360
4442
  export const getFilteredServerInfosForGroup = async (group, options) => {
4361
4443
  // Resolve raw groups so legacy routing remains compatible, then enforce explicit visibility.
4362
4444
  let matchedGroup = false;
4363
4445
  let serverConfigs = [];
4364
4446
  if (group) {
4365
- const groupDao = getGroupDao();
4366
- let foundGroup = await groupDao.findByName(group);
4367
- if (!foundGroup) {
4368
- const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
4369
- if (uuidRegex.test(group)) {
4370
- foundGroup = await groupDao.findById(group);
4371
- }
4372
- }
4447
+ const foundGroup = await findRouteGroup(group);
4373
4448
  if (foundGroup) {
4374
4449
  matchedGroup = true;
4375
4450
  if (!canAccessGroupRoute(foundGroup)) {