@samanhappy/mcphub 1.0.31 → 1.0.33
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/README.md +11 -1
- package/README.zh.md +12 -2
- package/dist/betterAuth.js +13 -5
- package/dist/betterAuth.js.map +1 -1
- package/dist/cli/commands/cache.js.map +1 -1
- package/dist/cli/commands/call.js +2 -2
- package/dist/cli/commands/call.js.map +1 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/discover.js.map +1 -1
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/groups.js.map +1 -1
- package/dist/cli/commands/install.js +1 -1
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/keys.js.map +1 -1
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/servers.js.map +1 -1
- package/dist/cli/commands/tools.js +2 -2
- package/dist/cli/commands/tools.js.map +1 -1
- package/dist/cli/context.js +1 -1
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/http.js +3 -1
- package/dist/cli/http.js.map +1 -1
- package/dist/clients/openapi.js +498 -76
- package/dist/clients/openapi.js.map +1 -1
- package/dist/config/DaoConfigService.js +3 -2
- package/dist/config/DaoConfigService.js.map +1 -1
- package/dist/config/configManager.js +9 -8
- package/dist/config/configManager.js.map +1 -1
- package/dist/config/index.js +54 -8
- package/dist/config/index.js.map +1 -1
- package/dist/config/jwt.js +2 -1
- package/dist/config/jwt.js.map +1 -1
- package/dist/config/migrationUtils.js +46 -45
- package/dist/config/migrationUtils.js.map +1 -1
- package/dist/constants/oauthServerDefaults.js +5 -0
- package/dist/constants/oauthServerDefaults.js.map +1 -1
- package/dist/controllers/activityController.js +6 -5
- package/dist/controllers/activityController.js.map +1 -1
- package/dist/controllers/authController.js +5 -4
- package/dist/controllers/authController.js.map +1 -1
- package/dist/controllers/bearerKeyController.js +7 -6
- package/dist/controllers/bearerKeyController.js.map +1 -1
- package/dist/controllers/betterAuthController.js +2 -1
- package/dist/controllers/betterAuthController.js.map +1 -1
- package/dist/controllers/builtinPromptController.js +13 -5
- package/dist/controllers/builtinPromptController.js.map +1 -1
- package/dist/controllers/builtinResourceController.js +14 -6
- package/dist/controllers/builtinResourceController.js.map +1 -1
- package/dist/controllers/changelogController.js +5 -2
- package/dist/controllers/changelogController.js.map +1 -1
- package/dist/controllers/cloudController.js +11 -10
- package/dist/controllers/cloudController.js.map +1 -1
- package/dist/controllers/configController.js +4 -3
- package/dist/controllers/configController.js.map +1 -1
- package/dist/controllers/contextCostController.js +3 -2
- package/dist/controllers/contextCostController.js.map +1 -1
- package/dist/controllers/groupController.js +2 -1
- package/dist/controllers/groupController.js.map +1 -1
- package/dist/controllers/healthController.js +2 -1
- package/dist/controllers/healthController.js.map +1 -1
- package/dist/controllers/hostedInternalController.js +2 -1
- package/dist/controllers/hostedInternalController.js.map +1 -1
- package/dist/controllers/logController.js +5 -4
- package/dist/controllers/logController.js.map +1 -1
- package/dist/controllers/mcpbController.js +23 -20
- package/dist/controllers/mcpbController.js.map +1 -1
- package/dist/controllers/oauthCallbackController.js +54 -27
- package/dist/controllers/oauthCallbackController.js.map +1 -1
- package/dist/controllers/oauthClientController.js +7 -6
- package/dist/controllers/oauthClientController.js.map +1 -1
- package/dist/controllers/oauthDynamicRegistrationController.js +22 -4
- package/dist/controllers/oauthDynamicRegistrationController.js.map +1 -1
- package/dist/controllers/oauthServerController.js +62 -15
- package/dist/controllers/oauthServerController.js.map +1 -1
- package/dist/controllers/openApiController.js +7 -6
- package/dist/controllers/openApiController.js.map +1 -1
- package/dist/controllers/promptController.js +2 -1
- package/dist/controllers/promptController.js.map +1 -1
- package/dist/controllers/registryController.js +4 -3
- package/dist/controllers/registryController.js.map +1 -1
- package/dist/controllers/serverController.js +154 -65
- package/dist/controllers/serverController.js.map +1 -1
- package/dist/controllers/templateController.js +3 -2
- package/dist/controllers/templateController.js.map +1 -1
- package/dist/controllers/toolController.js +2 -1
- package/dist/controllers/toolController.js.map +1 -1
- package/dist/dao/DaoFactory.js +3 -2
- package/dist/dao/DaoFactory.js.map +1 -1
- package/dist/dao/ServerDao.js.map +1 -1
- package/dist/dao/UserConfigDaoDbImpl.js.map +1 -1
- package/dist/dao/UserDao.js.map +1 -1
- package/dist/dao/base/JsonFileBaseDao.js +3 -2
- package/dist/dao/base/JsonFileBaseDao.js.map +1 -1
- package/dist/dao/examples.js +35 -34
- package/dist/dao/examples.js.map +1 -1
- package/dist/db/connection.js +59 -58
- package/dist/db/connection.js.map +1 -1
- package/dist/db/index.js +2 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/repositories/ServerRepository.js +3 -3
- package/dist/db/repositories/ServerRepository.js.map +1 -1
- package/dist/db/repositories/SystemConfigRepository.js +2 -1
- package/dist/db/repositories/SystemConfigRepository.js.map +1 -1
- package/dist/db/repositories/UserConfigRepository.js.map +1 -1
- package/dist/db/repositories/VectorEmbeddingRepository.js +6 -5
- package/dist/db/repositories/VectorEmbeddingRepository.js.map +1 -1
- package/dist/index.js +28 -19
- package/dist/index.js.map +1 -1
- package/dist/middlewares/auth.js +4 -3
- package/dist/middlewares/auth.js.map +1 -1
- package/dist/middlewares/index.js +2 -1
- package/dist/middlewares/index.js.map +1 -1
- package/dist/middlewares/userContext.js +7 -6
- package/dist/middlewares/userContext.js.map +1 -1
- package/dist/models/OAuth.js +7 -6
- package/dist/models/OAuth.js.map +1 -1
- package/dist/models/User.js +13 -12
- package/dist/models/User.js.map +1 -1
- package/dist/routes/index.js +11 -10
- package/dist/routes/index.js.map +1 -1
- package/dist/scripts/dao-demo.js +28 -27
- package/dist/scripts/dao-demo.js.map +1 -1
- package/dist/server.js +36 -30
- package/dist/server.js.map +1 -1
- package/dist/services/activityLoggingService.js +3 -2
- package/dist/services/activityLoggingService.js.map +1 -1
- package/dist/services/authorizationService.js +28 -0
- package/dist/services/authorizationService.js.map +1 -0
- package/dist/services/betterAuthConfig.js +1 -4
- package/dist/services/betterAuthConfig.js.map +1 -1
- package/dist/services/betterAuthSession.js +8 -7
- package/dist/services/betterAuthSession.js.map +1 -1
- package/dist/services/changelogService.js +5 -2
- package/dist/services/changelogService.js.map +1 -1
- package/dist/services/cimdClientService.js +195 -0
- package/dist/services/cimdClientService.js.map +1 -0
- package/dist/services/cloudService.js +10 -9
- package/dist/services/cloudService.js.map +1 -1
- package/dist/services/contextCostService.js +6 -2
- package/dist/services/contextCostService.js.map +1 -1
- package/dist/services/groupService.js +8 -7
- package/dist/services/groupService.js.map +1 -1
- package/dist/services/hostedAuthService.js +3 -2
- package/dist/services/hostedAuthService.js.map +1 -1
- package/dist/services/hostedControlPlaneClient.js.map +1 -1
- package/dist/services/hostedEventSubscriber.js +9 -8
- package/dist/services/hostedEventSubscriber.js.map +1 -1
- package/dist/services/hostedRuntimeCatalogNames.js +1 -3
- package/dist/services/hostedRuntimeCatalogNames.js.map +1 -1
- package/dist/services/keepAliveService.js +7 -6
- package/dist/services/keepAliveService.js.map +1 -1
- package/dist/services/marketService.js +2 -1
- package/dist/services/marketService.js.map +1 -1
- package/dist/services/mcpOAuthProvider.js +22 -21
- package/dist/services/mcpOAuthProvider.js.map +1 -1
- package/dist/services/mcpService.js +239 -130
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/oauthClientRegistration.js +30 -29
- package/dist/services/oauthClientRegistration.js.map +1 -1
- package/dist/services/oauthServerService.js +39 -18
- package/dist/services/oauthServerService.js.map +1 -1
- package/dist/services/oauthService.js +16 -15
- package/dist/services/oauthService.js.map +1 -1
- package/dist/services/oauthSettingsStore.js +4 -3
- package/dist/services/oauthSettingsStore.js.map +1 -1
- package/dist/services/openApiGeneratorService.js +1 -3
- package/dist/services/openApiGeneratorService.js.map +1 -1
- package/dist/services/openApiToolStatsService.js +37 -0
- package/dist/services/openApiToolStatsService.js.map +1 -0
- package/dist/services/registry.js +2 -1
- package/dist/services/registry.js.map +1 -1
- package/dist/services/requestContextService.js.map +1 -1
- package/dist/services/serverConfigPresenter.js +85 -0
- package/dist/services/serverConfigPresenter.js.map +1 -0
- package/dist/services/smartRoutingService.js +6 -5
- package/dist/services/smartRoutingService.js.map +1 -1
- package/dist/services/sseService.js +52 -51
- package/dist/services/sseService.js.map +1 -1
- package/dist/services/templateService.js +105 -23
- package/dist/services/templateService.js.map +1 -1
- package/dist/services/toolResultCompressionService.js +8 -5
- package/dist/services/toolResultCompressionService.js.map +1 -1
- package/dist/services/upstreamOAuthDisconnectService.js +9 -6
- package/dist/services/upstreamOAuthDisconnectService.js.map +1 -1
- package/dist/services/userService.js +5 -4
- package/dist/services/userService.js.map +1 -1
- package/dist/services/vectorSearchService.js +126 -112
- package/dist/services/vectorSearchService.js.map +1 -1
- package/dist/utils/cacheUtils.js +5 -4
- package/dist/utils/cacheUtils.js.map +1 -1
- package/dist/utils/corsOrigin.js +42 -0
- package/dist/utils/corsOrigin.js.map +1 -0
- package/dist/utils/dbRetry.js +2 -5
- package/dist/utils/dbRetry.js.map +1 -1
- package/dist/utils/frontendShell.js +2 -1
- package/dist/utils/frontendShell.js.map +1 -1
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/logger.js +170 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/migration.js +51 -50
- package/dist/utils/migration.js.map +1 -1
- package/dist/utils/oauthIssuer.js +57 -0
- package/dist/utils/oauthIssuer.js.map +1 -0
- package/dist/utils/openApiRequestBody.js +220 -0
- package/dist/utils/openApiRequestBody.js.map +1 -0
- package/dist/utils/parameterConversion.js +2 -1
- package/dist/utils/parameterConversion.js.map +1 -1
- package/dist/utils/path.js +9 -8
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/processTree.js +47 -0
- package/dist/utils/processTree.js.map +1 -0
- package/dist/utils/proxyTrust.js.map +1 -1
- package/dist/utils/rateLimit.js +8 -0
- package/dist/utils/rateLimit.js.map +1 -1
- package/dist/utils/requireAdmin.js +15 -0
- package/dist/utils/requireAdmin.js.map +1 -0
- package/dist/utils/serverConfigPersistence.js +3 -0
- package/dist/utils/serverConfigPersistence.js.map +1 -1
- package/dist/utils/serverConfigValidation.js +13 -0
- package/dist/utils/serverConfigValidation.js.map +1 -0
- package/dist/utils/serverNameValidation.js +56 -0
- package/dist/utils/serverNameValidation.js.map +1 -0
- package/dist/utils/serverShutdown.js +3 -2
- package/dist/utils/serverShutdown.js.map +1 -1
- package/dist/utils/smartRouting.js +4 -3
- package/dist/utils/smartRouting.js.map +1 -1
- package/dist/utils/ssrf.js +23 -10
- package/dist/utils/ssrf.js.map +1 -1
- package/dist/utils/systemConfigCache.js +40 -2
- package/dist/utils/systemConfigCache.js.map +1 -1
- package/dist/utils/tokenCost.js.map +1 -1
- package/dist/utils/tokenTruncation.js +9 -4
- package/dist/utils/tokenTruncation.js.map +1 -1
- package/dist/utils/version.js +3 -2
- package/dist/utils/version.js.map +1 -1
- package/frontend/dist/assets/{ActivityPage-Dx53zxEM.js → ActivityPage-Du9Nh-Jy.js} +2 -2
- package/frontend/dist/assets/{ActivityPage-Dx53zxEM.js.map → ActivityPage-Du9Nh-Jy.js.map} +1 -1
- package/frontend/dist/assets/ConfirmDialog-3APts2Y9.js +2 -0
- package/frontend/dist/assets/ConfirmDialog-3APts2Y9.js.map +1 -0
- package/frontend/dist/assets/Dashboard-J4G-AZkI.js +2 -0
- package/frontend/dist/assets/{Dashboard-ZYVsSvOw.js.map → Dashboard-J4G-AZkI.js.map} +1 -1
- package/frontend/dist/assets/{DeleteDialog-DNe-zTEl.js → DeleteDialog-D9ycSRvn.js} +2 -2
- package/frontend/dist/assets/{DeleteDialog-DNe-zTEl.js.map → DeleteDialog-D9ycSRvn.js.map} +1 -1
- package/frontend/dist/assets/{EndpointCopy-ngxLPeDF.js → EndpointCopy-DFeLcU9A.js} +2 -2
- package/frontend/dist/assets/{EndpointCopy-ngxLPeDF.js.map → EndpointCopy-DFeLcU9A.js.map} +1 -1
- package/frontend/dist/assets/GroupsPage-CGMZBiXd.js +33 -0
- package/frontend/dist/assets/{GroupsPage-JPtupGpI.js.map → GroupsPage-CGMZBiXd.js.map} +1 -1
- package/frontend/dist/assets/{LoginPage-B6rU3Ugr.js → LoginPage-g5pJLBk0.js} +2 -2
- package/frontend/dist/assets/{LoginPage-B6rU3Ugr.js.map → LoginPage-g5pJLBk0.js.map} +1 -1
- package/frontend/dist/assets/{LogsPage-CXq382fb.js → LogsPage-Bkv7xhNf.js} +2 -2
- package/frontend/dist/assets/{LogsPage-CXq382fb.js.map → LogsPage-Bkv7xhNf.js.map} +1 -1
- package/frontend/dist/assets/MarketPage-WkLrckIr.js +3 -0
- package/frontend/dist/assets/MarketPage-WkLrckIr.js.map +1 -0
- package/frontend/dist/assets/{OAuthConsentPage-C-n6tv3-.js → OAuthConsentPage-CA35XoBK.js} +2 -2
- package/frontend/dist/assets/{OAuthConsentPage-C-n6tv3-.js.map → OAuthConsentPage-CA35XoBK.js.map} +1 -1
- package/frontend/dist/assets/{Pagination-DLSuQ8hw.js → Pagination-Dwko3g48.js} +2 -2
- package/frontend/dist/assets/{Pagination-DLSuQ8hw.js.map → Pagination-Dwko3g48.js.map} +1 -1
- package/frontend/dist/assets/{PromptsPage-BLpy76K4.js → PromptsPage-BuDdW69R.js} +2 -2
- package/frontend/dist/assets/{PromptsPage-BLpy76K4.js.map → PromptsPage-BuDdW69R.js.map} +1 -1
- package/frontend/dist/assets/{ResourcesPage-C5nynRqE.js → ResourcesPage-Cu-eD5e2.js} +2 -2
- package/frontend/dist/assets/{ResourcesPage-C5nynRqE.js.map → ResourcesPage-Cu-eD5e2.js.map} +1 -1
- package/frontend/dist/assets/{ServersPage-Ca5W9cPW.js → ServersPage-B1Np5x3N.js} +8 -8
- package/frontend/dist/assets/ServersPage-B1Np5x3N.js.map +1 -0
- package/frontend/dist/assets/{SettingsPage-DgFBjp_O.js → SettingsPage-BQN8-ZQh.js} +4 -4
- package/frontend/dist/assets/SettingsPage-BQN8-ZQh.js.map +1 -0
- package/frontend/dist/assets/{StatusDot-CmSkukx0.js → StatusDot-WyvgqplP.js} +2 -2
- package/frontend/dist/assets/{StatusDot-CmSkukx0.js.map → StatusDot-WyvgqplP.js.map} +1 -1
- package/frontend/dist/assets/{ToggleGroup-sG_2LQom.js → ToggleGroup-CmeedsZU.js} +2 -2
- package/frontend/dist/assets/{ToggleGroup-sG_2LQom.js.map → ToggleGroup-CmeedsZU.js.map} +1 -1
- package/frontend/dist/assets/UsersPage-DqDFrIIW.js +2 -0
- package/frontend/dist/assets/UsersPage-DqDFrIIW.js.map +1 -0
- package/frontend/dist/assets/contextCost-CilWqGWT.js +2 -0
- package/frontend/dist/assets/contextCost-CilWqGWT.js.map +1 -0
- package/frontend/dist/assets/{framework-vendor-I9Y6AgD5.js → framework-vendor-BHAQX05P.js} +3 -3
- package/frontend/dist/assets/{framework-vendor-I9Y6AgD5.js.map → framework-vendor-BHAQX05P.js.map} +1 -1
- package/frontend/dist/assets/{i18n-vendor-y9bLzIeh.js → i18n-vendor-CMcB7XUR.js} +2 -2
- package/frontend/dist/assets/{i18n-vendor-y9bLzIeh.js.map → i18n-vendor-CMcB7XUR.js.map} +1 -1
- package/frontend/dist/assets/{icons-vendor-BFl4A9fq.js → icons-vendor-HZHHWeTa.js} +2 -2
- package/frontend/dist/assets/{icons-vendor-BFl4A9fq.js.map → icons-vendor-HZHHWeTa.js.map} +1 -1
- package/frontend/dist/assets/index-BvU2-VT8.js +3 -0
- package/frontend/dist/assets/{index-CLugsCsy.js.map → index-BvU2-VT8.js.map} +1 -1
- package/frontend/dist/assets/index-DtrCVU1h.css +1 -0
- package/frontend/dist/assets/passwordValidation-DTLWgUy9.js +2 -0
- package/frontend/dist/assets/passwordValidation-DTLWgUy9.js.map +1 -0
- package/frontend/dist/assets/{resourceService-33rS8QGJ.js → resourceService-BFH4w47h.js} +2 -2
- package/frontend/dist/assets/{resourceService-33rS8QGJ.js.map → resourceService-BFH4w47h.js.map} +1 -1
- package/frontend/dist/assets/useCostData-CoM1SxdS.js +2 -0
- package/frontend/dist/assets/useCostData-CoM1SxdS.js.map +1 -0
- package/frontend/dist/assets/useSettingsData-DKrECrG1.js +2 -0
- package/frontend/dist/assets/{useSettingsData-fK2bv9oN.js.map → useSettingsData-DKrECrG1.js.map} +1 -1
- package/frontend/dist/assets/variableDetection-CIrYDjrq.js +16 -0
- package/frontend/dist/assets/variableDetection-CIrYDjrq.js.map +1 -0
- package/frontend/dist/index.html +5 -5
- package/package.json +2 -2
- package/frontend/dist/assets/ConfirmDialog-CYfXEuyU.js +0 -2
- package/frontend/dist/assets/ConfirmDialog-CYfXEuyU.js.map +0 -1
- package/frontend/dist/assets/Dashboard-ZYVsSvOw.js +0 -2
- package/frontend/dist/assets/GroupsPage-JPtupGpI.js +0 -33
- package/frontend/dist/assets/MarketPage-BGnQQyXK.js +0 -3
- package/frontend/dist/assets/MarketPage-BGnQQyXK.js.map +0 -1
- package/frontend/dist/assets/ServersPage-Ca5W9cPW.js.map +0 -1
- package/frontend/dist/assets/SettingsPage-DgFBjp_O.js.map +0 -1
- package/frontend/dist/assets/UsersPage-PHkFXLL8.js +0 -2
- package/frontend/dist/assets/UsersPage-PHkFXLL8.js.map +0 -1
- package/frontend/dist/assets/contextCost-D_iNNbhX.js +0 -2
- package/frontend/dist/assets/contextCost-D_iNNbhX.js.map +0 -1
- package/frontend/dist/assets/index-CGvImZ3F.css +0 -1
- package/frontend/dist/assets/index-CLugsCsy.js +0 -3
- package/frontend/dist/assets/useSettingsData-fK2bv9oN.js +0 -2
- package/frontend/dist/assets/variableDetection-ByJ_cnxa.js +0 -16
- package/frontend/dist/assets/variableDetection-ByJ_cnxa.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openApiRequestBody.js","sourceRoot":"","sources":["../../src/utils/openApiRequestBody.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { logger } from './logger.js';
|
|
1
2
|
/**
|
|
2
3
|
* Utility functions for converting parameter types based on JSON schema definitions
|
|
3
4
|
*/
|
|
@@ -78,7 +79,7 @@ export function convertParametersToTypes(params, inputSchema) {
|
|
|
78
79
|
}
|
|
79
80
|
catch (error) {
|
|
80
81
|
// If conversion fails, keep the original value
|
|
81
|
-
|
|
82
|
+
logger.warn(`Failed to convert parameter '${key}' to type '${propType}':`, error);
|
|
82
83
|
convertedParams[key] = value;
|
|
83
84
|
}
|
|
84
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameterConversion.js","sourceRoot":"","sources":["../../src/utils/parameterConversion.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA2B,EAC3B,WAAgC;IAEhC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,eAAe,GAAwB,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAE1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,yCAAyC;YACzC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAE9B,IAAI,CAAC;YACH,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,SAAS,CAAC;gBACf,KAAK,QAAQ;oBACX,2BAA2B;oBAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;wBAClF,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAER,KAAK,SAAS;oBACZ,4BAA4B;oBAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;oBACzE,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAER,KAAK,OAAO;oBACV,oEAAoE;oBACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrD,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrE,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAER,KAAK,QAAQ;oBACX,qCAAqC;oBACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACH,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC3C,CAAC;wBAAC,MAAM,CAAC;4BACP,+BAA+B;4BAC/B,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBAC/B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAER;oBACE,yCAAyC;oBACzC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC7B,MAAM;YACV,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+CAA+C;YAC/C,
|
|
1
|
+
{"version":3,"file":"parameterConversion.js","sourceRoot":"","sources":["../../src/utils/parameterConversion.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/path.js
CHANGED
|
@@ -2,6 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { dirname } from 'path';
|
|
4
4
|
import { getCurrentModuleDir } from './moduleDir.js';
|
|
5
|
+
import { logger } from './logger.js';
|
|
5
6
|
// Project root directory - use process.cwd() as a simpler alternative
|
|
6
7
|
const rootDir = process.cwd();
|
|
7
8
|
// Cache the package root for performance
|
|
@@ -105,8 +106,8 @@ export const findPackageRoot = (startPath) => {
|
|
|
105
106
|
// Parent of cwd
|
|
106
107
|
path.resolve(process.cwd(), '..'));
|
|
107
108
|
if (debug) {
|
|
108
|
-
|
|
109
|
-
|
|
109
|
+
logger.log('DEBUG: Searching for package.json from:', startPath || 'multiple locations');
|
|
110
|
+
logger.log('DEBUG: Checking paths:', possibleRoots);
|
|
110
111
|
}
|
|
111
112
|
// Remove duplicates
|
|
112
113
|
const uniqueRoots = [...new Set(possibleRoots)];
|
|
@@ -117,7 +118,7 @@ export const findPackageRoot = (startPath) => {
|
|
|
117
118
|
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
118
119
|
if (pkg.name === 'mcphub' || pkg.name === '@samanhappy/mcphub') {
|
|
119
120
|
if (debug) {
|
|
120
|
-
|
|
121
|
+
logger.log(`DEBUG: Found package.json at ${packageJsonPath}`);
|
|
121
122
|
}
|
|
122
123
|
// Cache the result if no specific start path was requested
|
|
123
124
|
if (!startPath) {
|
|
@@ -129,13 +130,13 @@ export const findPackageRoot = (startPath) => {
|
|
|
129
130
|
catch (e) {
|
|
130
131
|
// Continue to the next potential root
|
|
131
132
|
if (debug) {
|
|
132
|
-
|
|
133
|
+
logger.error(`DEBUG: Failed to parse package.json at ${packageJsonPath}:`, e);
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
}
|
|
136
137
|
}
|
|
137
138
|
if (debug) {
|
|
138
|
-
|
|
139
|
+
logger.warn('DEBUG: Could not find package root directory');
|
|
139
140
|
}
|
|
140
141
|
// Cache null result as well to avoid repeated searches
|
|
141
142
|
if (!startPath) {
|
|
@@ -163,7 +164,7 @@ function resolveSettingsPathFromEnv(envPath, filename) {
|
|
|
163
164
|
const dir = path.dirname(settingsPath);
|
|
164
165
|
if (!fs.existsSync(dir)) {
|
|
165
166
|
fs.mkdirSync(dir, { recursive: true });
|
|
166
|
-
|
|
167
|
+
logger.log(`Created directory for settings at ${dir}`);
|
|
167
168
|
}
|
|
168
169
|
return settingsPath;
|
|
169
170
|
}
|
|
@@ -203,7 +204,7 @@ export const getConfigFilePath = (filename, description = 'Configuration') => {
|
|
|
203
204
|
if (packageRoot) {
|
|
204
205
|
const packageConfigPath = path.join(packageRoot, filename);
|
|
205
206
|
if (fs.existsSync(packageConfigPath)) {
|
|
206
|
-
|
|
207
|
+
logger.log(`Using ${description} from package: ${packageConfigPath}`);
|
|
207
208
|
return packageConfigPath;
|
|
208
209
|
}
|
|
209
210
|
}
|
|
@@ -212,7 +213,7 @@ export const getConfigFilePath = (filename, description = 'Configuration') => {
|
|
|
212
213
|
// even if the configuration file is missing. This fallback is particularly useful in
|
|
213
214
|
// development environments or when the file is optional.
|
|
214
215
|
const defaultPath = path.resolve(process.cwd(), filename);
|
|
215
|
-
|
|
216
|
+
logger.debug(`${description} file not found at any expected location, using default path: ${defaultPath}`);
|
|
216
217
|
return defaultPath;
|
|
217
218
|
};
|
|
218
219
|
//# sourceMappingURL=path.js.map
|
package/dist/utils/path.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
// tree-kill walks the stdio process tree by spawning `ps` on Linux (and other
|
|
4
|
+
// Unix platforms). Slim container images often ship without procps, so that
|
|
5
|
+
// spawn fails with ENOENT as an unhandled 'error' event on tree-kill's
|
|
6
|
+
// internal child process — an uncaught exception MCPHub cannot intercept via
|
|
7
|
+
// tree-kill's callback. Detect tool availability up front so callers can fall
|
|
8
|
+
// back to signaling the direct child only (issue #1072).
|
|
9
|
+
let cachedAvailability = null;
|
|
10
|
+
const WELL_KNOWN_BIN_DIRS = ['/bin', '/usr/bin', '/sbin', '/usr/sbin'];
|
|
11
|
+
function findExecutableOnDisk(name) {
|
|
12
|
+
const candidates = WELL_KNOWN_BIN_DIRS.map((dir) => path.join(dir, name));
|
|
13
|
+
const pathDirs = (process.env.PATH ?? '')
|
|
14
|
+
.split(path.delimiter)
|
|
15
|
+
.filter((dir) => dir.length > 0);
|
|
16
|
+
candidates.push(...pathDirs.map((dir) => path.join(dir, name)));
|
|
17
|
+
for (const candidate of candidates) {
|
|
18
|
+
try {
|
|
19
|
+
fs.accessSync(candidate, fs.constants.X_OK);
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Not present or not executable here — keep looking.
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Whether the external tool tree-kill relies on is available on this platform.
|
|
30
|
+
* win32 uses taskkill and darwin uses pgrep — both ship with the OS. All other
|
|
31
|
+
* platforms require `ps` from procps, which minimal images frequently lack.
|
|
32
|
+
* The result is cached for the process lifetime; use
|
|
33
|
+
* `resetProcessTreeKillCache` in tests.
|
|
34
|
+
*/
|
|
35
|
+
export function isProcessTreeKillAvailable() {
|
|
36
|
+
if (cachedAvailability === null) {
|
|
37
|
+
cachedAvailability =
|
|
38
|
+
process.platform === 'win32' ||
|
|
39
|
+
process.platform === 'darwin' ||
|
|
40
|
+
findExecutableOnDisk('ps');
|
|
41
|
+
}
|
|
42
|
+
return cachedAvailability;
|
|
43
|
+
}
|
|
44
|
+
export function resetProcessTreeKillCache() {
|
|
45
|
+
cachedAvailability = null;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=processTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processTree.js","sourceRoot":"","sources":["../../src/utils/processTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,8EAA8E;AAC9E,yDAAyD;AAEzD,IAAI,kBAAkB,GAAmB,IAAI,CAAC;AAE9C,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAEvE,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;SACtC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SACrB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B;IACxC,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,kBAAkB;YAChB,OAAO,CAAC,QAAQ,KAAK,OAAO;gBAC5B,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAC7B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxyTrust.js","sourceRoot":"","sources":["../../src/utils/proxyTrust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB,MAAM,sBAAsB,GAAG,CAC7B,GAAsB,EACtB,UAAyC,EAChC,EAAE,
|
|
1
|
+
{"version":3,"file":"proxyTrust.js","sourceRoot":"","sources":["../../src/utils/proxyTrust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB,MAAM,sBAAsB,GAAG,CAC7B,GAAsB,EACtB,UAAyC,EAChC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAyB,OAAO,CAAC,GAAG,EACpC,aAA4C,EAAE,CAAC,UAAU,EACtC,EAAE;IACrB,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAE3C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAEnD,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC,CAAC"}
|
package/dist/utils/rateLimit.js
CHANGED
|
@@ -24,4 +24,12 @@ export const mcpConnectionRateLimiter = createStandardRateLimiter({
|
|
|
24
24
|
windowMs: 60 * 1000,
|
|
25
25
|
max: 480,
|
|
26
26
|
});
|
|
27
|
+
export const authAttemptRateLimiter = createStandardRateLimiter({
|
|
28
|
+
windowMs: 15 * 60 * 1000,
|
|
29
|
+
max: 20,
|
|
30
|
+
});
|
|
31
|
+
export const spaPageRateLimiter = createStandardRateLimiter({
|
|
32
|
+
windowMs: 60 * 1000,
|
|
33
|
+
max: 600,
|
|
34
|
+
});
|
|
27
35
|
//# sourceMappingURL=rateLimit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../src/utils/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;IAC/B,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS;IACxC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC;AAE7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../src/utils/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;IAC/B,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS;IACxC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC;AAE7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAA0C,EAAE,EAAE,CACtF,SAAS,CAAC;IACR,GAAG,OAAO;IACV,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;IACpB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;CACtB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;IAC3D,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACxB,GAAG,EAAE,GAAG;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;IACrE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACxB,GAAG,EAAE,GAAG;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAyB,CAAC;IACtE,QAAQ,EAAE,EAAE,GAAG,IAAI;IACnB,GAAG,EAAE,GAAG;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;IAChE,QAAQ,EAAE,EAAE,GAAG,IAAI;IACnB,GAAG,EAAE,GAAG;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;IAC9D,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACxB,GAAG,EAAE,EAAE;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;IAC1D,QAAQ,EAAE,EAAE,GAAG,IAAI;IACnB,GAAG,EAAE,GAAG;CACT,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Shared dashboard-API admin gate. Mirrors the inline checks in
|
|
2
|
+
// userController/serverController so every global-scope mutation enforces the
|
|
3
|
+
// same rule: only requests carrying an admin identity may proceed.
|
|
4
|
+
export const requireAdmin = async (req, res) => {
|
|
5
|
+
const user = req.user;
|
|
6
|
+
if (!user || !user.isAdmin) {
|
|
7
|
+
res.status(403).json({
|
|
8
|
+
success: false,
|
|
9
|
+
message: 'Admin privileges required',
|
|
10
|
+
});
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=requireAdmin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requireAdmin.js","sourceRoot":"","sources":["../../src/utils/requireAdmin.ts"],"names":[],"mappings":"AAEA,gEAAgE;AAChE,8EAA8E;AAC9E,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAoB,EAAE;IAClF,MAAM,IAAI,GAAI,GAAW,CAAC,IAAI,CAAC;IAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,2BAA2B;SACrC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -97,6 +97,9 @@ const normalizeOpenApi = (openapi) => {
|
|
|
97
97
|
if (openapi.security) {
|
|
98
98
|
normalized.security = openapi.security;
|
|
99
99
|
}
|
|
100
|
+
if (openapi.specSecurity) {
|
|
101
|
+
normalized.specSecurity = openapi.specSecurity;
|
|
102
|
+
}
|
|
100
103
|
if (passthroughHeaders) {
|
|
101
104
|
normalized.passthroughHeaders = passthroughHeaders;
|
|
102
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverConfigPersistence.js","sourceRoot":"","sources":["../../src/utils/serverConfigPersistence.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,CAAC,KAAc,EAAsB,EAAE;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"serverConfigPersistence.js","sourceRoot":"","sources":["../../src/utils/serverConfigPersistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A config is privileged when it can execute arbitrary host commands:
|
|
3
|
+
* `stdio` servers spawn `command`/`args` locally as the MCPHub process, and
|
|
4
|
+
* any config without a remote target (url or OpenAPI definition) is treated
|
|
5
|
+
* as stdio-shaped. Only admins may create or modify such servers.
|
|
6
|
+
*/
|
|
7
|
+
export const isPrivilegedServerConfig = (config) => {
|
|
8
|
+
return Boolean(config.type === 'stdio' ||
|
|
9
|
+
config.command ||
|
|
10
|
+
(Array.isArray(config.args) && config.args.length > 0) ||
|
|
11
|
+
(!config.url && !config.openapi?.url && !config.openapi?.schema));
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=serverConfigValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverConfigValidation.js","sourceRoot":"","sources":["../../src/utils/serverConfigValidation.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAoB,EAAW,EAAE;IACxE,OAAO,OAAO,CACZ,MAAM,CAAC,IAAI,KAAK,OAAO;QACrB,MAAM,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACtD,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CACnE,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server name validation.
|
|
3
|
+
*
|
|
4
|
+
* Server names are embedded into downstream tool/prompt identifiers as
|
|
5
|
+
* `${serverName}${nameSeparator}${toolName}` (see mcpService), so the MCP
|
|
6
|
+
* tool-name charset — `A-Za-z0-9._-`, 1-128 chars, no spaces or other special
|
|
7
|
+
* characters — applies to server names indirectly. The MCPB upload path
|
|
8
|
+
* already enforced this pattern locally; this module lifts it into a shared
|
|
9
|
+
* helper used by every create/rename path.
|
|
10
|
+
*
|
|
11
|
+
* Names loaded from disk (e.g. `mcp_settings.json`) are NOT rejected here —
|
|
12
|
+
* callers only warn about them at startup, so existing configurations keep
|
|
13
|
+
* working after upgrade.
|
|
14
|
+
*/
|
|
15
|
+
export const SERVER_NAME_PATTERN = /^[A-Za-z0-9._-]+$/;
|
|
16
|
+
export const SERVER_NAME_MAX_LENGTH = 128;
|
|
17
|
+
export const validateServerName = (name) => {
|
|
18
|
+
if (typeof name !== 'string' || name.trim() === '') {
|
|
19
|
+
return { valid: false, message: 'Server name is required' };
|
|
20
|
+
}
|
|
21
|
+
const normalized = name.trim();
|
|
22
|
+
if (normalized.length > SERVER_NAME_MAX_LENGTH) {
|
|
23
|
+
return {
|
|
24
|
+
valid: false,
|
|
25
|
+
message: `Server name must be at most ${SERVER_NAME_MAX_LENGTH} characters`,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (!SERVER_NAME_PATTERN.test(normalized)) {
|
|
29
|
+
return {
|
|
30
|
+
valid: false,
|
|
31
|
+
message: 'Server name can only contain letters, numbers, dots, underscores, and hyphens (no spaces or other special characters)',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// `..` is allowed by the charset but rejected because names are used in
|
|
35
|
+
// filesystem paths (e.g. the MCPB upload directory).
|
|
36
|
+
if (normalized.includes('..')) {
|
|
37
|
+
return { valid: false, message: 'Server name cannot contain consecutive dots' };
|
|
38
|
+
}
|
|
39
|
+
return { valid: true, normalized };
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Turn an arbitrary string (e.g. an official Registry reverse-DNS name like
|
|
43
|
+
* `io.github.user/weather`) into a charset-safe server name. Characters
|
|
44
|
+
* outside `[A-Za-z0-9._-]` become `-`; consecutive dots collapse; leading /
|
|
45
|
+
* trailing hyphens are trimmed and the result is length-capped. Falls back to
|
|
46
|
+
* `'server'` for an empty result.
|
|
47
|
+
*/
|
|
48
|
+
export const slugifyServerName = (name) => {
|
|
49
|
+
const slugged = name
|
|
50
|
+
.replace(/[^A-Za-z0-9._-]+/g, '-')
|
|
51
|
+
.replace(/\.{2,}/g, '.')
|
|
52
|
+
.replace(/^-+|-+$/g, '')
|
|
53
|
+
.slice(0, SERVER_NAME_MAX_LENGTH);
|
|
54
|
+
return slugged || 'server';
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=serverNameValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverNameValidation.js","sourceRoot":"","sources":["../../src/utils/serverNameValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAU1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAA8B,EAAE;IAC9E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE/B,IAAI,UAAU,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,+BAA+B,sBAAsB,aAAa;SAC5E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,OAAO,EACL,uHAAuH;SAC1H,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,qDAAqD;IACrD,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;IAClF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE;IACxD,MAAM,OAAO,GAAG,IAAI;SACjB,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC;SACjC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACpC,OAAO,OAAO,IAAI,QAAQ,CAAC;AAC7B,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { logger } from './logger.js';
|
|
1
2
|
export const SHUTDOWN_GRACE_PERIOD_MS = 10000;
|
|
2
3
|
export const closeHttpServer = (server, connections, gracePeriodMs = SHUTDOWN_GRACE_PERIOD_MS) => {
|
|
3
4
|
return new Promise((resolve, reject) => {
|
|
@@ -5,7 +6,7 @@ export const closeHttpServer = (server, connections, gracePeriodMs = SHUTDOWN_GR
|
|
|
5
6
|
if (connections.size === 0) {
|
|
6
7
|
return;
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
+
logger.warn('[SHUTDOWN] Grace period expired; force closing HTTP connections', {
|
|
9
10
|
connections: connections.size,
|
|
10
11
|
gracePeriodMs,
|
|
11
12
|
});
|
|
@@ -19,7 +20,7 @@ export const closeHttpServer = (server, connections, gracePeriodMs = SHUTDOWN_GR
|
|
|
19
20
|
reject(error);
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
logger.log('[SHUTDOWN] HTTP server closed');
|
|
23
24
|
resolve();
|
|
24
25
|
});
|
|
25
26
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverShutdown.js","sourceRoot":"","sources":["../../src/utils/serverShutdown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serverShutdown.js","sourceRoot":"","sources":["../../src/utils/serverShutdown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAM,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAAmB,EACnB,WAAgC,EAChC,aAAa,GAAG,wBAAwB,EACzB,EAAE;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,iEAAiE,EAAE;gBAC7E,WAAW,EAAE,WAAW,CAAC,IAAI;gBAC7B,aAAa;aACd,CAAC,CAAC;YAEH,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBACjC,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,EAAE,aAAa,CAAC,CAAC;QAElB,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,YAAY,CAAC,eAAe,CAAC,CAAC;YAE9B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { expandEnvVars } from '../config/index.js';
|
|
2
2
|
import { getSystemConfigDao } from '../dao/DaoFactory.js';
|
|
3
|
+
import { logger } from './logger.js';
|
|
3
4
|
/**
|
|
4
5
|
* Gets the complete smart routing configuration from environment variables and settings.
|
|
5
6
|
*
|
|
@@ -86,7 +87,7 @@ function getConfigValue(envVars, settingsValue, defaultValue, transformer) {
|
|
|
86
87
|
return transformer(envVar);
|
|
87
88
|
}
|
|
88
89
|
catch (error) {
|
|
89
|
-
|
|
90
|
+
logger.warn(`Failed to transform environment variable "${envVar}":`, error);
|
|
90
91
|
continue;
|
|
91
92
|
}
|
|
92
93
|
}
|
|
@@ -97,7 +98,7 @@ function getConfigValue(envVars, settingsValue, defaultValue, transformer) {
|
|
|
97
98
|
return transformer(settingsValue);
|
|
98
99
|
}
|
|
99
100
|
catch (error) {
|
|
100
|
-
|
|
101
|
+
logger.warn('Failed to transform settings value:', error);
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
// Return default value
|
|
@@ -131,7 +132,7 @@ function parseBooleanEnvVar(value) {
|
|
|
131
132
|
return false;
|
|
132
133
|
}
|
|
133
134
|
// Default to false for unrecognized values
|
|
134
|
-
|
|
135
|
+
logger.warn(`Unrecognized boolean value for smart routing: "${value}", defaulting to false`);
|
|
135
136
|
return false;
|
|
136
137
|
}
|
|
137
138
|
//# sourceMappingURL=smartRouting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartRouting.js","sourceRoot":"","sources":["../../src/utils/smartRouting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"smartRouting.js","sourceRoot":"","sources":["../../src/utils/smartRouting.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/ssrf.js
CHANGED
|
@@ -59,11 +59,26 @@ function ipv6ToBigInt(addr) {
|
|
|
59
59
|
function isBlockedIpv6(big) {
|
|
60
60
|
if (big === 0n || big === 1n)
|
|
61
61
|
return true; // ::, ::1
|
|
62
|
-
|
|
62
|
+
const top10 = big >> 118n;
|
|
63
|
+
if (top10 === 0x3fan)
|
|
63
64
|
return true; // fe80::/10 link-local
|
|
64
|
-
if (
|
|
65
|
+
if (top10 === 0x3fbn)
|
|
66
|
+
return true; // fec0::/10 site-local (deprecated)
|
|
67
|
+
if (big >> 120n === 0xffn)
|
|
68
|
+
return true; // ff00::/8 multicast — never a valid dial target
|
|
69
|
+
const top16 = big >> 112n;
|
|
70
|
+
if (top16 === 0x2002n)
|
|
71
|
+
return true; // 2002::/16 6to4 transition (deprecated, RFC 7526)
|
|
72
|
+
if (top16 === 0x64ffn && big >> 80n === 0x64ff9b1n)
|
|
73
|
+
return true; // 64:ff9b:1::/48 local-use NAT64
|
|
74
|
+
const top32 = big >> 96n;
|
|
75
|
+
if (top32 === 0x20010000n)
|
|
76
|
+
return true; // 2001:0::/32 Teredo transition
|
|
77
|
+
if (top32 === 0x64ff9bn)
|
|
78
|
+
return true; // 64:ff9b::/96 NAT64 well-known prefix
|
|
79
|
+
if (big >> 121n === 0x7en)
|
|
65
80
|
return true; // fc00::/7 unique-local
|
|
66
|
-
if (
|
|
81
|
+
if (big >> 32n === 0xffffn)
|
|
67
82
|
return isBlockedIpv4Number(Number(big & 0xffffffffn)); // ::ffff:a.b.c.d
|
|
68
83
|
if (big < 0x100000000n)
|
|
69
84
|
return isBlockedIpv4Number(Number(big)); // ::a.b.c.d (deprecated, compatible)
|
|
@@ -94,14 +109,14 @@ export async function assertSafeUrl(rawUrl, opts = {}) {
|
|
|
94
109
|
throw new UnsafeUrlError(`Disallowed URL scheme: ${parsed.protocol}`);
|
|
95
110
|
}
|
|
96
111
|
if (allowInternal) {
|
|
97
|
-
return;
|
|
112
|
+
return parsed.href;
|
|
98
113
|
}
|
|
99
114
|
const host = parsed.hostname;
|
|
100
115
|
if (isIP(host) !== 0) {
|
|
101
116
|
if (isBlockedIp(host)) {
|
|
102
117
|
throw new UnsafeUrlError(`Blocked target IP: ${host}`);
|
|
103
118
|
}
|
|
104
|
-
return;
|
|
119
|
+
return parsed.href;
|
|
105
120
|
}
|
|
106
121
|
let addresses;
|
|
107
122
|
try {
|
|
@@ -118,6 +133,7 @@ export async function assertSafeUrl(rawUrl, opts = {}) {
|
|
|
118
133
|
throw new UnsafeUrlError(`Host ${host} resolves to blocked address: ${addr}`);
|
|
119
134
|
}
|
|
120
135
|
}
|
|
136
|
+
return parsed.href;
|
|
121
137
|
}
|
|
122
138
|
// Wraps a fetch so HTTP redirects (3xx) are followed manually with each hop
|
|
123
139
|
// validated against the SSRF blocklist, instead of letting the underlying
|
|
@@ -139,14 +155,11 @@ export function createRedirectValidatingFetch(baseFetch, allowInternal) {
|
|
|
139
155
|
return response;
|
|
140
156
|
}
|
|
141
157
|
const resolvedUrl = new URL(location, currentUrl).toString();
|
|
142
|
-
await assertSafeUrl(resolvedUrl, { allowInternal });
|
|
143
|
-
currentUrl = resolvedUrl;
|
|
158
|
+
currentUrl = await assertSafeUrl(resolvedUrl, { allowInternal });
|
|
144
159
|
hops++;
|
|
145
160
|
response = await baseFetch(currentUrl, { ...init, redirect: 'manual' });
|
|
146
161
|
}
|
|
147
|
-
if (response.status >= 300 &&
|
|
148
|
-
response.status < 400 &&
|
|
149
|
-
response.status !== 304) {
|
|
162
|
+
if (response.status >= 300 && response.status < 400 && response.status !== 304) {
|
|
150
163
|
throw new UnsafeUrlError('Too many redirects');
|
|
151
164
|
}
|
|
152
165
|
return response;
|
package/dist/utils/ssrf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssrf.js","sourceRoot":"","sources":["../../src/utils/ssrf.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ssrf.js","sourceRoot":"","sources":["../../src/utils/ssrf.ts"],"names":[],"mappings":"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"}
|