@mcp-abap-adt/core 2.1.3 → 2.1.6
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/CHANGELOG.md +18 -0
- package/dist/bin/help.d.ts +6 -0
- package/dist/bin/help.d.ts.map +1 -0
- package/dist/bin/help.js +59 -0
- package/dist/bin/mcp-abap-adt-v2.d.ts +9 -0
- package/dist/bin/mcp-abap-adt-v2.d.ts.map +1 -0
- package/dist/bin/mcp-abap-adt-v2.js +247 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts +21 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts.map +1 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js +24 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js.map +1 -0
- package/dist/handlers/class/high/handleCreateLocalTestClass.d.ts.map +1 -1
- package/dist/handlers/class/high/handleCreateLocalTestClass.js +6 -1
- package/dist/handlers/class/high/handleCreateLocalTestClass.js.map +1 -1
- package/dist/handlers/class/high/handleGetUnitTest.d.ts +38 -0
- package/dist/handlers/class/high/handleGetUnitTest.d.ts.map +1 -0
- package/dist/handlers/class/high/handleGetUnitTest.js +73 -0
- package/dist/handlers/class/high/handleGetUnitTest.js.map +1 -0
- package/dist/handlers/class/high/handleRunUnitTest.d.ts +122 -0
- package/dist/handlers/class/high/handleRunUnitTest.d.ts.map +1 -0
- package/dist/handlers/class/high/handleRunUnitTest.js +133 -0
- package/dist/handlers/class/high/handleRunUnitTest.js.map +1 -0
- package/dist/handlers/class/readonly/handleGetClass.d.ts +23 -0
- package/dist/handlers/class/readonly/handleGetClass.d.ts.map +1 -0
- package/dist/handlers/class/readonly/handleGetClass.js +77 -0
- package/dist/handlers/class/readonly/handleGetClass.js.map +1 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts +23 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts.map +1 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.js +79 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.js.map +1 -0
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts +23 -0
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts.map +1 -0
- package/dist/handlers/domain/readonly/handleGetDomain.js +79 -0
- package/dist/handlers/domain/readonly/handleGetDomain.js.map +1 -0
- package/dist/handlers/enhancement/readonly/handleGetEnhancements.d.ts.map +1 -1
- package/dist/handlers/enhancement/readonly/handleGetEnhancements.js +7 -7
- package/dist/handlers/enhancement/readonly/handleGetEnhancements.js.map +1 -1
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts +23 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts.map +1 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js +77 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js.map +1 -0
- package/dist/handlers/include/readonly/handleGetIncludesList.d.ts.map +1 -1
- package/dist/handlers/include/readonly/handleGetIncludesList.js +8 -5
- package/dist/handlers/include/readonly/handleGetIncludesList.js.map +1 -1
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts +23 -0
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts.map +1 -0
- package/dist/handlers/interface/readonly/handleGetInterface.js +77 -0
- package/dist/handlers/interface/readonly/handleGetInterface.js.map +1 -0
- package/dist/handlers/package/readonly/handleGetPackage.d.ts +22 -0
- package/dist/handlers/package/readonly/handleGetPackage.d.ts.map +1 -0
- package/dist/handlers/package/readonly/handleGetPackage.js +108 -0
- package/dist/handlers/package/readonly/handleGetPackage.js.map +1 -0
- package/dist/handlers/program/readonly/handleGetProgram.d.ts +23 -0
- package/dist/handlers/program/readonly/handleGetProgram.d.ts.map +1 -0
- package/dist/handlers/program/readonly/handleGetProgram.js +77 -0
- package/dist/handlers/program/readonly/handleGetProgram.js.map +1 -0
- package/dist/handlers/search/readonly/handleGetObjectsByType.d.ts.map +1 -1
- package/dist/handlers/search/readonly/handleGetObjectsByType.js +5 -1
- package/dist/handlers/search/readonly/handleGetObjectsByType.js.map +1 -1
- package/dist/handlers/search/readonly/handleGetObjectsList.d.ts.map +1 -1
- package/dist/handlers/search/readonly/handleGetObjectsList.js +8 -4
- package/dist/handlers/search/readonly/handleGetObjectsList.js.map +1 -1
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts +18 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts.map +1 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js +109 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js.map +1 -0
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts +23 -0
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts.map +1 -0
- package/dist/handlers/structure/readonly/handleGetStructure.js +77 -0
- package/dist/handlers/structure/readonly/handleGetStructure.js.map +1 -0
- package/dist/handlers/system/readonly/handleGetObjectInfo.d.ts.map +1 -1
- package/dist/handlers/system/readonly/handleGetObjectInfo.js +8 -14
- package/dist/handlers/system/readonly/handleGetObjectInfo.js.map +1 -1
- package/dist/handlers/table/readonly/handleGetTable.d.ts +23 -0
- package/dist/handlers/table/readonly/handleGetTable.d.ts.map +1 -0
- package/dist/handlers/table/readonly/handleGetTable.js +77 -0
- package/dist/handlers/table/readonly/handleGetTable.js.map +1 -0
- package/dist/handlers/view/readonly/handleGetView.d.ts +33 -0
- package/dist/handlers/view/readonly/handleGetView.d.ts.map +1 -0
- package/dist/handlers/view/readonly/handleGetView.js +90 -0
- package/dist/handlers/view/readonly/handleGetView.js.map +1 -0
- package/dist/index.d.ts +126 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2979 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/ServerConfigManager.d.ts +90 -0
- package/dist/lib/ServerConfigManager.d.ts.map +1 -0
- package/dist/lib/ServerConfigManager.js +237 -0
- package/dist/lib/ServerConfigManager.js.map +1 -0
- package/dist/lib/activationUtils.d.ts +59 -0
- package/dist/lib/activationUtils.d.ts.map +1 -0
- package/dist/lib/activationUtils.js +168 -0
- package/dist/lib/authBrokerFactory.d.ts +96 -0
- package/dist/lib/authBrokerFactory.d.ts.map +1 -0
- package/dist/lib/authBrokerFactory.js +531 -0
- package/dist/lib/authBrokerFactory.js.map +1 -0
- package/dist/lib/config/ServerConfig.d.ts +17 -0
- package/dist/lib/config/ServerConfig.d.ts.map +1 -0
- package/dist/lib/config/ServerConfig.js +7 -0
- package/dist/lib/config/ServerConfig.js.map +1 -0
- package/dist/lib/getFullCodeCache.d.ts +3 -0
- package/dist/lib/getFullCodeCache.d.ts.map +1 -0
- package/dist/lib/getFullCodeCache.js +56 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts +36 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js +268 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/examples/usage-example.d.ts +29 -0
- package/dist/lib/handlers/handlers/examples/usage-example.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/examples/usage-example.js +119 -0
- package/dist/lib/handlers/handlers/examples/usage-example.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js +322 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js +1214 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js +232 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js +57 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js +176 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/index.d.ts +13 -0
- package/dist/lib/handlers/handlers/groups/index.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/index.js +21 -0
- package/dist/lib/handlers/handlers/groups/index.js.map +1 -0
- package/dist/lib/handlers/handlers/index.d.ts +14 -0
- package/dist/lib/handlers/handlers/index.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/index.js +37 -0
- package/dist/lib/handlers/handlers/index.js.map +1 -0
- package/dist/lib/handlers/handlers/interfaces.d.ts +67 -0
- package/dist/lib/handlers/handlers/interfaces.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/interfaces.js +3 -0
- package/dist/lib/handlers/handlers/interfaces.js.map +1 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts +49 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js +88 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js.map +1 -0
- package/dist/lib/runtimeConfig.d.ts +20 -0
- package/dist/lib/runtimeConfig.d.ts.map +1 -0
- package/dist/lib/runtimeConfig.js +130 -0
- package/dist/lib/runtimeConfig.js.map +1 -0
- package/dist/lib/servers/BaseMcpServer.d.ts +56 -0
- package/dist/lib/servers/BaseMcpServer.d.ts.map +1 -0
- package/dist/lib/servers/BaseMcpServer.js +198 -0
- package/dist/lib/servers/BaseMcpServer.js.map +1 -0
- package/dist/lib/servers/ConnectionContext.d.ts +20 -0
- package/dist/lib/servers/ConnectionContext.d.ts.map +1 -0
- package/dist/lib/servers/ConnectionContext.js +3 -0
- package/dist/lib/servers/ConnectionContext.js.map +1 -0
- package/dist/lib/servers/SseServer.d.ts +32 -0
- package/dist/lib/servers/SseServer.d.ts.map +1 -0
- package/dist/lib/servers/SseServer.js +139 -0
- package/dist/lib/servers/SseServer.js.map +1 -0
- package/dist/lib/servers/StdioServer.d.ts +20 -0
- package/dist/lib/servers/StdioServer.d.ts.map +1 -0
- package/dist/lib/servers/StdioServer.js +32 -0
- package/dist/lib/servers/StdioServer.js.map +1 -0
- package/dist/lib/servers/StreamableHttpServer.d.ts +30 -0
- package/dist/lib/servers/StreamableHttpServer.d.ts.map +1 -0
- package/dist/lib/servers/StreamableHttpServer.js +83 -0
- package/dist/lib/servers/StreamableHttpServer.js.map +1 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts +36 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.js +268 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.js.map +1 -0
- package/dist/lib/servers/handlers/examples/usage-example.d.ts +29 -0
- package/dist/lib/servers/handlers/examples/usage-example.d.ts.map +1 -0
- package/dist/lib/servers/handlers/examples/usage-example.js +119 -0
- package/dist/lib/servers/handlers/examples/usage-example.js.map +1 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js +322 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js +1214 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js +232 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js +57 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js +176 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/index.d.ts +13 -0
- package/dist/lib/servers/handlers/groups/index.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/index.js +21 -0
- package/dist/lib/servers/handlers/groups/index.js.map +1 -0
- package/dist/lib/servers/handlers/index.d.ts +14 -0
- package/dist/lib/servers/handlers/index.d.ts.map +1 -0
- package/dist/lib/servers/handlers/index.js +37 -0
- package/dist/lib/servers/handlers/index.js.map +1 -0
- package/dist/lib/servers/handlers/interfaces.d.ts +67 -0
- package/dist/lib/servers/handlers/interfaces.d.ts.map +1 -0
- package/dist/lib/servers/handlers/interfaces.js +3 -0
- package/dist/lib/servers/handlers/interfaces.js.map +1 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts +49 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts.map +1 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js +88 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js.map +1 -0
- package/dist/lib/servers/index.d.ts +5 -0
- package/dist/lib/servers/index.d.ts.map +1 -0
- package/dist/lib/servers/index.js +21 -0
- package/dist/lib/servers/index.js.map +1 -0
- package/dist/lib/servers/launcher.d.ts +2 -0
- package/dist/lib/servers/launcher.d.ts.map +1 -0
- package/dist/lib/servers/launcher.js +123 -0
- package/dist/lib/servers/launcher.js.map +1 -0
- package/dist/lib/servers/mcp_handlers.d.ts +25 -0
- package/dist/lib/servers/mcp_handlers.d.ts.map +1 -0
- package/dist/lib/servers/mcp_handlers.js +822 -0
- package/dist/lib/servers/mcp_handlers.js.map +1 -0
- package/dist/lib/servers/mcp_server.d.ts +7 -0
- package/dist/lib/servers/mcp_server.d.ts.map +1 -0
- package/dist/lib/servers/mcp_server.js +12 -0
- package/dist/lib/servers/utils.d.ts +42 -0
- package/dist/lib/servers/utils.d.ts.map +1 -0
- package/dist/lib/servers/utils.js +620 -0
- package/dist/lib/servers/utils.js.map +1 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts +7 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts.map +1 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.js +218 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts +20 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.js +70 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts +21 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.js +36 -0
- package/dist/lib/servers/v2/connection/index.d.ts +6 -0
- package/dist/lib/servers/v2/connection/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/index.js +10 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts +29 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.js +79 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts +38 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.js +38 -0
- package/dist/lib/servers/v2/factory/index.d.ts +6 -0
- package/dist/lib/servers/v2/factory/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/index.js +10 -0
- package/dist/lib/servers/v2/index.d.ts +9 -0
- package/dist/lib/servers/v2/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/index.js +27 -0
- package/dist/lib/servers/v2/index.js.map +1 -0
- package/dist/lib/servers/v2/interfaces/connection.d.ts +188 -0
- package/dist/lib/servers/v2/interfaces/connection.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/connection.js +7 -0
- package/dist/lib/servers/v2/interfaces/index.d.ts +10 -0
- package/dist/lib/servers/v2/interfaces/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/index.js +25 -0
- package/dist/lib/servers/v2/interfaces/protocol.d.ts +30 -0
- package/dist/lib/servers/v2/interfaces/protocol.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/protocol.js +7 -0
- package/dist/lib/servers/v2/interfaces/session.d.ts +98 -0
- package/dist/lib/servers/v2/interfaces/session.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/session.js +7 -0
- package/dist/lib/servers/v2/interfaces/transport.d.ts +88 -0
- package/dist/lib/servers/v2/interfaces/transport.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/transport.js +7 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts +21 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts.map +1 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.js +77 -0
- package/dist/lib/servers/v2/protocol/index.d.ts +5 -0
- package/dist/lib/servers/v2/protocol/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/protocol/index.js +8 -0
- package/dist/lib/servers/v2/server/McpServer.d.ts +76 -0
- package/dist/lib/servers/v2/server/McpServer.d.ts.map +1 -0
- package/dist/lib/servers/v2/server/McpServer.js +243 -0
- package/dist/lib/servers/v2/server/index.d.ts +5 -0
- package/dist/lib/servers/v2/server/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/server/index.js +8 -0
- package/dist/lib/servers/v2/session/SessionManager.d.ts +40 -0
- package/dist/lib/servers/v2/session/SessionManager.d.ts.map +1 -0
- package/dist/lib/servers/v2/session/SessionManager.js +136 -0
- package/dist/lib/servers/v2/session/index.d.ts +5 -0
- package/dist/lib/servers/v2/session/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/session/index.js +8 -0
- package/dist/lib/servers/v2/transports/SseTransport.d.ts +49 -0
- package/dist/lib/servers/v2/transports/SseTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/SseTransport.js +89 -0
- package/dist/lib/servers/v2/transports/StdioTransport.d.ts +31 -0
- package/dist/lib/servers/v2/transports/StdioTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/StdioTransport.js +91 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts +51 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.js +147 -0
- package/dist/lib/servers/v2/transports/index.d.ts +7 -0
- package/dist/lib/servers/v2/transports/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/index.js +12 -0
- package/dist/lib/servers/v2/types/common.d.ts +17 -0
- package/dist/lib/servers/v2/types/common.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/common.js +6 -0
- package/dist/lib/servers/v2/types/common.js.map +1 -0
- package/dist/lib/servers/v2/types/index.d.ts +8 -0
- package/dist/lib/servers/v2/types/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/index.js +24 -0
- package/dist/lib/servers/v2/types/index.js.map +1 -0
- package/dist/lib/servers/v2/types/transport.d.ts +28 -0
- package/dist/lib/servers/v2/types/transport.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/transport.js +8 -0
- package/dist/lib/servers/v2/types/transport.js.map +1 -0
- package/dist/lib/servers/v2/utils/StdioLogger.d.ts +17 -0
- package/dist/lib/servers/v2/utils/StdioLogger.d.ts.map +1 -0
- package/dist/lib/servers/v2/utils/StdioLogger.js +33 -0
- package/dist/lib/servers/v2/utils/StdioLogger.js.map +1 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.d.ts +42 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.d.ts.map +1 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.js +53 -0
- package/dist/lib/stores/UnixFileSessionStore.d.ts +54 -0
- package/dist/lib/stores/UnixFileSessionStore.d.ts.map +1 -0
- package/dist/lib/stores/UnixFileSessionStore.js +70 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts +42 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts.map +1 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.js +53 -0
- package/dist/lib/stores/WindowsFileSessionStore.d.ts +54 -0
- package/dist/lib/stores/WindowsFileSessionStore.d.ts.map +1 -0
- package/dist/lib/stores/WindowsFileSessionStore.js +70 -0
- package/dist/lib/toolsRegistry.d.ts +13 -0
- package/dist/lib/toolsRegistry.d.ts.map +1 -0
- package/dist/lib/toolsRegistry.js +410 -0
- package/dist/lib/transportConfig.d.ts +27 -0
- package/dist/lib/transportConfig.d.ts.map +1 -0
- package/dist/lib/transportConfig.js +124 -0
- package/dist/lib/transports/stdio.d.ts +10 -0
- package/dist/lib/transports/stdio.d.ts.map +1 -0
- package/dist/lib/transports/stdio.js +73 -0
- package/dist/lib/utils.d.ts +37 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +83 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/yamlConfig.d.ts +59 -0
- package/dist/lib/yamlConfig.d.ts.map +1 -0
- package/dist/lib/yamlConfig.js +349 -0
- package/dist/lib/yamlConfig.js.map +1 -0
- package/dist/server/launcher.js +49 -0
- package/dist/server/launcher.js.map +1 -1
- package/dist/server/v1/AuthBrokerConfig.d.ts +19 -0
- package/dist/server/v1/AuthBrokerConfig.d.ts.map +1 -0
- package/dist/server/v1/AuthBrokerConfig.js +44 -0
- package/dist/server/v1/AuthBrokerConfig.js.map +1 -0
- package/dist/server/v1/IServerConfig.d.ts +17 -0
- package/dist/server/v1/IServerConfig.d.ts.map +1 -0
- package/dist/server/v1/IServerConfig.js +7 -0
- package/dist/server/v1/IServerConfig.js.map +1 -0
- package/dist/server/v1/ServerConfig.d.ts +16 -0
- package/dist/server/v1/ServerConfig.d.ts.map +1 -0
- package/dist/server/v1/ServerConfig.js +6 -0
- package/dist/server/v1/ServerConfig.js.map +1 -0
- package/dist/server/v1/embeddable-server.d.ts +89 -0
- package/dist/server/v1/embeddable-server.d.ts.map +1 -0
- package/dist/server/v1/embeddable-server.js +83 -0
- package/dist/server/v1/embeddable-server.js.map +1 -0
- package/dist/server/v1/index.d.ts +30 -0
- package/dist/server/v1/index.d.ts.map +1 -0
- package/dist/server/v1/index.js +65 -0
- package/dist/server/v1/index.js.map +1 -0
- package/dist/server/v1/legacy-server.d.ts +141 -0
- package/dist/server/v1/legacy-server.d.ts.map +1 -0
- package/dist/server/v1/legacy-server.js +2099 -0
- package/dist/server/v1/legacy-server.js.map +1 -0
- package/dist/server/v1/mcp_handlers.d.ts +19 -0
- package/dist/server/v1/mcp_handlers.d.ts.map +1 -0
- package/dist/server/v1/mcp_handlers.js +85 -0
- package/dist/server/v1/mcp_handlers.js.map +1 -0
- package/dist/server/v2/AuthBrokerConfig.d.ts +22 -0
- package/dist/server/v2/AuthBrokerConfig.d.ts.map +1 -0
- package/dist/server/v2/AuthBrokerConfig.js +46 -0
- package/dist/server/v2/AuthBrokerConfig.js.map +1 -0
- package/dist/server/v2/BaseMcpServer.d.ts +67 -0
- package/dist/server/v2/BaseMcpServer.d.ts.map +1 -0
- package/dist/server/v2/BaseMcpServer.js +273 -0
- package/dist/server/v2/BaseMcpServer.js.map +1 -0
- package/dist/server/v2/ConnectionContext.d.ts +20 -0
- package/dist/server/v2/ConnectionContext.d.ts.map +1 -0
- package/dist/server/v2/ConnectionContext.js +3 -0
- package/dist/server/v2/ConnectionContext.js.map +1 -0
- package/dist/server/v2/IHttpApplication.d.ts +42 -0
- package/dist/server/v2/IHttpApplication.d.ts.map +1 -0
- package/dist/server/v2/IHttpApplication.js +3 -0
- package/dist/server/v2/IHttpApplication.js.map +1 -0
- package/dist/server/v2/IServerConfig.d.ts +15 -0
- package/dist/server/v2/IServerConfig.d.ts.map +1 -0
- package/dist/server/v2/IServerConfig.js +7 -0
- package/dist/server/v2/IServerConfig.js.map +1 -0
- package/dist/server/v2/ServerConfig.d.ts +16 -0
- package/dist/server/v2/ServerConfig.d.ts.map +1 -0
- package/dist/server/v2/ServerConfig.js +6 -0
- package/dist/server/v2/ServerConfig.js.map +1 -0
- package/dist/server/v2/SseServer.d.ts +95 -0
- package/dist/server/v2/SseServer.d.ts.map +1 -0
- package/dist/server/v2/SseServer.js +217 -0
- package/dist/server/v2/SseServer.js.map +1 -0
- package/dist/server/v2/StdioServer.d.ts +20 -0
- package/dist/server/v2/StdioServer.d.ts.map +1 -0
- package/dist/server/v2/StdioServer.js +32 -0
- package/dist/server/v2/StdioServer.js.map +1 -0
- package/dist/server/v2/StreamableHttpServer.d.ts +94 -0
- package/dist/server/v2/StreamableHttpServer.d.ts.map +1 -0
- package/dist/server/v2/StreamableHttpServer.js +170 -0
- package/dist/server/v2/StreamableHttpServer.js.map +1 -0
- package/dist/server/v2/index.d.ts +6 -0
- package/dist/server/v2/index.d.ts.map +1 -0
- package/dist/server/v2/index.js +22 -0
- package/dist/server/v2/index.js.map +1 -0
- package/dist/server/v2/launcher.d.ts +2 -0
- package/dist/server/v2/launcher.d.ts.map +1 -0
- package/dist/server/v2/launcher.js +181 -0
- package/dist/server/v2/launcher.js.map +1 -0
- package/dist/server/v2/mcp_handlers.d.ts +25 -0
- package/dist/server/v2/mcp_handlers.d.ts.map +1 -0
- package/dist/server/v2/mcp_handlers.js +828 -0
- package/dist/server/v2/mcp_handlers.js.map +1 -0
- package/dist/server/v2/utils.d.ts +42 -0
- package/dist/server/v2/utils.d.ts.map +1 -0
- package/dist/server/v2/utils.js +620 -0
- package/dist/server/v2/utils.js.map +1 -0
- package/dist/tools/test-v2-server-stdio-compiled.js +132 -0
- package/dist/utils/lockStateManager.d.ts +2 -12
- package/dist/utils/lockStateManager.d.ts.map +1 -1
- package/dist/utils/lockStateManager.js +4 -63
- package/dist/utils/lockStateManager.js.map +1 -1
- package/docs/user-guide/AVAILABLE_TOOLS.md +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,620 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Utility functions for MCP ABAP ADT Server
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.showHelp = showHelp;
|
|
19
|
+
exports.getArgValue = getArgValue;
|
|
20
|
+
exports.hasFlag = hasFlag;
|
|
21
|
+
exports.parseBoolean = parseBoolean;
|
|
22
|
+
exports.resolvePortOption = resolvePortOption;
|
|
23
|
+
exports.resolveBooleanOption = resolveBooleanOption;
|
|
24
|
+
exports.resolveListOption = resolveListOption;
|
|
25
|
+
exports.parseTransportConfig = parseTransportConfig;
|
|
26
|
+
exports.setSapConfigOverride = setSapConfigOverride;
|
|
27
|
+
exports.setAbapConnectionOverride = setAbapConnectionOverride;
|
|
28
|
+
exports.getConfig = getConfig;
|
|
29
|
+
const utils_1 = require("../../lib/utils");
|
|
30
|
+
/**
|
|
31
|
+
* Display help message
|
|
32
|
+
*/
|
|
33
|
+
function showHelp() {
|
|
34
|
+
const help = `
|
|
35
|
+
MCP ABAP ADT Server - SAP ABAP Development Tools MCP Integration
|
|
36
|
+
|
|
37
|
+
USAGE:
|
|
38
|
+
mcp-abap-adt [options]
|
|
39
|
+
|
|
40
|
+
DESCRIPTION:
|
|
41
|
+
MCP server for interacting with SAP ABAP systems via ADT (ABAP Development Tools).
|
|
42
|
+
Supports multiple transport modes: HTTP (default), stdio, and SSE.
|
|
43
|
+
|
|
44
|
+
TRANSPORT MODES:
|
|
45
|
+
Default: stdio (for MCP clients like Cline, Cursor, Claude Desktop)
|
|
46
|
+
HTTP: --transport=http (for web interfaces, receives config via HTTP headers)
|
|
47
|
+
SSE: --transport=sse
|
|
48
|
+
|
|
49
|
+
OPTIONS:
|
|
50
|
+
--help Show this help message
|
|
51
|
+
--config=<path> Path to YAML configuration file
|
|
52
|
+
If file doesn't exist, generates a template and exits
|
|
53
|
+
Command-line arguments override YAML values
|
|
54
|
+
Example: --config=config.yaml
|
|
55
|
+
|
|
56
|
+
YAML CONFIGURATION:
|
|
57
|
+
Instead of passing many command-line arguments, you can use a YAML config file:
|
|
58
|
+
|
|
59
|
+
mcp-abap-adt --config=config.yaml
|
|
60
|
+
|
|
61
|
+
If the file doesn't exist, a template will be generated automatically and the command will exit.
|
|
62
|
+
Edit the template to configure your server settings, then run the command again.
|
|
63
|
+
|
|
64
|
+
The YAML file is validated on load - invalid configurations will cause the command to exit with an error.
|
|
65
|
+
|
|
66
|
+
Command-line arguments always override YAML values for flexibility.
|
|
67
|
+
|
|
68
|
+
See docs/configuration/YAML_CONFIG.md for detailed documentation.
|
|
69
|
+
|
|
70
|
+
ENVIRONMENT FILE:
|
|
71
|
+
--env=<path> Path to .env file (uses .env instead of auth-broker)
|
|
72
|
+
--env <path> Alternative syntax for --env
|
|
73
|
+
--auth-broker Force use of auth-broker (service keys) instead of .env file
|
|
74
|
+
Ignores .env file even if present in current directory
|
|
75
|
+
By default, .env in current directory is used automatically (if exists)
|
|
76
|
+
--auth-broker-path=<path> Custom path for auth-broker service keys and sessions
|
|
77
|
+
Creates service-keys and sessions subdirectories in this path
|
|
78
|
+
Example: --auth-broker-path=~/prj/tmp/
|
|
79
|
+
This will use ~/prj/tmp/service-keys and ~/prj/tmp/sessions
|
|
80
|
+
--mcp=<destination> Default MCP destination name (overrides x-mcp-destination header)
|
|
81
|
+
If specified, this destination will be used when x-mcp-destination
|
|
82
|
+
header is not provided in the request
|
|
83
|
+
Example: --mcp=TRIAL
|
|
84
|
+
This allows using auth-broker with stdio and SSE transports
|
|
85
|
+
When --mcp is specified, .env file is not loaded automatically
|
|
86
|
+
(even if it exists in current directory)
|
|
87
|
+
|
|
88
|
+
TRANSPORT SELECTION:
|
|
89
|
+
--transport=<type> Transport type: stdio|http|streamable-http|sse
|
|
90
|
+
Default: stdio (for MCP clients)
|
|
91
|
+
Shortcuts: --http (same as --transport=http)
|
|
92
|
+
--sse (same as --transport=sse)
|
|
93
|
+
--stdio (same as --transport=stdio)
|
|
94
|
+
|
|
95
|
+
HTTP/STREAMABLE-HTTP OPTIONS:
|
|
96
|
+
--http-port=<port> HTTP server port (default: 3000)
|
|
97
|
+
--http-host=<host> HTTP server host (default: 127.0.0.1 for local only, use 0.0.0.0 for all interfaces)
|
|
98
|
+
Security: When listening on 0.0.0.0, client must provide all connection headers
|
|
99
|
+
Server will not use default destination for non-local connections
|
|
100
|
+
--http-json-response Enable JSON response format
|
|
101
|
+
--http-allowed-origins=<list> Comma-separated allowed origins for CORS
|
|
102
|
+
Example: --http-allowed-origins=http://localhost:3000,https://example.com
|
|
103
|
+
--http-allowed-hosts=<list> Comma-separated allowed hosts
|
|
104
|
+
--http-enable-dns-protection Enable DNS rebinding protection
|
|
105
|
+
|
|
106
|
+
SSE (SERVER-SENT EVENTS) OPTIONS:
|
|
107
|
+
--sse-port=<port> SSE server port (default: 3001)
|
|
108
|
+
--sse-host=<host> SSE server host (default: 127.0.0.1 for local only, use 0.0.0.0 for all interfaces)
|
|
109
|
+
Security: When listening on 0.0.0.0, client must provide all connection headers
|
|
110
|
+
Server will not use default destination for non-local connections
|
|
111
|
+
--sse-allowed-origins=<list> Comma-separated allowed origins for CORS
|
|
112
|
+
Example: --sse-allowed-origins=http://localhost:3000
|
|
113
|
+
--sse-allowed-hosts=<list> Comma-separated allowed hosts
|
|
114
|
+
--sse-enable-dns-protection Enable DNS rebinding protection
|
|
115
|
+
|
|
116
|
+
ENVIRONMENT VARIABLES:
|
|
117
|
+
MCP_ENV_PATH Path to .env file
|
|
118
|
+
MCP_SKIP_ENV_LOAD Skip automatic .env loading (true|false)
|
|
119
|
+
MCP_SKIP_AUTO_START Skip automatic server start (true|false)
|
|
120
|
+
MCP_TRANSPORT Transport type (stdio|http|sse)
|
|
121
|
+
Default: stdio if not specified
|
|
122
|
+
MCP_HTTP_PORT Default HTTP port (default: 3000)
|
|
123
|
+
MCP_HTTP_HOST Default HTTP host (default: 127.0.0.1 for local only, use 0.0.0.0 for all interfaces)
|
|
124
|
+
MCP_HTTP_ENABLE_JSON_RESPONSE Enable JSON responses (true|false)
|
|
125
|
+
MCP_HTTP_ALLOWED_ORIGINS Allowed CORS origins (comma-separated)
|
|
126
|
+
MCP_HTTP_ALLOWED_HOSTS Allowed hosts (comma-separated)
|
|
127
|
+
MCP_HTTP_ENABLE_DNS_PROTECTION Enable DNS protection (true|false)
|
|
128
|
+
MCP_SSE_PORT Default SSE port (default: 3001)
|
|
129
|
+
MCP_SSE_HOST Default SSE host (default: 127.0.0.1 for local only, use 0.0.0.0 for all interfaces)
|
|
130
|
+
MCP_SSE_ALLOWED_ORIGINS Allowed CORS origins for SSE (comma-separated)
|
|
131
|
+
MCP_SSE_ALLOWED_HOSTS Allowed hosts for SSE (comma-separated)
|
|
132
|
+
MCP_SSE_ENABLE_DNS_PROTECTION Enable DNS protection for SSE (true|false)
|
|
133
|
+
AUTH_BROKER_PATH Custom paths for service keys and sessions
|
|
134
|
+
Unix: colon-separated (e.g., /path1:/path2)
|
|
135
|
+
Windows: semicolon-separated (e.g., C:\\path1;C:\\path2)
|
|
136
|
+
If not set, uses platform defaults:
|
|
137
|
+
Unix: ~/.config/mcp-abap-adt/service-keys
|
|
138
|
+
Windows: %USERPROFILE%\\Documents\\mcp-abap-adt\\service-keys
|
|
139
|
+
DEBUG_AUTH_LOG Enable debug logging for auth-broker (true|false)
|
|
140
|
+
Default: false (only info messages shown)
|
|
141
|
+
When true: shows detailed debug messages
|
|
142
|
+
DEBUG_AUTH_BROKER Alias for DEBUG_AUTH_LOG (true|false)
|
|
143
|
+
Same as DEBUG_AUTH_LOG - enables debug logging for auth-broker
|
|
144
|
+
When true: automatically sets DEBUG_AUTH_LOG=true
|
|
145
|
+
DEBUG_HTTP_REQUESTS Enable logging of HTTP requests and MCP calls (true|false)
|
|
146
|
+
Default: false
|
|
147
|
+
When true: logs all incoming HTTP requests, methods, URLs,
|
|
148
|
+
headers (sensitive data redacted), and MCP JSON-RPC calls
|
|
149
|
+
Also enabled by DEBUG_CONNECTORS=true
|
|
150
|
+
DEBUG_CONNECTORS Enable debug logging for connection layer (true|false)
|
|
151
|
+
Default: false
|
|
152
|
+
When true: shows HTTP requests, CSRF tokens, cookies,
|
|
153
|
+
session management, and connection details
|
|
154
|
+
Also enables DEBUG_HTTP_REQUESTS automatically
|
|
155
|
+
DEBUG_HANDLERS Enable debug logging for MCP handlers (true|false)
|
|
156
|
+
Default: false
|
|
157
|
+
When true: shows handler entry/exit, session state,
|
|
158
|
+
lock handles, property validation
|
|
159
|
+
DEBUG_CONNECTION_MANAGER Enable debug logging for connection manager (true|false)
|
|
160
|
+
Default: false
|
|
161
|
+
When true: shows connection cache operations
|
|
162
|
+
|
|
163
|
+
SAP CONNECTION (.env file):
|
|
164
|
+
SAP_URL SAP system URL (required)
|
|
165
|
+
Example: https://your-system.sap.com
|
|
166
|
+
SAP_CLIENT SAP client number (required)
|
|
167
|
+
Example: 100
|
|
168
|
+
SAP_AUTH_TYPE Authentication type: basic|jwt (default: basic)
|
|
169
|
+
SAP_USERNAME SAP username (required for basic auth)
|
|
170
|
+
SAP_PASSWORD SAP password (required for basic auth)
|
|
171
|
+
SAP_JWT_TOKEN JWT token (required for jwt auth)
|
|
172
|
+
|
|
173
|
+
GENERATING .ENV FROM SERVICE KEY (JWT Authentication):
|
|
174
|
+
To generate .env file from SAP BTP service key JSON file, install the
|
|
175
|
+
connection package globally:
|
|
176
|
+
|
|
177
|
+
npm install -g @mcp-abap-adt/connection
|
|
178
|
+
|
|
179
|
+
Then use the sap-abap-auth command:
|
|
180
|
+
|
|
181
|
+
sap-abap-auth auth -k path/to/service-key.json
|
|
182
|
+
|
|
183
|
+
This will create/update .env file with JWT tokens and connection details.
|
|
184
|
+
|
|
185
|
+
EXAMPLES:
|
|
186
|
+
# Default stdio mode (for MCP clients, requires .env file or --mcp parameter)
|
|
187
|
+
mcp-abap-adt
|
|
188
|
+
|
|
189
|
+
# HTTP mode (for web interfaces)
|
|
190
|
+
mcp-abap-adt --transport=http
|
|
191
|
+
|
|
192
|
+
# HTTP server on custom port, localhost only (default)
|
|
193
|
+
mcp-abap-adt --transport=http --http-port=8080
|
|
194
|
+
|
|
195
|
+
# HTTP server accepting connections from all interfaces (less secure)
|
|
196
|
+
mcp-abap-adt --transport=http --http-host=0.0.0.0 --http-port=8080
|
|
197
|
+
|
|
198
|
+
# Use YAML configuration file
|
|
199
|
+
mcp-abap-adt --config=config.yaml
|
|
200
|
+
|
|
201
|
+
# Use stdio mode with --mcp parameter (uses auth-broker, skips .env file)
|
|
202
|
+
mcp-abap-adt --mcp=TRIAL
|
|
203
|
+
|
|
204
|
+
# Default: uses .env from current directory if exists, otherwise auth-broker
|
|
205
|
+
mcp-abap-adt
|
|
206
|
+
|
|
207
|
+
# Force use of auth-broker (service keys), ignore .env file even if exists
|
|
208
|
+
mcp-abap-adt --auth-broker
|
|
209
|
+
|
|
210
|
+
# Use custom path for auth-broker (creates service-keys and sessions subdirectories)
|
|
211
|
+
mcp-abap-adt --auth-broker --auth-broker-path=~/prj/tmp/
|
|
212
|
+
|
|
213
|
+
# Use SSE transport with --mcp parameter (allows auth-broker with SSE transport)
|
|
214
|
+
mcp-abap-adt --transport=sse --mcp=TRIAL
|
|
215
|
+
|
|
216
|
+
# Use .env file from custom path
|
|
217
|
+
mcp-abap-adt --env=/path/to/my.env
|
|
218
|
+
|
|
219
|
+
# Start HTTP server with CORS enabled
|
|
220
|
+
mcp-abap-adt --transport=http --http-port=3000 \\
|
|
221
|
+
--http-allowed-origins=http://localhost:3000,https://example.com
|
|
222
|
+
|
|
223
|
+
# Start SSE server on custom port
|
|
224
|
+
mcp-abap-adt --transport=sse --sse-port=3001
|
|
225
|
+
|
|
226
|
+
# Start SSE server with CORS and DNS protection
|
|
227
|
+
mcp-abap-adt --transport=sse --sse-port=3001 \\
|
|
228
|
+
--sse-allowed-origins=http://localhost:3000 \\
|
|
229
|
+
--sse-enable-dns-protection
|
|
230
|
+
|
|
231
|
+
# Using shortcuts
|
|
232
|
+
mcp-abap-adt --http --http-port=8080
|
|
233
|
+
mcp-abap-adt --sse --sse-port=3001
|
|
234
|
+
|
|
235
|
+
QUICK REFERENCE:
|
|
236
|
+
Transport types:
|
|
237
|
+
http - HTTP StreamableHTTP transport (default)
|
|
238
|
+
streamable-http - Same as http
|
|
239
|
+
stdio - Standard input/output (for MCP clients, requires .env file or --mcp parameter)
|
|
240
|
+
sse - Server-Sent Events transport
|
|
241
|
+
|
|
242
|
+
Common use cases:
|
|
243
|
+
Web interfaces (HTTP): mcp-abap-adt (default, no .env needed)
|
|
244
|
+
MCP clients (Cline, Cursor): mcp-abap-adt --transport=stdio
|
|
245
|
+
MCP clients with auth-broker: mcp-abap-adt --transport=stdio --mcp=TRIAL (skips .env)
|
|
246
|
+
Web interfaces (SSE): mcp-abap-adt --transport=sse --sse-port=3001
|
|
247
|
+
SSE with auth-broker: mcp-abap-adt --transport=sse --mcp=TRIAL (skips .env)
|
|
248
|
+
|
|
249
|
+
DOCUMENTATION:
|
|
250
|
+
https://github.com/fr0ster/mcp-abap-adt
|
|
251
|
+
Installation: docs/installation/INSTALLATION.md
|
|
252
|
+
Configuration: docs/user-guide/CLIENT_CONFIGURATION.md
|
|
253
|
+
Available Tools: docs/user-guide/AVAILABLE_TOOLS.md
|
|
254
|
+
|
|
255
|
+
AUTHENTICATION:
|
|
256
|
+
For JWT authentication with SAP BTP service keys:
|
|
257
|
+
1. Install: npm install -g @mcp-abap-adt/connection
|
|
258
|
+
2. Run: sap-abap-auth auth -k path/to/service-key.json
|
|
259
|
+
3. This generates .env file with JWT tokens automatically
|
|
260
|
+
|
|
261
|
+
SERVICE KEYS (Destination-Based Authentication):
|
|
262
|
+
The server supports destination-based authentication using service keys stored locally.
|
|
263
|
+
This allows you to configure authentication once per destination and reuse it.
|
|
264
|
+
|
|
265
|
+
IMPORTANT: Auth-broker (service keys) is only available for HTTP/streamable-http transport.
|
|
266
|
+
For stdio and SSE transports, use .env file instead.
|
|
267
|
+
|
|
268
|
+
How to Save Service Keys:
|
|
269
|
+
|
|
270
|
+
Linux:
|
|
271
|
+
1. Create service keys directory:
|
|
272
|
+
mkdir -p ~/.config/mcp-abap-adt/service-keys
|
|
273
|
+
|
|
274
|
+
2. Download service key from SAP BTP (from the corresponding service instance)
|
|
275
|
+
and copy it to: ~/.config/mcp-abap-adt/service-keys/{destination}.json
|
|
276
|
+
(e.g., TRIAL.json - the filename without .json extension becomes the destination name)
|
|
277
|
+
|
|
278
|
+
Storage locations:
|
|
279
|
+
Service keys: ~/.config/mcp-abap-adt/service-keys/{destination}.json
|
|
280
|
+
Sessions: ~/.config/mcp-abap-adt/sessions/{destination}.env
|
|
281
|
+
|
|
282
|
+
macOS:
|
|
283
|
+
1. Create service keys directory:
|
|
284
|
+
mkdir -p ~/.config/mcp-abap-adt/service-keys
|
|
285
|
+
|
|
286
|
+
2. Download service key from SAP BTP (from the corresponding service instance)
|
|
287
|
+
and copy it to: ~/.config/mcp-abap-adt/service-keys/{destination}.json
|
|
288
|
+
(e.g., TRIAL.json - the filename without .json extension becomes the destination name)
|
|
289
|
+
|
|
290
|
+
Storage locations:
|
|
291
|
+
Service keys: ~/.config/mcp-abap-adt/service-keys/{destination}.json
|
|
292
|
+
Sessions: ~/.config/mcp-abap-adt/sessions/{destination}.env
|
|
293
|
+
|
|
294
|
+
Windows:
|
|
295
|
+
1. Create service keys directory (PowerShell):
|
|
296
|
+
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\\Documents\\mcp-abap-adt\\service-keys"
|
|
297
|
+
|
|
298
|
+
2. Download service key from SAP BTP (from the corresponding service instance)
|
|
299
|
+
and copy it to: %USERPROFILE%\\Documents\\mcp-abap-adt\\service-keys\\{destination}.json
|
|
300
|
+
(e.g., TRIAL.json - the filename without .json extension becomes the destination name)
|
|
301
|
+
|
|
302
|
+
Or using Command Prompt (cmd):
|
|
303
|
+
mkdir "%USERPROFILE%\\Documents\\mcp-abap-adt\\service-keys"
|
|
304
|
+
(Then copy the downloaded service key file to this directory)
|
|
305
|
+
|
|
306
|
+
Storage locations:
|
|
307
|
+
Service keys: %USERPROFILE%\\Documents\\mcp-abap-adt\\service-keys\\{destination}.json
|
|
308
|
+
Sessions: %USERPROFILE%\\Documents\\mcp-abap-adt\\sessions\\{destination}.env
|
|
309
|
+
|
|
310
|
+
Fallback: Server also searches in current working directory (where server is launched)
|
|
311
|
+
|
|
312
|
+
Service Key:
|
|
313
|
+
Download the service key JSON file from SAP BTP (from the corresponding service instance)
|
|
314
|
+
and save it as {destination}.json (e.g., TRIAL.json).
|
|
315
|
+
The filename without .json extension becomes the destination name (case-sensitive).
|
|
316
|
+
|
|
317
|
+
Using Destinations:
|
|
318
|
+
In HTTP headers, use:
|
|
319
|
+
x-sap-destination: TRIAL (for SAP Cloud, URL derived from service key)
|
|
320
|
+
x-mcp-destination: TRIAL (for MCP destinations, URL derived from service key)
|
|
321
|
+
|
|
322
|
+
The destination name must exactly match the service key filename (without .json extension, case-sensitive).
|
|
323
|
+
|
|
324
|
+
Example Cline configuration (~/.cline/mcp.json):
|
|
325
|
+
{
|
|
326
|
+
"mcpServers": {
|
|
327
|
+
"mcp-abap-adt": {
|
|
328
|
+
"command": "npx",
|
|
329
|
+
"args": ["-y", "@mcp-abap-adt/server", "--transport=http", "--http-port=3000"],
|
|
330
|
+
"env": {}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
Then in Cline, use destination in requests:
|
|
336
|
+
Headers: x-sap-destination: TRIAL
|
|
337
|
+
|
|
338
|
+
First-Time Authentication:
|
|
339
|
+
- Server reads service key from {destination}.json
|
|
340
|
+
- Opens browser for OAuth2 authentication (if no valid session exists)
|
|
341
|
+
- Saves tokens to {destination}.env for future use
|
|
342
|
+
- Subsequent requests use cached tokens automatically
|
|
343
|
+
|
|
344
|
+
Automatic Token Management:
|
|
345
|
+
- Validates tokens before use
|
|
346
|
+
- Refreshes expired tokens using refresh tokens
|
|
347
|
+
- Caches valid tokens for performance
|
|
348
|
+
- Falls back to browser authentication if refresh fails
|
|
349
|
+
|
|
350
|
+
Custom Paths:
|
|
351
|
+
Set AUTH_BROKER_PATH environment variable to override default paths:
|
|
352
|
+
Linux/macOS: export AUTH_BROKER_PATH="/custom/path:/another/path"
|
|
353
|
+
Windows: set AUTH_BROKER_PATH=C:\\custom\\path;C:\\another\\path
|
|
354
|
+
|
|
355
|
+
Or use --auth-broker-path command-line option:
|
|
356
|
+
mcp-abap-adt --auth-broker --auth-broker-path=~/prj/tmp/
|
|
357
|
+
This creates service-keys and sessions subdirectories in the specified path.
|
|
358
|
+
|
|
359
|
+
For more details, see: docs/user-guide/CLIENT_CONFIGURATION.md#destination-based-authentication
|
|
360
|
+
|
|
361
|
+
`;
|
|
362
|
+
console.log(help);
|
|
363
|
+
process.exit(0);
|
|
364
|
+
}
|
|
365
|
+
function getArgValue(name) {
|
|
366
|
+
const args = process.argv;
|
|
367
|
+
for (let i = 0; i < args.length; i++) {
|
|
368
|
+
const arg = args[i];
|
|
369
|
+
if (arg.startsWith(`${name}=`)) {
|
|
370
|
+
return arg.slice(name.length + 1);
|
|
371
|
+
}
|
|
372
|
+
if (arg === name && i + 1 < args.length) {
|
|
373
|
+
return args[i + 1];
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return undefined;
|
|
377
|
+
}
|
|
378
|
+
function hasFlag(name) {
|
|
379
|
+
return process.argv.includes(name);
|
|
380
|
+
}
|
|
381
|
+
function parseBoolean(value) {
|
|
382
|
+
if (!value) {
|
|
383
|
+
return false;
|
|
384
|
+
}
|
|
385
|
+
const normalized = value.trim().toLowerCase();
|
|
386
|
+
return normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on";
|
|
387
|
+
}
|
|
388
|
+
function resolvePortOption(argName, envName, defaultValue) {
|
|
389
|
+
const rawValue = getArgValue(argName) ?? process.env[envName];
|
|
390
|
+
if (!rawValue) {
|
|
391
|
+
return defaultValue;
|
|
392
|
+
}
|
|
393
|
+
const port = Number.parseInt(rawValue, 10);
|
|
394
|
+
if (!Number.isInteger(port) || port <= 0 || port > 65535) {
|
|
395
|
+
throw new Error(`Invalid port value for ${argName}: ${rawValue}`);
|
|
396
|
+
}
|
|
397
|
+
return port;
|
|
398
|
+
}
|
|
399
|
+
function resolveBooleanOption(argName, envName, defaultValue) {
|
|
400
|
+
const argValue = getArgValue(argName);
|
|
401
|
+
if (argValue !== undefined) {
|
|
402
|
+
return parseBoolean(argValue);
|
|
403
|
+
}
|
|
404
|
+
if (hasFlag(argName)) {
|
|
405
|
+
return true;
|
|
406
|
+
}
|
|
407
|
+
const envValue = process.env[envName];
|
|
408
|
+
if (envValue !== undefined) {
|
|
409
|
+
return parseBoolean(envValue);
|
|
410
|
+
}
|
|
411
|
+
return defaultValue;
|
|
412
|
+
}
|
|
413
|
+
function resolveListOption(argName, envName) {
|
|
414
|
+
const rawValue = getArgValue(argName) ?? process.env[envName];
|
|
415
|
+
if (!rawValue) {
|
|
416
|
+
return undefined;
|
|
417
|
+
}
|
|
418
|
+
const items = rawValue
|
|
419
|
+
.split(",")
|
|
420
|
+
.map((entry) => entry.trim())
|
|
421
|
+
.filter((entry) => entry.length > 0);
|
|
422
|
+
return items.length > 0 ? items : undefined;
|
|
423
|
+
}
|
|
424
|
+
function parseTransportConfig(transportType) {
|
|
425
|
+
// Use the transport type provided as parameter
|
|
426
|
+
const normalized = transportType;
|
|
427
|
+
if (normalized &&
|
|
428
|
+
normalized !== "stdio" &&
|
|
429
|
+
normalized !== "http" &&
|
|
430
|
+
normalized !== "streamable-http" &&
|
|
431
|
+
normalized !== "server" &&
|
|
432
|
+
normalized !== "sse") {
|
|
433
|
+
throw new Error(`Unsupported transport: ${normalized}`);
|
|
434
|
+
}
|
|
435
|
+
const sseRequested = normalized === "sse" ||
|
|
436
|
+
hasFlag("--sse");
|
|
437
|
+
if (sseRequested) {
|
|
438
|
+
const port = resolvePortOption("--sse-port", "MCP_SSE_PORT", 3001);
|
|
439
|
+
// Default to localhost (127.0.0.1) for security - only accepts local connections
|
|
440
|
+
// Use 0.0.0.0 to accept connections from all interfaces (less secure)
|
|
441
|
+
const host = getArgValue("--sse-host") ?? process.env.MCP_SSE_HOST ?? "127.0.0.1";
|
|
442
|
+
const allowedOrigins = resolveListOption("--sse-allowed-origins", "MCP_SSE_ALLOWED_ORIGINS");
|
|
443
|
+
const allowedHosts = resolveListOption("--sse-allowed-hosts", "MCP_SSE_ALLOWED_HOSTS");
|
|
444
|
+
const enableDnsRebindingProtection = resolveBooleanOption("--sse-enable-dns-protection", "MCP_SSE_ENABLE_DNS_PROTECTION", false);
|
|
445
|
+
return {
|
|
446
|
+
type: "sse",
|
|
447
|
+
host,
|
|
448
|
+
port,
|
|
449
|
+
allowedOrigins,
|
|
450
|
+
allowedHosts,
|
|
451
|
+
enableDnsRebindingProtection,
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
const httpRequested = normalized === "http" ||
|
|
455
|
+
normalized === "streamable-http" ||
|
|
456
|
+
normalized === "server" ||
|
|
457
|
+
hasFlag("--http") ||
|
|
458
|
+
// Note: Default is stdio (set in runtimeConfig), so this only applies if explicitly requested
|
|
459
|
+
(!sseRequested && normalized !== "stdio");
|
|
460
|
+
if (httpRequested) {
|
|
461
|
+
const port = resolvePortOption("--http-port", "MCP_HTTP_PORT", 3000);
|
|
462
|
+
// Default to localhost (127.0.0.1) for security - only accepts local connections
|
|
463
|
+
// Use 0.0.0.0 to accept connections from all interfaces (less secure)
|
|
464
|
+
const host = getArgValue("--http-host") ?? process.env.MCP_HTTP_HOST ?? "127.0.0.1";
|
|
465
|
+
const enableJsonResponse = resolveBooleanOption("--http-json-response", "MCP_HTTP_ENABLE_JSON_RESPONSE", false);
|
|
466
|
+
const allowedOrigins = resolveListOption("--http-allowed-origins", "MCP_HTTP_ALLOWED_ORIGINS");
|
|
467
|
+
const allowedHosts = resolveListOption("--http-allowed-hosts", "MCP_HTTP_ALLOWED_HOSTS");
|
|
468
|
+
const enableDnsRebindingProtection = resolveBooleanOption("--http-enable-dns-protection", "MCP_HTTP_ENABLE_DNS_PROTECTION", false);
|
|
469
|
+
return {
|
|
470
|
+
type: "streamable-http",
|
|
471
|
+
host,
|
|
472
|
+
port,
|
|
473
|
+
enableJsonResponse,
|
|
474
|
+
allowedOrigins,
|
|
475
|
+
allowedHosts,
|
|
476
|
+
enableDnsRebindingProtection,
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
return { type: "stdio" };
|
|
480
|
+
}
|
|
481
|
+
let sapConfigOverride;
|
|
482
|
+
function setSapConfigOverride(config) {
|
|
483
|
+
sapConfigOverride = config;
|
|
484
|
+
(0, utils_1.setConfigOverride)(config);
|
|
485
|
+
}
|
|
486
|
+
function setAbapConnectionOverride(connection) {
|
|
487
|
+
(0, utils_1.setConnectionOverride)(connection);
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Retrieves SAP configuration from environment variables.
|
|
491
|
+
* Reads configuration from process.env (caller is responsible for loading .env file if needed).
|
|
492
|
+
*
|
|
493
|
+
* @returns {SapConfig} The SAP configuration object.
|
|
494
|
+
* @throws {Error} If any required environment variable is missing.
|
|
495
|
+
*/
|
|
496
|
+
// Helper function for Windows-compatible logging
|
|
497
|
+
// Only logs when DEBUG_CONNECTORS, DEBUG_TESTS, or DEBUG_ADT_TESTS is enabled
|
|
498
|
+
function debugLog(message) {
|
|
499
|
+
const debugEnabled = process.env.DEBUG_CONNECTORS === 'true' ||
|
|
500
|
+
process.env.DEBUG_TESTS === 'true' ||
|
|
501
|
+
process.env.DEBUG_ADT_TESTS === 'true';
|
|
502
|
+
if (!debugEnabled) {
|
|
503
|
+
return; // Suppress debug logs when not in debug mode
|
|
504
|
+
}
|
|
505
|
+
// Try stderr first
|
|
506
|
+
try {
|
|
507
|
+
process.stderr.write(message);
|
|
508
|
+
}
|
|
509
|
+
catch (e) {
|
|
510
|
+
// Fallback to console.error for Windows
|
|
511
|
+
console.error(message.trim());
|
|
512
|
+
}
|
|
513
|
+
// Also try to write to a debug file on Windows
|
|
514
|
+
if (process.platform === 'win32') {
|
|
515
|
+
try {
|
|
516
|
+
const fs = require('fs');
|
|
517
|
+
const path = require('path');
|
|
518
|
+
const debugFile = path.join(process.cwd(), 'mcp-debug.log');
|
|
519
|
+
fs.appendFileSync(debugFile, `${new Date().toISOString()} ${message}`, 'utf8');
|
|
520
|
+
}
|
|
521
|
+
catch (e) {
|
|
522
|
+
// Ignore file write errors
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
// Re-export header constants from interfaces package
|
|
527
|
+
__exportStar(require("@mcp-abap-adt/interfaces"), exports);
|
|
528
|
+
function getConfig() {
|
|
529
|
+
debugLog(`[MCP-CONFIG] getConfig() called\n`);
|
|
530
|
+
if (sapConfigOverride) {
|
|
531
|
+
debugLog(`[MCP-CONFIG] Using override config\n`);
|
|
532
|
+
return sapConfigOverride;
|
|
533
|
+
}
|
|
534
|
+
// Read from process.env (already loaded and cleaned by launcher or at startup)
|
|
535
|
+
// No need to reload .env here - it's already in process.env
|
|
536
|
+
let url = process.env.SAP_URL;
|
|
537
|
+
let client = process.env.SAP_CLIENT;
|
|
538
|
+
debugLog(`[MCP-CONFIG] Raw process.env.SAP_URL: "${url}" (type: ${typeof url}, length: ${url?.length || 0})\n`);
|
|
539
|
+
// URLs from .env files are expected to be clean - just trim
|
|
540
|
+
if (url) {
|
|
541
|
+
url = url.trim();
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
// Log if URL is missing
|
|
545
|
+
debugLog(`[MCP-CONFIG] ✗ SAP_URL is missing from process.env\n`);
|
|
546
|
+
debugLog(`[MCP-CONFIG] Available env vars: ${Object.keys(process.env).filter(k => k.startsWith('SAP_')).join(', ')}\n`);
|
|
547
|
+
}
|
|
548
|
+
if (client) {
|
|
549
|
+
client = client.trim();
|
|
550
|
+
}
|
|
551
|
+
// Auto-detect auth type: if JWT token is present, use JWT; otherwise check SAP_AUTH_TYPE or default to basic
|
|
552
|
+
let authType = 'basic';
|
|
553
|
+
if (process.env.SAP_JWT_TOKEN) {
|
|
554
|
+
authType = 'jwt';
|
|
555
|
+
}
|
|
556
|
+
else if (process.env.SAP_AUTH_TYPE) {
|
|
557
|
+
const rawAuthType = process.env.SAP_AUTH_TYPE.trim();
|
|
558
|
+
authType = rawAuthType === 'xsuaa' ? 'jwt' : rawAuthType;
|
|
559
|
+
}
|
|
560
|
+
if (!url) {
|
|
561
|
+
throw new Error(`Missing SAP_URL in environment variables. Please check your .env file.`);
|
|
562
|
+
}
|
|
563
|
+
// Final validation - URL should be clean now
|
|
564
|
+
if (!/^https?:\/\//.test(url)) {
|
|
565
|
+
// Log URL in hex for debugging
|
|
566
|
+
const urlHex = Buffer.from(url, 'utf8').toString('hex');
|
|
567
|
+
throw new Error(`Invalid SAP_URL format: "${url}" (hex: ${urlHex.substring(0, 100)}...). Expected format: https://your-system.sap.com`);
|
|
568
|
+
}
|
|
569
|
+
// Additional validation: try to create URL object to catch any remaining issues
|
|
570
|
+
try {
|
|
571
|
+
const testUrl = new URL(url);
|
|
572
|
+
// If URL object creation succeeds, use the normalized URL
|
|
573
|
+
url = testUrl.href.replace(/\/$/, ''); // Remove trailing slash if present
|
|
574
|
+
}
|
|
575
|
+
catch (urlError) {
|
|
576
|
+
const urlHex = Buffer.from(url, 'utf8').toString('hex');
|
|
577
|
+
throw new Error(`Invalid SAP_URL: "${url}" (hex: ${urlHex.substring(0, 100)}...). Error: ${urlError instanceof Error ? urlError.message : urlError}`);
|
|
578
|
+
}
|
|
579
|
+
// Log URL for debugging
|
|
580
|
+
debugLog(`[MCP-CONFIG] Final SAP_URL: "${url}" (length: ${url.length})\n`);
|
|
581
|
+
const config = {
|
|
582
|
+
url, // Already cleaned and validated above
|
|
583
|
+
authType,
|
|
584
|
+
};
|
|
585
|
+
if (client) {
|
|
586
|
+
config.client = client;
|
|
587
|
+
}
|
|
588
|
+
if (authType === 'jwt') {
|
|
589
|
+
const jwtToken = process.env.SAP_JWT_TOKEN;
|
|
590
|
+
if (!jwtToken) {
|
|
591
|
+
throw new Error('Missing SAP_JWT_TOKEN for JWT authentication');
|
|
592
|
+
}
|
|
593
|
+
// Values from .env are expected to be clean
|
|
594
|
+
config.jwtToken = jwtToken.trim();
|
|
595
|
+
const refreshToken = process.env.SAP_REFRESH_TOKEN;
|
|
596
|
+
if (refreshToken) {
|
|
597
|
+
config.refreshToken = refreshToken.trim();
|
|
598
|
+
}
|
|
599
|
+
const uaaUrl = process.env.SAP_UAA_URL || process.env.UAA_URL;
|
|
600
|
+
const uaaClientId = process.env.SAP_UAA_CLIENT_ID || process.env.UAA_CLIENT_ID;
|
|
601
|
+
const uaaClientSecret = process.env.SAP_UAA_CLIENT_SECRET || process.env.UAA_CLIENT_SECRET;
|
|
602
|
+
if (uaaUrl)
|
|
603
|
+
config.uaaUrl = uaaUrl.trim();
|
|
604
|
+
if (uaaClientId)
|
|
605
|
+
config.uaaClientId = uaaClientId.trim();
|
|
606
|
+
if (uaaClientSecret)
|
|
607
|
+
config.uaaClientSecret = uaaClientSecret.trim();
|
|
608
|
+
}
|
|
609
|
+
else {
|
|
610
|
+
const username = process.env.SAP_USERNAME;
|
|
611
|
+
const password = process.env.SAP_PASSWORD;
|
|
612
|
+
if (!username || !password) {
|
|
613
|
+
throw new Error('Missing SAP_USERNAME or SAP_PASSWORD for basic authentication');
|
|
614
|
+
}
|
|
615
|
+
config.username = username.trim();
|
|
616
|
+
config.password = password.trim();
|
|
617
|
+
}
|
|
618
|
+
return config;
|
|
619
|
+
}
|
|
620
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/server/v2/utils.ts"],"names":[],"mappings":"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"}
|