@ibm/ibmi-mcp-server 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -0
- package/dist/config/index.d.ts +100 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +463 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/resolver.d.ts +32 -0
- package/dist/config/resolver.d.ts.map +1 -0
- package/dist/config/resolver.js +60 -0
- package/dist/config/resolver.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/crypto.d.ts +11 -0
- package/dist/ibmi-mcp-server/auth/crypto.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/crypto.js +100 -0
- package/dist/ibmi-mcp-server/auth/crypto.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts +28 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js +243 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/index.d.ts +9 -0
- package/dist/ibmi-mcp-server/auth/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/index.js +8 -0
- package/dist/ibmi-mcp-server/auth/index.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.d.ts +86 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.js +214 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/types.d.ts +31 -0
- package/dist/ibmi-mcp-server/auth/types.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/types.js +5 -0
- package/dist/ibmi-mcp-server/auth/types.js.map +1 -0
- package/dist/ibmi-mcp-server/index.d.ts +8 -0
- package/dist/ibmi-mcp-server/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/index.js +126 -0
- package/dist/ibmi-mcp-server/index.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts +7 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js +7 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts +106 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js +145 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts +16 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js +110 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/common.d.ts +174 -0
- package/dist/ibmi-mcp-server/schemas/common.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/common.js +119 -0
- package/dist/ibmi-mcp-server/schemas/common.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/config.d.ts +858 -0
- package/dist/ibmi-mcp-server/schemas/config.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/config.js +248 -0
- package/dist/ibmi-mcp-server/schemas/config.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/index.d.ts +12 -0
- package/dist/ibmi-mcp-server/schemas/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/index.js +20 -0
- package/dist/ibmi-mcp-server/schemas/index.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/tools.d.ts +287 -0
- package/dist/ibmi-mcp-server/schemas/tools.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/tools.js +167 -0
- package/dist/ibmi-mcp-server/schemas/tools.js.map +1 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts +82 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js +262 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js.map +1 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts +130 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.js +431 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.js.map +1 -0
- package/dist/ibmi-mcp-server/services/connectionPool.d.ts +60 -0
- package/dist/ibmi-mcp-server/services/connectionPool.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/connectionPool.js +153 -0
- package/dist/ibmi-mcp-server/services/connectionPool.js.map +1 -0
- package/dist/ibmi-mcp-server/services/securityValidation.d.ts +35 -0
- package/dist/ibmi-mcp-server/services/securityValidation.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/securityValidation.js +93 -0
- package/dist/ibmi-mcp-server/services/securityValidation.js.map +1 -0
- package/dist/ibmi-mcp-server/services/sourceManager.d.ts +82 -0
- package/dist/ibmi-mcp-server/services/sourceManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/sourceManager.js +151 -0
- package/dist/ibmi-mcp-server/services/sourceManager.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts +9 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.js +9 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts +51 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.js +179 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts +52 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.js +161 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts +13 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.js +13 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts +64 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.js +190 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts +18 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.js +64 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts +42 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.js +156 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/index.d.ts +6 -0
- package/dist/ibmi-mcp-server/utils/cli/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/index.js +6 -0
- package/dist/ibmi-mcp-server/utils/cli/index.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.d.ts +77 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.js +309 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts +143 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +665 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts +71 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js +158 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts +206 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js +236 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +65 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js +236 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts +175 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.js +460 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts +126 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.js +240 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/types.d.ts +74 -0
- package/dist/ibmi-mcp-server/utils/config/types.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/types.js +8 -0
- package/dist/ibmi-mcp-server/utils/config/types.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts +116 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js +426 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts +182 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js +726 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts +90 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js +187 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +270 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/constants.d.ts +13 -0
- package/dist/mcp-server/constants.d.ts.map +1 -0
- package/dist/mcp-server/constants.js +13 -0
- package/dist/mcp-server/constants.js.map +1 -0
- package/dist/mcp-server/logging/index.d.ts +8 -0
- package/dist/mcp-server/logging/index.d.ts.map +1 -0
- package/dist/mcp-server/logging/index.js +8 -0
- package/dist/mcp-server/logging/index.js.map +1 -0
- package/dist/mcp-server/logging/setLevelHandler.d.ts +38 -0
- package/dist/mcp-server/logging/setLevelHandler.d.ts.map +1 -0
- package/dist/mcp-server/logging/setLevelHandler.js +83 -0
- package/dist/mcp-server/logging/setLevelHandler.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/index.d.ts +14 -0
- package/dist/mcp-server/resources/echoResource/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/index.js +14 -0
- package/dist/mcp-server/resources/echoResource/index.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/logic.d.ts +37 -0
- package/dist/mcp-server/resources/echoResource/logic.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/logic.js +46 -0
- package/dist/mcp-server/resources/echoResource/logic.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/registration.d.ts +7 -0
- package/dist/mcp-server/resources/echoResource/registration.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/registration.js +51 -0
- package/dist/mcp-server/resources/echoResource/registration.js.map +1 -0
- package/dist/mcp-server/resources/index.d.ts +10 -0
- package/dist/mcp-server/resources/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/index.js +19 -0
- package/dist/mcp-server/resources/index.js.map +1 -0
- package/dist/mcp-server/resources/utils/resource-utils.d.ts +43 -0
- package/dist/mcp-server/resources/utils/resource-utils.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/resource-utils.js +44 -0
- package/dist/mcp-server/resources/utils/resource-utils.js.map +1 -0
- package/dist/mcp-server/server.d.ts +23 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +114 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/index.d.ts +8 -0
- package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/index.js +8 -0
- package/dist/mcp-server/tools/catFactFetcher/index.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +52 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.js +95 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +9 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.js +43 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/index.d.ts +13 -0
- package/dist/mcp-server/tools/echoTool/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/index.js +13 -0
- package/dist/mcp-server/tools/echoTool/index.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/logic.d.ts +69 -0
- package/dist/mcp-server/tools/echoTool/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/logic.js +119 -0
- package/dist/mcp-server/tools/echoTool/logic.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/registration.d.ts +9 -0
- package/dist/mcp-server/tools/echoTool/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/registration.js +45 -0
- package/dist/mcp-server/tools/echoTool/registration.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/index.d.ts +7 -0
- package/dist/mcp-server/tools/imageTest/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/index.js +7 -0
- package/dist/mcp-server/tools/imageTest/index.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/logic.d.ts +27 -0
- package/dist/mcp-server/tools/imageTest/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/logic.js +44 -0
- package/dist/mcp-server/tools/imageTest/logic.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/registration.d.ts +9 -0
- package/dist/mcp-server/tools/imageTest/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/registration.js +49 -0
- package/dist/mcp-server/tools/imageTest/registration.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +4 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.js +13 -0
- package/dist/mcp-server/tools/index.js.map +1 -0
- package/dist/mcp-server/tools/utils/tool-utils.d.ts +43 -0
- package/dist/mcp-server/tools/utils/tool-utils.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/tool-utils.js +44 -0
- package/dist/mcp-server/tools/utils/tool-utils.js.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js +46 -0
- package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts +20 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js +58 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/auth/index.d.ts +14 -0
- package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/index.js +12 -0
- package/dist/mcp-server/transports/auth/index.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +15 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js +9 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +19 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js +53 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts +21 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js +64 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +8 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +118 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +8 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +118 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
- package/dist/mcp-server/transports/core/autoTransportManager.d.ts +48 -0
- package/dist/mcp-server/transports/core/autoTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/autoTransportManager.js +57 -0
- package/dist/mcp-server/transports/core/autoTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts +17 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js +20 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/headerUtils.d.ts +27 -0
- package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/headerUtils.js +53 -0
- package/dist/mcp-server/transports/core/headerUtils.js.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +77 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.js +150 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +81 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js +326 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +57 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js +151 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/transportRequest.d.ts +9 -0
- package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/transportRequest.js +2 -0
- package/dist/mcp-server/transports/core/transportRequest.js.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts +112 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.js +15 -0
- package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js +86 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts +27 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.js +407 -0
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js +6 -0
- package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/index.d.ts +8 -0
- package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/index.js +7 -0
- package/dist/mcp-server/transports/http/index.js.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +21 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +54 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/stdio/index.d.ts +6 -0
- package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/index.js +6 -0
- package/dist/mcp-server/transports/stdio/index.js.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +43 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js +71 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
- package/dist/services/duck-db/duckDBConnectionManager.d.ts +55 -0
- package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBConnectionManager.js +184 -0
- package/dist/services/duck-db/duckDBConnectionManager.js.map +1 -0
- package/dist/services/duck-db/duckDBQueryExecutor.d.ts +18 -0
- package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBQueryExecutor.js +115 -0
- package/dist/services/duck-db/duckDBQueryExecutor.js.map +1 -0
- package/dist/services/duck-db/duckDBService.d.ts +27 -0
- package/dist/services/duck-db/duckDBService.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBService.js +151 -0
- package/dist/services/duck-db/duckDBService.js.map +1 -0
- package/dist/services/duck-db/types.d.ts +135 -0
- package/dist/services/duck-db/types.d.ts.map +1 -0
- package/dist/services/duck-db/types.js +6 -0
- package/dist/services/duck-db/types.js.map +1 -0
- package/dist/services/llm-providers/openRouterProvider.d.ts +36 -0
- package/dist/services/llm-providers/openRouterProvider.d.ts.map +1 -0
- package/dist/services/llm-providers/openRouterProvider.js +235 -0
- package/dist/services/llm-providers/openRouterProvider.js.map +1 -0
- package/dist/services/supabase/supabaseClient.d.ts +25 -0
- package/dist/services/supabase/supabaseClient.d.ts.map +1 -0
- package/dist/services/supabase/supabaseClient.js +68 -0
- package/dist/services/supabase/supabaseClient.js.map +1 -0
- package/dist/storage/duckdbExample.d.ts +8 -0
- package/dist/storage/duckdbExample.d.ts.map +1 -0
- package/dist/storage/duckdbExample.js +197 -0
- package/dist/storage/duckdbExample.js.map +1 -0
- package/dist/types-global/errors.d.ts +101 -0
- package/dist/types-global/errors.d.ts.map +1 -0
- package/dist/types-global/errors.js +109 -0
- package/dist/types-global/errors.js.map +1 -0
- package/dist/utils/formatting/index.d.ts +10 -0
- package/dist/utils/formatting/index.d.ts.map +1 -0
- package/dist/utils/formatting/index.js +10 -0
- package/dist/utils/formatting/index.js.map +1 -0
- package/dist/utils/formatting/markdownBuilder.d.ts +348 -0
- package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
- package/dist/utils/formatting/markdownBuilder.js +501 -0
- package/dist/utils/formatting/markdownBuilder.js.map +1 -0
- package/dist/utils/formatting/sqlFormattingUtils.d.ts +69 -0
- package/dist/utils/formatting/sqlFormattingUtils.d.ts.map +1 -0
- package/dist/utils/formatting/sqlFormattingUtils.js +131 -0
- package/dist/utils/formatting/sqlFormattingUtils.js.map +1 -0
- package/dist/utils/formatting/tableFormatter.d.ts +268 -0
- package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/tableFormatter.js +550 -0
- package/dist/utils/formatting/tableFormatter.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/internal/asyncContext.d.ts +35 -0
- package/dist/utils/internal/asyncContext.d.ts.map +1 -0
- package/dist/utils/internal/asyncContext.js +38 -0
- package/dist/utils/internal/asyncContext.js.map +1 -0
- package/dist/utils/internal/errorHandler.d.ts +95 -0
- package/dist/utils/internal/errorHandler.d.ts.map +1 -0
- package/dist/utils/internal/errorHandler.js +210 -0
- package/dist/utils/internal/errorHandler.js.map +1 -0
- package/dist/utils/internal/index.d.ts +12 -0
- package/dist/utils/internal/index.d.ts.map +1 -0
- package/dist/utils/internal/index.js +12 -0
- package/dist/utils/internal/index.js.map +1 -0
- package/dist/utils/internal/logger.d.ts +30 -0
- package/dist/utils/internal/logger.d.ts.map +1 -0
- package/dist/utils/internal/logger.js +228 -0
- package/dist/utils/internal/logger.js.map +1 -0
- package/dist/utils/internal/logging-helpers.d.ts +49 -0
- package/dist/utils/internal/logging-helpers.d.ts.map +1 -0
- package/dist/utils/internal/logging-helpers.js +60 -0
- package/dist/utils/internal/logging-helpers.js.map +1 -0
- package/dist/utils/internal/performance.d.ts +19 -0
- package/dist/utils/internal/performance.d.ts.map +1 -0
- package/dist/utils/internal/performance.js +110 -0
- package/dist/utils/internal/performance.js.map +1 -0
- package/dist/utils/internal/requestContext.d.ts +41 -0
- package/dist/utils/internal/requestContext.d.ts.map +1 -0
- package/dist/utils/internal/requestContext.js +47 -0
- package/dist/utils/internal/requestContext.js.map +1 -0
- package/dist/utils/metrics/index.d.ts +8 -0
- package/dist/utils/metrics/index.d.ts.map +1 -0
- package/dist/utils/metrics/index.js +8 -0
- package/dist/utils/metrics/index.js.map +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +36 -0
- package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
- package/dist/utils/metrics/tokenCounter.js +115 -0
- package/dist/utils/metrics/tokenCounter.js.map +1 -0
- package/dist/utils/network/fetchWithTimeout.d.ts +22 -0
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
- package/dist/utils/network/fetchWithTimeout.js +78 -0
- package/dist/utils/network/fetchWithTimeout.js.map +1 -0
- package/dist/utils/network/index.d.ts +7 -0
- package/dist/utils/network/index.d.ts.map +1 -0
- package/dist/utils/network/index.js +6 -0
- package/dist/utils/network/index.js.map +1 -0
- package/dist/utils/parsing/dateParser.d.ts +73 -0
- package/dist/utils/parsing/dateParser.d.ts.map +1 -0
- package/dist/utils/parsing/dateParser.js +108 -0
- package/dist/utils/parsing/dateParser.js.map +1 -0
- package/dist/utils/parsing/index.d.ts +9 -0
- package/dist/utils/parsing/index.d.ts.map +1 -0
- package/dist/utils/parsing/index.js +9 -0
- package/dist/utils/parsing/index.js.map +1 -0
- package/dist/utils/parsing/jsonParser.d.ts +83 -0
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
- package/dist/utils/parsing/jsonParser.js +128 -0
- package/dist/utils/parsing/jsonParser.js.map +1 -0
- package/dist/utils/scheduling/index.d.ts +7 -0
- package/dist/utils/scheduling/index.d.ts.map +1 -0
- package/dist/utils/scheduling/index.js +7 -0
- package/dist/utils/scheduling/index.js.map +1 -0
- package/dist/utils/scheduling/scheduler.d.ts +73 -0
- package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
- package/dist/utils/scheduling/scheduler.js +155 -0
- package/dist/utils/scheduling/scheduler.js.map +1 -0
- package/dist/utils/security/idGenerator.d.ts +144 -0
- package/dist/utils/security/idGenerator.d.ts.map +1 -0
- package/dist/utils/security/idGenerator.js +232 -0
- package/dist/utils/security/idGenerator.js.map +1 -0
- package/dist/utils/security/index.d.ts +10 -0
- package/dist/utils/security/index.d.ts.map +1 -0
- package/dist/utils/security/index.js +10 -0
- package/dist/utils/security/index.js.map +1 -0
- package/dist/utils/security/rateLimiter.d.ts +109 -0
- package/dist/utils/security/rateLimiter.d.ts.map +1 -0
- package/dist/utils/security/rateLimiter.js +202 -0
- package/dist/utils/security/rateLimiter.js.map +1 -0
- package/dist/utils/security/sanitization.d.ts +185 -0
- package/dist/utils/security/sanitization.d.ts.map +1 -0
- package/dist/utils/security/sanitization.js +472 -0
- package/dist/utils/security/sanitization.js.map +1 -0
- package/dist/utils/telemetry/instrumentation.d.ts +8 -0
- package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
- package/dist/utils/telemetry/instrumentation.js +121 -0
- package/dist/utils/telemetry/instrumentation.js.map +1 -0
- package/dist/utils/telemetry/semconv.d.ts +16 -0
- package/dist/utils/telemetry/semconv.d.ts.map +1 -0
- package/dist/utils/telemetry/semconv.js +16 -0
- package/dist/utils/telemetry/semconv.js.map +1 -0
- package/package.json +161 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectionPool.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/connectionPool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Security validation types and constants for SQL query validation
|
|
3
|
+
* Centralized configuration for dangerous operations and patterns
|
|
4
|
+
*
|
|
5
|
+
* @module src/services/securityValidation
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Dangerous SQL operations that should be blocked in read-only mode
|
|
9
|
+
*/
|
|
10
|
+
export declare const DANGEROUS_OPERATIONS: readonly ["INSERT", "UPDATE", "DELETE", "REPLACE", "MERGE", "TRUNCATE", "DROP", "CREATE", "ALTER", "RENAME", "CALL", "EXEC", "EXECUTE", "SET", "DECLARE", "GRANT", "REVOKE", "DENY", "LOAD", "IMPORT", "EXPORT", "BULK", "SHUTDOWN", "RESTART", "KILL", "STOP", "START", "BACKUP", "RESTORE", "DUMP", "LOCK", "UNLOCK", "COMMIT", "ROLLBACK", "SAVEPOINT", "QCMDEXC", "SQL_EXECUTE_IMMEDIATE"];
|
|
11
|
+
/**
|
|
12
|
+
* Dangerous SQL functions that should be blocked
|
|
13
|
+
*/
|
|
14
|
+
export declare const DANGEROUS_FUNCTIONS: readonly ["SYSTEM", "QCMDEXC", "SQL_EXECUTE_IMMEDIATE", "SQLCMD", "LOAD_EXTENSION", "EXEC", "EXECUTE_IMMEDIATE", "EVAL", "CONCAT", "CHAR", "VARCHAR"];
|
|
15
|
+
/**
|
|
16
|
+
* Regex patterns for detecting dangerous SQL constructs
|
|
17
|
+
*/
|
|
18
|
+
export declare const DANGEROUS_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
19
|
+
/**
|
|
20
|
+
* Type for dangerous operations
|
|
21
|
+
*/
|
|
22
|
+
export type DangerousOperation = (typeof DANGEROUS_OPERATIONS)[number];
|
|
23
|
+
/**
|
|
24
|
+
* Type for dangerous functions
|
|
25
|
+
*/
|
|
26
|
+
export type DangerousFunction = (typeof DANGEROUS_FUNCTIONS)[number];
|
|
27
|
+
/**
|
|
28
|
+
* Security validation result
|
|
29
|
+
*/
|
|
30
|
+
export interface SecurityValidationResult {
|
|
31
|
+
isValid: boolean;
|
|
32
|
+
violations: string[];
|
|
33
|
+
validationMethod: "ast" | "regex" | "both";
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=securityValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"securityValidation.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/securityValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,gYAgDvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,uJAYtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,2EAcrB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;CAC5C"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Security validation types and constants for SQL query validation
|
|
3
|
+
* Centralized configuration for dangerous operations and patterns
|
|
4
|
+
*
|
|
5
|
+
* @module src/services/securityValidation
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Dangerous SQL operations that should be blocked in read-only mode
|
|
9
|
+
*/
|
|
10
|
+
export const DANGEROUS_OPERATIONS = [
|
|
11
|
+
// Data manipulation
|
|
12
|
+
"INSERT",
|
|
13
|
+
"UPDATE",
|
|
14
|
+
"DELETE",
|
|
15
|
+
"REPLACE",
|
|
16
|
+
"MERGE",
|
|
17
|
+
"TRUNCATE",
|
|
18
|
+
// Schema operations
|
|
19
|
+
"DROP",
|
|
20
|
+
"CREATE",
|
|
21
|
+
"ALTER",
|
|
22
|
+
"RENAME",
|
|
23
|
+
// System operations
|
|
24
|
+
"CALL",
|
|
25
|
+
"EXEC",
|
|
26
|
+
"EXECUTE",
|
|
27
|
+
"SET",
|
|
28
|
+
"DECLARE",
|
|
29
|
+
// Security operations
|
|
30
|
+
"GRANT",
|
|
31
|
+
"REVOKE",
|
|
32
|
+
"DENY",
|
|
33
|
+
// Data transfer
|
|
34
|
+
"LOAD",
|
|
35
|
+
"IMPORT",
|
|
36
|
+
"EXPORT",
|
|
37
|
+
"BULK",
|
|
38
|
+
// System control
|
|
39
|
+
"SHUTDOWN",
|
|
40
|
+
"RESTART",
|
|
41
|
+
"KILL",
|
|
42
|
+
"STOP",
|
|
43
|
+
"START",
|
|
44
|
+
// Backup/restore
|
|
45
|
+
"BACKUP",
|
|
46
|
+
"RESTORE",
|
|
47
|
+
"DUMP",
|
|
48
|
+
// Locking
|
|
49
|
+
"LOCK",
|
|
50
|
+
"UNLOCK",
|
|
51
|
+
// Transaction control (in some contexts dangerous)
|
|
52
|
+
"COMMIT",
|
|
53
|
+
"ROLLBACK",
|
|
54
|
+
"SAVEPOINT",
|
|
55
|
+
// IBM i specific
|
|
56
|
+
"QCMDEXC",
|
|
57
|
+
"SQL_EXECUTE_IMMEDIATE",
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* Dangerous SQL functions that should be blocked
|
|
61
|
+
*/
|
|
62
|
+
export const DANGEROUS_FUNCTIONS = [
|
|
63
|
+
"SYSTEM",
|
|
64
|
+
"QCMDEXC",
|
|
65
|
+
"SQL_EXECUTE_IMMEDIATE",
|
|
66
|
+
"SQLCMD",
|
|
67
|
+
"LOAD_EXTENSION",
|
|
68
|
+
"EXEC",
|
|
69
|
+
"EXECUTE_IMMEDIATE",
|
|
70
|
+
"EVAL",
|
|
71
|
+
"CONCAT",
|
|
72
|
+
"CHAR",
|
|
73
|
+
"VARCHAR", // Can be used for dynamic SQL construction
|
|
74
|
+
];
|
|
75
|
+
/**
|
|
76
|
+
* Regex patterns for detecting dangerous SQL constructs
|
|
77
|
+
*/
|
|
78
|
+
export const DANGEROUS_PATTERNS = [
|
|
79
|
+
// Dynamic SQL patterns
|
|
80
|
+
/\bCONCAT\s*\(/i,
|
|
81
|
+
/\b(CHAR|VARCHAR|CLOB)\s*\(/i,
|
|
82
|
+
// System function patterns
|
|
83
|
+
/\bSYSTEM\s*\(/i,
|
|
84
|
+
/\bLOAD_EXTENSION\s*\(/i,
|
|
85
|
+
/\bQCMDEXC\s*\(/i,
|
|
86
|
+
// Comment-based bypass attempts
|
|
87
|
+
/\/\*.*?(DROP|DELETE|INSERT|UPDATE).*?\*\//i,
|
|
88
|
+
// Multiple statement patterns
|
|
89
|
+
/;\s*(DROP|DELETE|INSERT|UPDATE|CREATE|ALTER)/i,
|
|
90
|
+
// Union-based attacks
|
|
91
|
+
/\bUNION\s+(ALL\s+)?\s*\(\s*(DROP|DELETE|INSERT|UPDATE)/i,
|
|
92
|
+
];
|
|
93
|
+
//# sourceMappingURL=securityValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"securityValidation.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/securityValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,UAAU;IACV,oBAAoB;IACpB,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,oBAAoB;IACpB,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;IACL,SAAS;IACT,sBAAsB;IACtB,OAAO;IACP,QAAQ;IACR,MAAM;IACN,gBAAgB;IAChB,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,iBAAiB;IACjB,UAAU;IACV,SAAS;IACT,MAAM;IACN,MAAM;IACN,OAAO;IACP,iBAAiB;IACjB,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;IACN,QAAQ;IACR,mDAAmD;IACnD,QAAQ;IACR,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,SAAS;IACT,uBAAuB;CACf,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,SAAS;IACT,uBAAuB;IACvB,QAAQ;IACR,gBAAgB;IAChB,MAAM;IACN,mBAAmB;IACnB,MAAM;IACN,QAAQ;IACR,MAAM;IACN,SAAS,EAAE,2CAA2C;CAC9C,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,uBAAuB;IACvB,gBAAgB;IAChB,6BAA6B;IAC7B,2BAA2B;IAC3B,gBAAgB;IAChB,wBAAwB;IACxB,iBAAiB;IACjB,gCAAgC;IAChC,4CAA4C;IAC5C,8BAA8B;IAC9B,+CAA+C;IAC/C,sBAAsB;IACtB,yDAAyD;CACjD,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Multi-source connection manager for YAML-based tools
|
|
3
|
+
* Manages multiple named IBM i connection pools based on YAML source configurations
|
|
4
|
+
*
|
|
5
|
+
* @module src/services/yaml-sources/sourceManager
|
|
6
|
+
*/
|
|
7
|
+
import { BindingValue, QueryResult } from "@ibm/mapepire-js";
|
|
8
|
+
import { SourceConfig, SqlToolSecurityConfig } from "../schemas/index.js";
|
|
9
|
+
import { RequestContext } from "../../utils/internal/requestContext.js";
|
|
10
|
+
import { BaseConnectionPool, PoolHealth } from "./baseConnectionPool.js";
|
|
11
|
+
/**
|
|
12
|
+
* Source health information
|
|
13
|
+
*/
|
|
14
|
+
export interface SourceHealth extends PoolHealth {
|
|
15
|
+
sourceName: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Multi-source connection manager
|
|
19
|
+
* Manages multiple named IBM i connection pools for YAML-based tools
|
|
20
|
+
*/
|
|
21
|
+
export declare class SourceManager extends BaseConnectionPool<string> {
|
|
22
|
+
private static instance;
|
|
23
|
+
private sourceConfigs;
|
|
24
|
+
/**
|
|
25
|
+
* Get the singleton instance of the SourceManager
|
|
26
|
+
*/
|
|
27
|
+
static getInstance(): SourceManager;
|
|
28
|
+
/**
|
|
29
|
+
* Register a new source configuration
|
|
30
|
+
* @param sourceName - Name of the source
|
|
31
|
+
* @param sourceConfig - Source configuration from YAML
|
|
32
|
+
* @param context - Request context for logging
|
|
33
|
+
*/
|
|
34
|
+
registerSource(sourceName: string, sourceConfig: SourceConfig, context?: RequestContext): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Execute a SQL query on a specific source
|
|
37
|
+
* @param sourceName - Name of the source to query
|
|
38
|
+
* @param query - SQL query string
|
|
39
|
+
* @param params - Query parameters
|
|
40
|
+
* @param context - Request context for logging
|
|
41
|
+
*/
|
|
42
|
+
executeQuery<T = unknown>(sourceName: string, query: string, params?: BindingValue[], context?: RequestContext, securityConfig?: SqlToolSecurityConfig): Promise<QueryResult<T>>;
|
|
43
|
+
/**
|
|
44
|
+
* Check the health of a specific source
|
|
45
|
+
* @param sourceName - Name of the source to check
|
|
46
|
+
* @param context - Request context for logging
|
|
47
|
+
*/
|
|
48
|
+
checkSourceHealth(sourceName: string, context?: RequestContext): Promise<SourceHealth>;
|
|
49
|
+
/**
|
|
50
|
+
* Get health status for all registered sources
|
|
51
|
+
* @param context - Request context for logging
|
|
52
|
+
*/
|
|
53
|
+
getAllSourcesHealth(context?: RequestContext): Promise<SourceHealth[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Close a specific source's connection pool
|
|
56
|
+
* @param sourceName - Name of the source to close
|
|
57
|
+
* @param context - Request context for logging
|
|
58
|
+
*/
|
|
59
|
+
closeSource(sourceName: string, context?: RequestContext): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Close all connection pools gracefully
|
|
62
|
+
* @param context - Request context for logging
|
|
63
|
+
*/
|
|
64
|
+
closeAllSources(context?: RequestContext): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Get list of registered source names
|
|
67
|
+
*/
|
|
68
|
+
getRegisteredSources(): string[];
|
|
69
|
+
/**
|
|
70
|
+
* Get detailed status of all sources
|
|
71
|
+
*/
|
|
72
|
+
getSourcesStatus(): Record<string, {
|
|
73
|
+
initialized: boolean;
|
|
74
|
+
connecting: boolean;
|
|
75
|
+
healthStatus: string;
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* Clear all registered sources (for testing)
|
|
79
|
+
*/
|
|
80
|
+
clearAllSources(): void;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=sourceManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceManager.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/sourceManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAEL,cAAc,EACf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,kBAAkB,EAElB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,kBAAkB,CAAC,MAAM,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IACnD,OAAO,CAAC,aAAa,CAAwC;IAE7D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;;;;OAKG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAsDhB;;;;;;OAMG;IACG,YAAY,CAAC,CAAC,GAAG,OAAO,EAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,EAAE,EACvB,OAAO,CAAC,EAAE,cAAc,EACxB,cAAc,CAAC,EAAE,qBAAqB,GACrC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAU1B;;;;OAIG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,CAAC;IAQxB;;;OAGG;IACG,mBAAmB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAc5E;;;;OAIG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAMhB;;;OAGG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9D;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,gBAAgB,IAAI,MAAM,CACxB,MAAM,EACN;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CACpE;IAgBD;;OAEG;IACH,eAAe,IAAI,IAAI;CAIxB"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Multi-source connection manager for YAML-based tools
|
|
3
|
+
* Manages multiple named IBM i connection pools based on YAML source configurations
|
|
4
|
+
*
|
|
5
|
+
* @module src/services/yaml-sources/sourceManager
|
|
6
|
+
*/
|
|
7
|
+
import { ErrorHandler, logger } from "../../utils/internal/index.js";
|
|
8
|
+
import { requestContextService, } from "../../utils/internal/requestContext.js";
|
|
9
|
+
import { JsonRpcErrorCode } from "../../types-global/errors.js";
|
|
10
|
+
import { BaseConnectionPool, } from "./baseConnectionPool.js";
|
|
11
|
+
/**
|
|
12
|
+
* Multi-source connection manager
|
|
13
|
+
* Manages multiple named IBM i connection pools for YAML-based tools
|
|
14
|
+
*/
|
|
15
|
+
export class SourceManager extends BaseConnectionPool {
|
|
16
|
+
static instance;
|
|
17
|
+
sourceConfigs = new Map();
|
|
18
|
+
/**
|
|
19
|
+
* Get the singleton instance of the SourceManager
|
|
20
|
+
*/
|
|
21
|
+
static getInstance() {
|
|
22
|
+
if (!SourceManager.instance) {
|
|
23
|
+
SourceManager.instance = new SourceManager();
|
|
24
|
+
}
|
|
25
|
+
return SourceManager.instance;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Register a new source configuration
|
|
29
|
+
* @param sourceName - Name of the source
|
|
30
|
+
* @param sourceConfig - Source configuration from YAML
|
|
31
|
+
* @param context - Request context for logging
|
|
32
|
+
*/
|
|
33
|
+
async registerSource(sourceName, sourceConfig, context) {
|
|
34
|
+
const operationContext = context ||
|
|
35
|
+
requestContextService.createRequestContext({
|
|
36
|
+
operation: "RegisterSource",
|
|
37
|
+
sourceName,
|
|
38
|
+
});
|
|
39
|
+
return ErrorHandler.tryCatch(async () => {
|
|
40
|
+
logger.info({
|
|
41
|
+
...operationContext,
|
|
42
|
+
host: sourceConfig.host,
|
|
43
|
+
port: sourceConfig.port || 8471,
|
|
44
|
+
user: sourceConfig.user.substring(0, 3) + "***", // Mask username for security
|
|
45
|
+
}, `Registering source: ${sourceName}`);
|
|
46
|
+
// Convert YAML source to pool connection config
|
|
47
|
+
const poolConfig = {
|
|
48
|
+
host: sourceConfig.host,
|
|
49
|
+
user: sourceConfig.user,
|
|
50
|
+
password: sourceConfig.password,
|
|
51
|
+
port: sourceConfig.port,
|
|
52
|
+
ignoreUnauthorized: sourceConfig["ignore-unauthorized"],
|
|
53
|
+
};
|
|
54
|
+
// Store the original source config for reference
|
|
55
|
+
this.sourceConfigs.set(sourceName, sourceConfig);
|
|
56
|
+
// Store the pool config for lazy initialization (don't initialize yet)
|
|
57
|
+
this.pools.set(sourceName, {
|
|
58
|
+
pool: null,
|
|
59
|
+
isInitialized: false,
|
|
60
|
+
isConnecting: false,
|
|
61
|
+
healthStatus: "unknown",
|
|
62
|
+
config: poolConfig,
|
|
63
|
+
});
|
|
64
|
+
logger.info(operationContext, `Source registered successfully: ${sourceName}`);
|
|
65
|
+
}, {
|
|
66
|
+
operation: "RegisterSource",
|
|
67
|
+
context: operationContext,
|
|
68
|
+
errorCode: JsonRpcErrorCode.ConfigurationError,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Execute a SQL query on a specific source
|
|
73
|
+
* @param sourceName - Name of the source to query
|
|
74
|
+
* @param query - SQL query string
|
|
75
|
+
* @param params - Query parameters
|
|
76
|
+
* @param context - Request context for logging
|
|
77
|
+
*/
|
|
78
|
+
async executeQuery(sourceName, query, params, context, securityConfig) {
|
|
79
|
+
return super.executeQuery(sourceName, query, params, context, securityConfig);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check the health of a specific source
|
|
83
|
+
* @param sourceName - Name of the source to check
|
|
84
|
+
* @param context - Request context for logging
|
|
85
|
+
*/
|
|
86
|
+
async checkSourceHealth(sourceName, context) {
|
|
87
|
+
const baseHealth = await super.checkPoolHealth(sourceName, context);
|
|
88
|
+
return {
|
|
89
|
+
sourceName,
|
|
90
|
+
...baseHealth,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get health status for all registered sources
|
|
95
|
+
* @param context - Request context for logging
|
|
96
|
+
*/
|
|
97
|
+
async getAllSourcesHealth(context) {
|
|
98
|
+
const operationContext = context ||
|
|
99
|
+
requestContextService.createRequestContext({
|
|
100
|
+
operation: "GetAllSourcesHealth",
|
|
101
|
+
});
|
|
102
|
+
const healthPromises = Array.from(this.getRegisteredPools()).map((sourceName) => this.checkSourceHealth(sourceName, operationContext));
|
|
103
|
+
return Promise.all(healthPromises);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Close a specific source's connection pool
|
|
107
|
+
* @param sourceName - Name of the source to close
|
|
108
|
+
* @param context - Request context for logging
|
|
109
|
+
*/
|
|
110
|
+
async closeSource(sourceName, context) {
|
|
111
|
+
await super.closePool(sourceName, context);
|
|
112
|
+
// Also clean up the source config
|
|
113
|
+
this.sourceConfigs.delete(sourceName);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Close all connection pools gracefully
|
|
117
|
+
* @param context - Request context for logging
|
|
118
|
+
*/
|
|
119
|
+
async closeAllSources(context) {
|
|
120
|
+
await super.closeAllPools(context);
|
|
121
|
+
// Clean up all source configs
|
|
122
|
+
this.sourceConfigs.clear();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get list of registered source names
|
|
126
|
+
*/
|
|
127
|
+
getRegisteredSources() {
|
|
128
|
+
return this.getRegisteredPools();
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get detailed status of all sources
|
|
132
|
+
*/
|
|
133
|
+
getSourcesStatus() {
|
|
134
|
+
const status = {};
|
|
135
|
+
for (const sourceName of this.getRegisteredPools()) {
|
|
136
|
+
const poolStatus = this.getPoolStatus(sourceName);
|
|
137
|
+
if (poolStatus) {
|
|
138
|
+
status[sourceName] = poolStatus;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return status;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Clear all registered sources (for testing)
|
|
145
|
+
*/
|
|
146
|
+
clearAllSources() {
|
|
147
|
+
this.clearAllPools();
|
|
148
|
+
this.sourceConfigs.clear();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=sourceManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceManager.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/sourceManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel file for the execute SQL tool
|
|
3
|
+
* This module exports the registration function and configuration utilities
|
|
4
|
+
* for the dynamic SQL execution tool.
|
|
5
|
+
*
|
|
6
|
+
* @module src/mcp-server/tools/executeSql/index
|
|
7
|
+
*/
|
|
8
|
+
export { registerExecuteSqlTool, setExecuteSqlConfig, getExecuteSqlConfig, isExecuteSqlEnabled, type ExecuteSqlToolConfig, } from "./registration.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/tools/executeSql/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel file for the execute SQL tool
|
|
3
|
+
* This module exports the registration function and configuration utilities
|
|
4
|
+
* for the dynamic SQL execution tool.
|
|
5
|
+
*
|
|
6
|
+
* @module src/mcp-server/tools/executeSql/index
|
|
7
|
+
*/
|
|
8
|
+
export { registerExecuteSqlTool, setExecuteSqlConfig, getExecuteSqlConfig, isExecuteSqlEnabled, } from "./registration.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/tools/executeSql/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Defines the core logic, schemas, and types for the `execute_sql` tool.
|
|
3
|
+
* This module provides dynamic SQL execution capabilities for the IBM i database.
|
|
4
|
+
* Unlike YAML tools with predefined statements, this tool accepts arbitrary SQL at runtime.
|
|
5
|
+
* @module src/mcp-server/tools/executeSql/logic
|
|
6
|
+
* @see {@link src/mcp-server/tools/executeSql/registration.ts} for the handler and registration logic.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
/**
|
|
10
|
+
* Zod schema defining the input parameters for the `execute_sql` tool.
|
|
11
|
+
* CRITICAL: The descriptions are sent to the LLM and must be clear.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ExecuteSqlInputSchema: z.ZodObject<{
|
|
14
|
+
sql: z.ZodString;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
sql: string;
|
|
17
|
+
}, {
|
|
18
|
+
sql: string;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Zod schema for the successful response of the `execute_sql` tool.
|
|
22
|
+
*/
|
|
23
|
+
export declare const ExecuteSqlResponseSchema: z.ZodObject<{
|
|
24
|
+
data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
25
|
+
rowCount: z.ZodNumber;
|
|
26
|
+
executionTimeMs: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
data: Record<string, unknown>[];
|
|
30
|
+
rowCount: number;
|
|
31
|
+
metadata?: Record<string, unknown> | undefined;
|
|
32
|
+
executionTimeMs?: number | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
data: Record<string, unknown>[];
|
|
35
|
+
rowCount: number;
|
|
36
|
+
metadata?: Record<string, unknown> | undefined;
|
|
37
|
+
executionTimeMs?: number | undefined;
|
|
38
|
+
}>;
|
|
39
|
+
export type ExecuteSqlInput = z.infer<typeof ExecuteSqlInputSchema>;
|
|
40
|
+
export type ExecuteSqlResponse = z.infer<typeof ExecuteSqlResponseSchema>;
|
|
41
|
+
/**
|
|
42
|
+
* Processes the core logic for the `execute_sql` tool.
|
|
43
|
+
* This function executes arbitrary SQL statements against the IBM i database.
|
|
44
|
+
* Only read-only operations are allowed for security.
|
|
45
|
+
*
|
|
46
|
+
* @param params - The validated input parameters containing the SQL statement
|
|
47
|
+
* @returns A promise resolving with the structured response data
|
|
48
|
+
* @throws {McpError} If the SQL execution encounters an unrecoverable issue
|
|
49
|
+
*/
|
|
50
|
+
export declare function executeSqlLogic(params: ExecuteSqlInput): Promise<ExecuteSqlResponse>;
|
|
51
|
+
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/tools/executeSql/logic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6BxB;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;EAShC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAiBnC,CAAC;AAGH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAsE1E;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAwF7B"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Defines the core logic, schemas, and types for the `execute_sql` tool.
|
|
3
|
+
* This module provides dynamic SQL execution capabilities for the IBM i database.
|
|
4
|
+
* Unlike YAML tools with predefined statements, this tool accepts arbitrary SQL at runtime.
|
|
5
|
+
* @module src/mcp-server/tools/executeSql/logic
|
|
6
|
+
* @see {@link src/mcp-server/tools/executeSql/registration.ts} for the handler and registration logic.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
import { JsonRpcErrorCode, McpError } from "../../../types-global/errors.js";
|
|
10
|
+
import { getRequestContext } from "../../../utils/index.js";
|
|
11
|
+
import { logger } from "../../../utils/internal/logger.js";
|
|
12
|
+
import { IBMiConnectionPool } from "../../services/connectionPool.js";
|
|
13
|
+
/**
|
|
14
|
+
* Restricted SQL keywords that are not allowed in execute-sql tool
|
|
15
|
+
* This provides basic protection against destructive operations
|
|
16
|
+
*/
|
|
17
|
+
const RESTRICTED_KEYWORDS = [
|
|
18
|
+
"DROP",
|
|
19
|
+
"DELETE",
|
|
20
|
+
"TRUNCATE",
|
|
21
|
+
"ALTER",
|
|
22
|
+
"CREATE",
|
|
23
|
+
"INSERT",
|
|
24
|
+
"UPDATE",
|
|
25
|
+
"GRANT",
|
|
26
|
+
"REVOKE",
|
|
27
|
+
"COMMIT",
|
|
28
|
+
"ROLLBACK",
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Maximum allowed SQL statement length to prevent abuse
|
|
32
|
+
*/
|
|
33
|
+
const MAX_SQL_LENGTH = 10000;
|
|
34
|
+
/**
|
|
35
|
+
* Zod schema defining the input parameters for the `execute_sql` tool.
|
|
36
|
+
* CRITICAL: The descriptions are sent to the LLM and must be clear.
|
|
37
|
+
*/
|
|
38
|
+
export const ExecuteSqlInputSchema = z.object({
|
|
39
|
+
sql: z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1, "SQL statement cannot be empty.")
|
|
42
|
+
.max(MAX_SQL_LENGTH, `SQL statement cannot exceed ${MAX_SQL_LENGTH} characters.`)
|
|
43
|
+
.describe("The SQL statement to execute against the IBM i database."),
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* Zod schema for the successful response of the `execute_sql` tool.
|
|
47
|
+
*/
|
|
48
|
+
export const ExecuteSqlResponseSchema = z.object({
|
|
49
|
+
data: z
|
|
50
|
+
.array(z.record(z.unknown()))
|
|
51
|
+
.describe("Array of result rows returned by the SQL query."),
|
|
52
|
+
rowCount: z
|
|
53
|
+
.number()
|
|
54
|
+
.int()
|
|
55
|
+
.min(0)
|
|
56
|
+
.describe("Number of rows returned by the query."),
|
|
57
|
+
executionTimeMs: z
|
|
58
|
+
.number()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Query execution time in milliseconds."),
|
|
61
|
+
metadata: z
|
|
62
|
+
.record(z.unknown())
|
|
63
|
+
.optional()
|
|
64
|
+
.describe("Additional metadata about the query execution."),
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* Validates SQL statement for security and safety
|
|
68
|
+
* @param sql - SQL statement to validate
|
|
69
|
+
* @throws {McpError} If the SQL statement contains restricted keywords or patterns
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
function validateSqlSecurity(sql) {
|
|
73
|
+
const context = getRequestContext();
|
|
74
|
+
const normalizedSql = sql.trim().toUpperCase();
|
|
75
|
+
// Check for restricted keywords at the beginning of statements
|
|
76
|
+
for (const keyword of RESTRICTED_KEYWORDS) {
|
|
77
|
+
if (normalizedSql.startsWith(keyword)) {
|
|
78
|
+
logger.warning({
|
|
79
|
+
...context,
|
|
80
|
+
keyword,
|
|
81
|
+
sqlPrefix: sql.substring(0, 50),
|
|
82
|
+
}, "Restricted SQL keyword detected");
|
|
83
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, `SQL statement cannot start with restricted keyword: ${keyword}. Only SELECT and read-only operations are allowed.`, { keyword, sqlPrefix: sql.substring(0, 50) });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Check for potentially dangerous patterns
|
|
87
|
+
const dangerousPatterns = [
|
|
88
|
+
/;\s*(DROP|DELETE|TRUNCATE|ALTER|CREATE|INSERT|UPDATE)\s+/i,
|
|
89
|
+
/UNION\s+SELECT.*INTO\s+/i,
|
|
90
|
+
/EXEC\s*\(/i,
|
|
91
|
+
/(CALL|EXECUTE)\s+/i,
|
|
92
|
+
];
|
|
93
|
+
for (const pattern of dangerousPatterns) {
|
|
94
|
+
if (pattern.test(sql)) {
|
|
95
|
+
logger.warning({
|
|
96
|
+
...context,
|
|
97
|
+
pattern: pattern.source,
|
|
98
|
+
sqlPrefix: sql.substring(0, 100),
|
|
99
|
+
}, "Potentially dangerous SQL pattern detected");
|
|
100
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, "SQL statement contains potentially dangerous patterns. Only safe, read-only queries are allowed.", {
|
|
101
|
+
pattern: pattern.source,
|
|
102
|
+
sqlPrefix: sql.substring(0, 100),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
logger.debug({
|
|
107
|
+
...context,
|
|
108
|
+
sqlLength: sql.length,
|
|
109
|
+
sqlPrefix: sql.substring(0, 50),
|
|
110
|
+
}, "SQL security validation passed");
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Processes the core logic for the `execute_sql` tool.
|
|
114
|
+
* This function executes arbitrary SQL statements against the IBM i database.
|
|
115
|
+
* Only read-only operations are allowed for security.
|
|
116
|
+
*
|
|
117
|
+
* @param params - The validated input parameters containing the SQL statement
|
|
118
|
+
* @returns A promise resolving with the structured response data
|
|
119
|
+
* @throws {McpError} If the SQL execution encounters an unrecoverable issue
|
|
120
|
+
*/
|
|
121
|
+
export async function executeSqlLogic(params) {
|
|
122
|
+
const context = getRequestContext();
|
|
123
|
+
logger.debug({
|
|
124
|
+
...context,
|
|
125
|
+
sqlLength: params.sql.length,
|
|
126
|
+
sqlPrefix: params.sql.substring(0, 50),
|
|
127
|
+
}, "Processing execute SQL logic");
|
|
128
|
+
// Validate SQL security before execution
|
|
129
|
+
validateSqlSecurity(params.sql);
|
|
130
|
+
const startTime = Date.now();
|
|
131
|
+
try {
|
|
132
|
+
// Execute the SQL query using the existing connection pool
|
|
133
|
+
const result = await IBMiConnectionPool.executeQuery(params.sql, [], // No parameters for dynamic SQL
|
|
134
|
+
context);
|
|
135
|
+
const executionTime = Date.now() - startTime;
|
|
136
|
+
if (!result.success) {
|
|
137
|
+
throw new McpError(JsonRpcErrorCode.DatabaseError, "SQL query execution failed", {
|
|
138
|
+
sql: params.sql.substring(0, 100),
|
|
139
|
+
sqlReturnCode: result.sql_rc,
|
|
140
|
+
executionTime,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
const response = {
|
|
144
|
+
data: result.data || [],
|
|
145
|
+
rowCount: result.data?.length || 0,
|
|
146
|
+
executionTimeMs: executionTime,
|
|
147
|
+
};
|
|
148
|
+
// Add metadata if available from the query result
|
|
149
|
+
if (result.metadata) {
|
|
150
|
+
response.metadata = result.metadata;
|
|
151
|
+
}
|
|
152
|
+
logger.debug({
|
|
153
|
+
...context,
|
|
154
|
+
rowCount: response.rowCount,
|
|
155
|
+
executionTime: response.executionTimeMs,
|
|
156
|
+
sqlPrefix: params.sql.substring(0, 50),
|
|
157
|
+
}, "SQL query executed successfully");
|
|
158
|
+
return response;
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
const executionTime = Date.now() - startTime;
|
|
162
|
+
logger.error({
|
|
163
|
+
...context,
|
|
164
|
+
error: error instanceof Error ? error.message : String(error),
|
|
165
|
+
executionTime,
|
|
166
|
+
sqlPrefix: params.sql.substring(0, 100),
|
|
167
|
+
}, "SQL execution failed");
|
|
168
|
+
// Re-throw McpErrors as-is, wrap other errors
|
|
169
|
+
if (error instanceof McpError) {
|
|
170
|
+
throw error;
|
|
171
|
+
}
|
|
172
|
+
throw new McpError(JsonRpcErrorCode.DatabaseError, `SQL execution failed: ${error instanceof Error ? error.message : String(error)}`, {
|
|
173
|
+
sql: params.sql.substring(0, 100),
|
|
174
|
+
executionTime,
|
|
175
|
+
originalError: error instanceof Error ? error.name : "Unknown",
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=logic.js.map
|