@mcp-abap-adt/core 6.3.1 → 6.4.1

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 CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [6.4.1] - 2026-04-21
6
+
7
+ ### Fixed
8
+ - `docker/Dockerfile`: switch default `MCP_TRANSPORT` from `stdio` to `http` so the image runs as an HTTP MCP server out of the box
9
+ - `docker/Dockerfile`: correct launcher path (`dist/server/v2/launcher.js` → `dist/server/launcher.js`) — previous path did not exist and prevented the container from starting
10
+ - `docker/Dockerfile`: pass `--allow-destination-header` so callers can supply SAP connection parameters via request headers (no default SAP connection baked into the image)
11
+ - `docker/Dockerfile`: fix healthcheck endpoint (`/health` → `/mcp/health`) to match the actual route exposed by `StreamableHttpServer`
12
+ - `docker/Dockerfile`: use `npm run build:fast` in the builder stage — the full `build` runs Biome which requires `.gitignore`, but `.dockerignore` excludes it
13
+
14
+ ## [6.4.0] - 2026-04-20
15
+
16
+ ### Added
17
+ - `EmbeddableMcpServer` accepts a new optional `systemType: 'onprem' | 'cloud' | 'legacy'` option. When set, it overrides the process-global `SAP_SYSTEM_TYPE` env var for the `available_in` tool filter of that server instance only. Enables hosts that serve multiple SAP systems per request (e.g., proxies routing to a mix of on-premise Cloud Connector and cloud-hosted destinations) to register the correct tool set per instance without mutating `process.env`. (#69)
18
+ - `BaseMcpServer` constructor accepts the same `systemType` option for subclasses.
19
+
20
+ ### Changed
21
+ - Filter-skip debug log now reports whether the resolved system type came from the per-instance option or the env var (`source=option` / `source=env`).
22
+
23
+ ### Backward compatibility
24
+ - `systemType` is optional; omitting it preserves the previous behavior (env var fallback, default `cloud`). No consumer changes required.
25
+
5
26
  ## [6.3.1] - 2026-04-19
6
27
 
7
28
  ### Changed
@@ -2,7 +2,7 @@ import type { AuthBroker } from '@mcp-abap-adt/auth-broker';
2
2
  import { type AbapConnection } from '@mcp-abap-adt/connection';
3
3
  import type { Logger } from '@mcp-abap-adt/logger';
4
4
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import type { IHandlersRegistry } from '../lib/handlers/interfaces.js';
5
+ import type { IHandlersRegistry, SapEnvironment } from '../lib/handlers/interfaces.js';
6
6
  import type { ConnectionContext } from './ConnectionContext.js';
7
7
  /**
8
8
  * Base MCP Server class that extends SDK McpServer
@@ -25,10 +25,16 @@ export declare abstract class BaseMcpServer extends McpServer {
25
25
  * Cached connection for stdio mode (created once, reused for all requests)
26
26
  */
27
27
  private cachedConnection;
28
+ /**
29
+ * Per-instance SAP system type. Overrides process.env.SAP_SYSTEM_TYPE
30
+ * for `available_in` filtering at handler registration time.
31
+ */
32
+ protected readonly systemType?: SapEnvironment;
28
33
  constructor(options: {
29
34
  name: string;
30
35
  version?: string;
31
36
  logger?: Logger;
37
+ systemType?: SapEnvironment;
32
38
  });
33
39
  /**
34
40
  * Sets connection context using auth broker
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMcpServer.d.ts","sourceRoot":"","sources":["../../src/server/BaseMcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;GAGG;AACH,8BAAsB,aAAc,SAAQ,SAAS;IACnD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAE7D;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA+B;gBAE3C,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAKxE;;;;OAIG;cACa,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC;IA8HhB;;;OAGG;IACH,SAAS,CAAC,+BAA+B,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,IAAI;IAsDP;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAI1D;;;;;;OAMG;cACa,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAsDxD;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,IAAI;CAqJtE"}
1
+ {"version":3,"file":"BaseMcpServer.d.ts","sourceRoot":"","sources":["../../src/server/BaseMcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;GAGG;AACH,8BAAsB,aAAc,SAAQ,SAAS;IACnD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAE7D;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA+B;IAEvD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;gBAEnC,OAAO,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,cAAc,CAAC;KAC7B;IAMD;;;;OAIG;cACa,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC;IA8HhB;;;OAGG;IACH,SAAS,CAAC,+BAA+B,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,IAAI;IAsDP;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAI1D;;;;;;OAMG;cACa,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAsDxD;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,IAAI;CAsJtE"}
@@ -28,9 +28,15 @@ class BaseMcpServer extends mcp_js_1.McpServer {
28
28
  * Cached connection for stdio mode (created once, reused for all requests)
29
29
  */
30
30
  cachedConnection = null;
31
+ /**
32
+ * Per-instance SAP system type. Overrides process.env.SAP_SYSTEM_TYPE
33
+ * for `available_in` filtering at handler registration time.
34
+ */
35
+ systemType;
31
36
  constructor(options) {
32
37
  super({ name: options.name, version: options.version ?? '1.0.0' });
33
38
  this.logger = options.logger ?? getDefaultLogger();
39
+ this.systemType = options.systemType;
34
40
  }
35
41
  /**
36
42
  * Sets connection context using auth broker
@@ -326,14 +332,14 @@ class BaseMcpServer extends mcp_js_1.McpServer {
326
332
  // Skip tools not available in the current SAP environment
327
333
  const availableIn = entry.toolDefinition.available_in;
328
334
  if (availableIn && availableIn.length > 0) {
329
- const envType = process.env.SAP_SYSTEM_TYPE?.toLowerCase();
330
- const currentEnv = envType === 'legacy'
335
+ const resolvedType = this.systemType ?? process.env.SAP_SYSTEM_TYPE?.toLowerCase();
336
+ const currentEnv = resolvedType === 'legacy'
331
337
  ? 'legacy'
332
- : envType === 'onprem'
338
+ : resolvedType === 'onprem'
333
339
  ? 'onprem'
334
340
  : 'cloud';
335
341
  if (!availableIn.includes(currentEnv)) {
336
- this.logger.debug(`[BaseMcpServer] Skipping tool ${entry.toolDefinition.name}: available_in=${JSON.stringify(availableIn)}, currentEnv=${currentEnv}, SAP_SYSTEM_TYPE=${envType || '(not set, default: cloud)'}`);
342
+ this.logger.debug(`[BaseMcpServer] Skipping tool ${entry.toolDefinition.name}: available_in=${JSON.stringify(availableIn)}, currentEnv=${currentEnv}, source=${this.systemType ? 'option' : 'env'}, SAP_SYSTEM_TYPE=${process.env.SAP_SYSTEM_TYPE || '(not set)'}`);
337
343
  continue;
338
344
  }
339
345
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMcpServer.js","sourceRoot":"","sources":["../../src/server/BaseMcpServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseMcpServer.js","sourceRoot":"","sources":["../../src/server/BaseMcpServer.ts"],"names":[],"mappings":";;;AACA,yDAGkC;AAElC,oEAAoE;AAMpE,wGAAkG;AAClG,yEAAuE;AACvE,8DAA+D;AAC/D,8CAAqD;AAGrD;;;GAGG;AACH,MAAsB,aAAc,SAAQ,kBAAS;IACnD;;OAEG;IACgB,MAAM,CAAS;IAElC;;OAEG;IACO,iBAAiB,GAA6B,IAAI,CAAC;IAE7D;;OAEG;IACO,UAAU,CAAc;IAElC;;OAEG;IACK,gBAAgB,GAA0B,IAAI,CAAC;IAEvD;;;OAGG;IACgB,UAAU,CAAkB;IAE/C,YAAY,OAKX;QACC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,oBAAoB,CAClC,WAAmB,EACnB,UAAsB;QAEtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,sEAAsE;QACtE,IAAA,6BAAkB,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,8DAA8D,WAAW,EAAE,CAC5E,CAAC;QAEF,wCAAwC;QACxC,oGAAoG;QACpG,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAE3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;YAC7D,KAAK,EAAE,CAAC,CAAC,gBAAgB;YACzB,WAAW;YACX,aAAa,EAAE,CAAC,CAAC,gBAAgB,EAAE,UAAU;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,gDAAgD,WAAW,EAAE,CAC9D,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,yFAAyF;QACzF,IAAI,UAA8B,CAAC;QACnC,IAAI,UAAmB,CAAC;QACxB,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oFAAoF;YACpF,sFAAsF;YACtF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kEAAkE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3H,CAAC;YACF,UAAU,GAAG,KAAK,CAAC;YACnB,UAAU,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;QACnD,CAAC;QACD,MAAM,UAAU,GAAG,UAAU,IAAI,gBAAgB,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAE3E,6CAA6C;QAC7C,MAAM,QAAQ,GACZ,gBAAgB,CAAC,QAAQ;YACzB,CAAC,gBAAgB,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ;gBACrD,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,MAAM,MAAM,GACV,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,IAAI,KAAK,CACb,yCAAyC,WAAW,MAAM,MAAM,CAAC,CAAC,CAAC,yBAAyB,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,8GAA8G,CAC1N,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK;YAC7D,CAAC,CAAE,KAAe;YAClB,CAAC,CAAC,SAAS,CAAC;QAEhB,wEAAwE;QACxE,6DAA6D;QAC7D,IAAI,YAAgC,CAAC;QACrC,IAAI,WAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,UAAU,GACd,QAAQ,KAAK,KAAK;gBAChB,CAAC,CAAC;oBACE,GAAG,EAAE,gBAAgB,CAAC,UAAU,IAAI,EAAE;oBACtC,QAAQ,EAAE,KAAc;oBACxB,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,gBAAgB,CAAC,SAAS,IAAI,EAAE;iBACzC;gBACH,CAAC,CAAC;oBACE,GAAG,EAAE,gBAAgB,CAAC,UAAU,IAAI,EAAE;oBACtC,QAAQ,EAAE,OAAgB;oBAC1B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE;oBACzC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE;oBACzC,MAAM,EAAE,gBAAgB,CAAC,SAAS,IAAI,EAAE;iBACzC,CAAC;YACR,MAAM,QAAQ,GAAG,IAAA,iCAAoB,EAAC,UAAU,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,MAAM,IAAA,uCAAoB,EAAC,QAAQ,CAAC,CAAC;YACvD,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;YACtC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YACpC,2EAA2E;YAC3E,IAAI,CAAC,gBAAgB,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACpD,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,wDAAwD,YAAY,iBAAiB,WAAW,YAAY,SAAS,CAAC,MAAM,IAAI,QAAQ,EAAE,CAC3I,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,oDAAoD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7G,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG;YACvB,SAAS,EAAE,WAAW;YACtB,gBAAgB,EACd,QAAQ,KAAK,OAAO;gBAClB,CAAC,CAAC;oBACE,GAAG,EAAE,gBAAgB,CAAC,UAAU,IAAI,EAAE;oBACtC,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE;oBACzC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE;oBACzC,MAAM,EAAE,gBAAgB,CAAC,SAAS,IAAI,EAAE;oBACxC,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,CAAC;iBAC1C;gBACH,CAAC,CAAC;oBACE,GAAG,EAAE,gBAAgB,CAAC,UAAU,IAAI,EAAE;oBACtC,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,UAAU,EAAE,wBAAwB;oBAC9C,MAAM,EAAE,gBAAgB,CAAC,SAAS,IAAI,EAAE;iBACzC;YACP,QAAQ,EAAE;gBACR,WAAW;gBACX,YAAY;gBACZ,WAAW;aACZ;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,+BAA+B,CACvC,OAAsD;QAEtD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAsB,EAAE;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAEnD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,IAAI,YAAY;YAAE,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACvD,IAAI,WAAW;YAAE,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;QAEpD,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW;YACX,IAAI,CAAC,iBAAiB,GAAG;gBACvB,SAAS,EAAE,YAAY;gBACvB,gBAAgB,EAAE;oBAChB,GAAG;oBACH,QAAQ,EAAE,KAAK;oBACf,QAAQ;oBACR,MAAM;iBACP;gBACD,QAAQ;aACT,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,aAAa;YACb,IAAI,CAAC,iBAAiB,GAAG;gBACvB,SAAS,EAAE,cAAc;gBACzB,gBAAgB,EAAE;oBAChB,GAAG;oBACH,QAAQ,EAAE,OAAO;oBACjB,QAAQ;oBACR,QAAQ;oBACR,MAAM;iBACP;gBACD,QAAQ;aACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACO,oBAAoB;QAC5B,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,aAAa;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAExC,CAAC;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAEnD,0DAA0D;QAC1D,0FAA0F;QAC1F,+FAA+F;QAC/F,IAAI,WAAW,IAAI,IAAI,CAAC,gBAAgB,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACtE,yCAAyC;YACzC,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;QAED,+EAA+E;QAC/E,IAAI,cAAmB,CAAC;QACxB,IACE,WAAW;YACX,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,KAAK,KAAK;YAC1D,OAAQ,IAAI,CAAC,UAAkB,CAAC,oBAAoB,KAAK,UAAU,EACnE,CAAC;YACD,cAAc,GAAI,IAAI,CAAC,UAAkB,CAAC,oBAAoB,CAC5D,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,iCAAoB,EACrC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EACvC,SAAS,EACT,SAAS,EACT,cAAc,CACf,CAAC;QAEF,iEAAiE;QACjE,kFAAkF;QAClF,yEAAyE;QACzE,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAE3B,+EAA+E;QAC/E,iFAAiF;QACjF,IAAI,WAAW,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC7C,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACrC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;OAQG;IACO,gBAAgB,CAAC,gBAAmC;QAC5D,mCAAmC;QACnC,IAAI,gBAAgB,YAAY,wDAAyB,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;YAEnD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAS7B,MAAM,cAAc,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;wBAC7C,uDAAuD;wBACvD,iEAAiE;wBACjE,MAAM,OAAO,GAAmB;4BAC9B,UAAU,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE;4BACtC,MAAM,EAAE,IAAI,CAAC,MAAM;yBACpB,CAAC;wBAEF,0DAA0D;wBAC1D,sFAAsF;wBACtF,8FAA8F;wBAC9F,IAAI,cAAgC,CAAC;wBACrC,IAAK,KAAK,CAAC,OAAgC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;4BACxD,cAAc,GAAI,KAAK,CAAC,OAAgC,CACtD,OAAO,EACP,IAAI,CACL,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC;gCACH,MAAM,iBAAiB,GAAG,KAGxB,CAAC;gCACH,IAAI,OAAO,iBAAiB,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oCACvD,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gCACxC,CAAC;qCAAM,CAAC;oCACN,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC;gCACtC,CAAC;4BACH,CAAC;4BAAC,MAAM,CAAC;gCACP,gDAAgD;4BAClD,CAAC;4BACD,cAAc,GAAI,KAAK,CAAC,OAA6B,CAAC,IAAI,CAAC,CAAC;wBAC9D,CAAC;wBAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;wBAapC,IAAK,MAAiC,EAAE,OAAO,EAAE,CAAC;4BAChD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAC1C,oCAAoC,CACrC,CAAC;4BACF,MAAM,SAAS,GACb,CAAE,MAAiC,EAAE,OAAO,IAAI,EAAE,CAAC;iCAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gCACZ,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oCACrD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACnC,CAAC;gCACD,OAAO,IAAI,EAAE,IAAI,KAAK,SAAS;oCAC7B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oCACnB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BACnB,CAAC,CAAC;iCACD,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC;4BACnC,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;wBACzD,CAAC;wBAED,wFAAwF;wBACxF,MAAM,OAAO,GAAG,CACb,MAAiC,EAAE,OAAO,IAAI,EAAE,CAClD,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;4BACb,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gCACrD,OAAO;oCACL,IAAI,EAAE,MAAe;oCACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iCAChC,CAAC;4BACJ,CAAC;4BACD,mDAAmD;4BACnD,OAAO;gCACL,IAAI,EAAE,MAAe;gCACrB,IAAI,EACF,IAAI,EAAE,IAAI,KAAK,SAAS;oCACtB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oCACnB,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;6BACzB,CAAC;wBACJ,CAAC,CAAC,CAAC;wBAEH,OAAO,EAAE,OAAO,EAAE,CAAC;oBACrB,CAAC,CAAC;oBAEF,6DAA6D;oBAC7D,MAAM,SAAS,GACb,KAAK,CAAC,cAAc,CAAC,WAAW;wBAChC,OAAO,KAAK,CAAC,cAAc,CAAC,WAAW,KAAK,QAAQ;wBACpD,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;wBAClD,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU;wBACzC,CAAC,CAAC,IAAA,gCAAe,EAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;wBACnD,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;oBAEvC,0DAA0D;oBAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;oBACtD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1C,MAAM,YAAY,GAChB,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;wBAChE,MAAM,UAAU,GACd,YAAY,KAAK,QAAQ;4BACvB,CAAC,CAAC,QAAQ;4BACV,CAAC,CAAC,YAAY,KAAK,QAAQ;gCACzB,CAAC,CAAC,QAAQ;gCACV,CAAC,CAAC,OAAO,CAAC;wBAChB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iCAAiC,KAAK,CAAC,cAAc,CAAC,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,UAAU,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,qBAAqB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,WAAW,EAAE,CACjP,CAAC;4BACF,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,gDAAgD;oBAChD,qDAAqD;oBACrD,IAAI,CAAC,YAAY,CACf,KAAK,CAAC,cAAc,CAAC,IAAI,EACzB;wBACE,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW;wBAC7C,WAAW,EAAE,SAAS;qBACvB,EACD,cAAc,CACf,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oFAAoF;YACpF,wCAAwC;YACxC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AA3cD,sCA2cC;AAED,SAAS,gBAAgB;IACvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,YAAY,GAAW;IAC3B,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAC9D,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IAChE,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAC9D,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;CACjE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { AbapConnection } from '@mcp-abap-adt/connection';
2
2
  import type { Logger } from '@mcp-abap-adt/logger';
3
- import type { IHandlersRegistry } from '../lib/handlers/interfaces.js';
3
+ import type { IHandlersRegistry, SapEnvironment } from '../lib/handlers/interfaces.js';
4
4
  import type { IAdtSystemContext } from '../lib/systemContext.js';
5
5
  import { BaseMcpServer } from './BaseMcpServer.js';
6
6
  /**
@@ -38,6 +38,17 @@ export interface EmbeddableMcpServerOptions {
38
38
  * If not provided, handlers will use whatever is available from env vars.
39
39
  */
40
40
  systemContext?: Partial<IAdtSystemContext>;
41
+ /**
42
+ * SAP system type for this server instance. Governs which tools are
43
+ * registered via the `available_in` filter. Overrides the process-global
44
+ * `SAP_SYSTEM_TYPE` env var. If omitted, falls back to the env var,
45
+ * then to `'cloud'`.
46
+ *
47
+ * Use this when a single host serves multiple SAP systems (e.g., a proxy
48
+ * that handles both OnPremise and cloud destinations per request) —
49
+ * mutating `process.env.SAP_SYSTEM_TYPE` per instance is not safe.
50
+ */
51
+ systemType?: SapEnvironment;
41
52
  }
42
53
  /**
43
54
  * Embeddable MCP Server for integration with external applications
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddableMcpServer.d.ts","sourceRoot":"","sources":["../../src/server/EmbeddableMcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AASnD,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,UAAU,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAErC;;;OAGG;IACH,UAAU,CAAC,EAAE,CACT,UAAU,GACV,MAAM,GACN,KAAK,GACL,SAAS,GACT,QAAQ,GACR,QAAQ,CACX,EAAE,CAAC;IAEJ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAExC,OAAO,EAAE,0BAA0B;IAwB/C;;;OAGG;cACa,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAIxD;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAyC9B"}
1
+ {"version":3,"file":"EmbeddableMcpServer.d.ts","sourceRoot":"","sources":["../../src/server/EmbeddableMcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AASnD,OAAO,KAAK,EAEV,iBAAiB,EACjB,cAAc,EACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,UAAU,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAErC;;;OAGG;IACH,UAAU,CAAC,EAAE,CACT,UAAU,GACV,MAAM,GACN,KAAK,GACL,SAAS,GACT,QAAQ,GACR,QAAQ,CACX,EAAE,CAAC;IAEJ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAExC,OAAO,EAAE,0BAA0B;IAyB/C;;;OAGG;cACa,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAIxD;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAyC9B"}
@@ -43,6 +43,7 @@ class EmbeddableMcpServer extends BaseMcpServer_js_1.BaseMcpServer {
43
43
  name: 'mcp-abap-adt',
44
44
  version: options.version ?? DEFAULT_VERSION,
45
45
  logger: options.logger,
46
+ systemType: options.systemType,
46
47
  });
47
48
  this.injectedConnection = options.connection;
48
49
  if (options.systemContext) {
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddableMcpServer.js","sourceRoot":"","sources":["../../src/server/EmbeddableMcpServer.ts"],"names":[],"mappings":";;;AAGA,8DAAqD;AACrD,4FAAsF;AACtF,gGAA0F;AAC1F,8FAAwF;AACxF,8FAAwF;AACxF,0FAAoF;AACpF,0FAAoF;AAKpF,wGAAkG;AAElG,8DAA2D;AAC3D,yDAAmD;AAEnD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC;AAmDnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,mBAAoB,SAAQ,gCAAa;IACnC,kBAAkB,CAAiB;IAEpD,YAAY,OAAmC;QAC7C,KAAK,CAAC;YACJ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;QAE7C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAA,mCAAgB,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;QAED,8DAA8D;QAC9D,MAAM,QAAQ,GACZ,OAAO,CAAC,gBAAgB;YACxB,IAAI,CAAC,qBAAqB,CACxB,OAAO,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAC1C,OAAO,CAAC,MAAM,CACf,CAAC;QAEJ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,aAAa;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,UAOG,EACH,MAAe;QAEf,6EAA6E;QAC7E,sEAAsE;QACtE,MAAM,YAAY,GAAmB;YACnC,UAAU,EAAE,IAAiC;YAC7C,MAAM,EAAE,MAAM,IAAI,6BAAU;SAC7B,CAAC;QAEF,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,IAAI,gDAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,kDAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,gDAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,4CAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,4CAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,wDAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF;AA/ED,kDA+EC"}
1
+ {"version":3,"file":"EmbeddableMcpServer.js","sourceRoot":"","sources":["../../src/server/EmbeddableMcpServer.ts"],"names":[],"mappings":";;;AAGA,8DAAqD;AACrD,4FAAsF;AACtF,gGAA0F;AAC1F,8FAAwF;AACxF,8FAAwF;AACxF,0FAAoF;AACpF,0FAAoF;AAMpF,wGAAkG;AAElG,8DAA2D;AAC3D,yDAAmD;AAEnD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC;AA+DnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,mBAAoB,SAAQ,gCAAa;IACnC,kBAAkB,CAAiB;IAEpD,YAAY,OAAmC;QAC7C,KAAK,CAAC;YACJ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;QAE7C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAA,mCAAgB,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;QAED,8DAA8D;QAC9D,MAAM,QAAQ,GACZ,OAAO,CAAC,gBAAgB;YACxB,IAAI,CAAC,qBAAqB,CACxB,OAAO,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAC1C,OAAO,CAAC,MAAM,CACf,CAAC;QAEJ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,aAAa;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,UAOG,EACH,MAAe;QAEf,6EAA6E;QAC7E,sEAAsE;QACtE,MAAM,YAAY,GAAmB;YACnC,UAAU,EAAE,IAAiC;YAC7C,MAAM,EAAE,MAAM,IAAI,6BAAU;SAC7B,CAAC;QAEF,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,IAAI,gDAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,kDAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,gDAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,4CAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,4CAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,wDAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF;AAhFD,kDAgFC"}
@@ -516,6 +516,22 @@ The `SAP_SYSTEM_TYPE` environment variable controls which tools are available an
516
516
 
517
517
  You can also set this via CLI: `--system-type=onprem`
518
518
 
519
+ #### Per-Instance Override (embedders)
520
+
521
+ When embedding the server via `EmbeddableMcpServer`, pass `systemType` in the constructor options to bind one server instance to a specific SAP system type, independent of the process-global `SAP_SYSTEM_TYPE` env var:
522
+
523
+ ```ts
524
+ new EmbeddableMcpServer({
525
+ connection,
526
+ exposition: ['readonly', 'high'],
527
+ systemType: 'onprem', // or 'cloud' / 'legacy'
528
+ });
529
+ ```
530
+
531
+ Use this when one host serves multiple SAP systems per request — for example, a proxy that resolves a BTP destination at request time and decides whether it is OnPremise (Cloud Connector) or an internet-facing cloud endpoint. Mutating `process.env.SAP_SYSTEM_TYPE` per request is not safe and is not required.
532
+
533
+ **Resolution order:** `options.systemType` → `process.env.SAP_SYSTEM_TYPE` → default `cloud`.
534
+
519
535
  ### System Context for On-Premise Systems
520
536
 
521
537
  When creating or updating ABAP objects on on-premise systems, SAP ADT requires `masterSystem` and `responsible` attributes in the XML request body. These ensure that objects are correctly bound to transport requests.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/core",
3
3
  "mcpName": "io.github.fr0ster/mcp-abap-adt",
4
- "version": "6.3.1",
4
+ "version": "6.4.1",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -43,9 +43,9 @@
43
43
  "test:init": "node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"",
44
44
  "test:reinit": "node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"",
45
45
  "test": "jest --passWithNoTests",
46
- "test:integration": "jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit",
47
- "test:high": "jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit",
48
- "test:low": "jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit",
46
+ "test:integration": "jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit",
47
+ "test:high": "jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit",
48
+ "test:low": "jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit",
49
49
  "test:check": "npx tsc --noEmit -p tsconfig.test.json",
50
50
  "shared:setup": "jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests",
51
51
  "shared:teardown": "jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests",
@@ -204,7 +204,8 @@
204
204
  "!src/**/index.ts"
205
205
  ],
206
206
  "testPathIgnorePatterns": [
207
- "__tests__/admin/"
207
+ "__tests__/admin/",
208
+ "__tests__/integration/"
208
209
  ],
209
210
  "maxWorkers": 1,
210
211
  "testTimeout": 600000,
@@ -1,220 +0,0 @@
1
- # Guaranteed Unlock on Error — Implementation Plan
2
-
3
- > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
-
5
- **Goal:** Replace try-catch unlock-on-error with try-finally in all update handlers to guarantee unlock regardless of error path.
6
-
7
- **Architecture:** Move lock() inside the same try block that has the finally-unlock. Use the existing safe pattern from `handleUpdateFunctionGroup.ts` and `handleUpdateFunctionModule.ts` as reference. Activate stays AFTER the finally block (after unlock).
8
-
9
- **Tech Stack:** TypeScript, existing ADT client methods
10
-
11
- ---
12
-
13
- ## Reference Pattern (from handleUpdateFunctionModule.ts)
14
-
15
- ```typescript
16
- let lockHandle: string | undefined;
17
- try {
18
- lockHandle = await client.getXxx().lock({ ... });
19
- // ... check, update, etc.
20
- } finally {
21
- if (lockHandle) {
22
- try {
23
- await client.getXxx().unlock({ ... }, lockHandle);
24
- } catch (unlockError: any) {
25
- logger?.warn(`Failed to unlock after error: ${unlockError?.message || unlockError}`);
26
- }
27
- }
28
- }
29
- // activate AFTER finally (unlock already done)
30
- ```
31
-
32
- ## Key transformation
33
-
34
- **Before (vulnerable):**
35
- ```typescript
36
- lockHandle = await client.getXxx().lock({ ... }); // OUTSIDE try
37
- try {
38
- // check → update → unlock (happy path)
39
- } catch (workflowError) {
40
- // unlock-on-error (catch only)
41
- if (lockHandle) await client.getXxx().unlock({ ... }, lockHandle);
42
- throw workflowError;
43
- }
44
- ```
45
-
46
- **After (safe):**
47
- ```typescript
48
- let lockHandle: string | undefined;
49
- try {
50
- lockHandle = await client.getXxx().lock({ ... });
51
- // check → update (NO unlock in happy path — finally handles it)
52
- } finally {
53
- if (lockHandle) {
54
- try {
55
- await client.getXxx().unlock({ ... }, lockHandle);
56
- logger?.info(`Unlocked: ${objectName}`);
57
- } catch (unlockError: any) {
58
- logger?.warn(`Failed to unlock ${objectName}: ${unlockError?.message || unlockError}`);
59
- }
60
- }
61
- }
62
- // check inactive + activate AFTER finally
63
- ```
64
-
65
- **Important:** Remove the explicit `unlock()` call from the happy path — `finally` handles both happy and error paths. Check-inactive and activate move AFTER the finally block since they don't need the lock.
66
-
67
- ---
68
-
69
- ## Vulnerable Handlers (9 files)
70
-
71
- ### Task 1: handleUpdateProgram.ts
72
-
73
- **Files:**
74
- - Modify: `src/handlers/program/high/handleUpdateProgram.ts`
75
-
76
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
77
-
78
- Move `lock()` (line 111) inside the inner try. Replace inner `try { ... } catch (workflowError) { unlock; }` with `try { ... } finally { unlock; }`. Remove explicit `unlock()` from happy path (line 167). Move check-inactive (lines 171-191) and activate (lines 194-212) after the finally block.
79
-
80
- - [ ] **Step 2: Verify build**
81
-
82
- Run: `npx tsc --noEmit`
83
- Expected: no errors
84
-
85
- - [ ] **Step 3: Commit**
86
-
87
- ```bash
88
- git commit -m "fix(UpdateProgram): guarantee unlock via try-finally (#22)"
89
- ```
90
-
91
- ### Task 2: handleUpdateClass.ts
92
-
93
- **Files:**
94
- - Modify: `src/handlers/class/high/handleUpdateClass.ts`
95
-
96
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
97
-
98
- Same transformation: lock inside try, finally for unlock, remove happy-path unlock, move check-inactive + activate after finally.
99
-
100
- - [ ] **Step 2: Verify build**
101
-
102
- Run: `npx tsc --noEmit`
103
-
104
- - [ ] **Step 3: Commit**
105
-
106
- ```bash
107
- git commit -m "fix(UpdateClass): guarantee unlock via try-finally (#22)"
108
- ```
109
-
110
- ### Task 3: handleUpdateInterface.ts
111
-
112
- **Files:**
113
- - Modify: `src/handlers/interface/high/handleUpdateInterface.ts`
114
-
115
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
116
- - [ ] **Step 2: Verify build**
117
- - [ ] **Step 3: Commit**
118
-
119
- ```bash
120
- git commit -m "fix(UpdateInterface): guarantee unlock via try-finally (#22)"
121
- ```
122
-
123
- ### Task 4: handleUpdateView.ts
124
-
125
- **Files:**
126
- - Modify: `src/handlers/view/high/handleUpdateView.ts`
127
-
128
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
129
- - [ ] **Step 2: Verify build**
130
- - [ ] **Step 3: Commit**
131
-
132
- ```bash
133
- git commit -m "fix(UpdateView): guarantee unlock via try-finally (#22)"
134
- ```
135
-
136
- ### Task 5: handleUpdateTable.ts
137
-
138
- **Files:**
139
- - Modify: `src/handlers/table/high/handleUpdateTable.ts`
140
-
141
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
142
- - [ ] **Step 2: Verify build**
143
- - [ ] **Step 3: Commit**
144
-
145
- ```bash
146
- git commit -m "fix(UpdateTable): guarantee unlock via try-finally (#22)"
147
- ```
148
-
149
- ### Task 6: handleUpdateStructure.ts
150
-
151
- **Files:**
152
- - Modify: `src/handlers/structure/high/handleUpdateStructure.ts`
153
-
154
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
155
- - [ ] **Step 2: Verify build**
156
- - [ ] **Step 3: Commit**
157
-
158
- ```bash
159
- git commit -m "fix(UpdateStructure): guarantee unlock via try-finally (#22)"
160
- ```
161
-
162
- ### Task 7: handleUpdateDomain.ts
163
-
164
- **Files:**
165
- - Modify: `src/handlers/domain/high/handleUpdateDomain.ts`
166
-
167
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
168
- - [ ] **Step 2: Verify build**
169
- - [ ] **Step 3: Commit**
170
-
171
- ```bash
172
- git commit -m "fix(UpdateDomain): guarantee unlock via try-finally (#22)"
173
- ```
174
-
175
- ### Task 8: handleUpdateServiceDefinition.ts
176
-
177
- **Files:**
178
- - Modify: `src/handlers/service_definition/high/handleUpdateServiceDefinition.ts`
179
-
180
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
181
- - [ ] **Step 2: Verify build**
182
- - [ ] **Step 3: Commit**
183
-
184
- ```bash
185
- git commit -m "fix(UpdateServiceDefinition): guarantee unlock via try-finally (#22)"
186
- ```
187
-
188
- ### Task 9: handleUpdateDataElement.ts
189
-
190
- **Files:**
191
- - Modify: `src/handlers/data_element/high/handleUpdateDataElement.ts`
192
-
193
- - [ ] **Step 1: Refactor lock/unlock to try-finally**
194
- - [ ] **Step 2: Verify build**
195
- - [ ] **Step 3: Commit**
196
-
197
- ```bash
198
- git commit -m "fix(UpdateDataElement): guarantee unlock via try-finally (#22)"
199
- ```
200
-
201
- ### Task 10: Final verification
202
-
203
- - [ ] **Step 1: Full build check**
204
-
205
- Run: `npx tsc --noEmit`
206
-
207
- - [ ] **Step 2: Squash into single commit**
208
-
209
- Squash all 9 fix commits into one:
210
- ```bash
211
- git commit -m "fix: guarantee unlock via try-finally in all update handlers (#22)"
212
- ```
213
-
214
- - [ ] **Step 3: Update CHANGELOG.md**
215
-
216
- Add entry under `[Unreleased]`:
217
- ```markdown
218
- ### Fixed
219
- - Guarantee unlock via `try-finally` in all update handlers — prevents locked objects when errors occur between lock and unlock (#22). Affected: UpdateProgram, UpdateClass, UpdateInterface, UpdateView, UpdateTable, UpdateStructure, UpdateDomain, UpdateServiceDefinition, UpdateDataElement.
220
- ```