@mcp-abap-adt/core 7.1.1 → 7.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +6 -9
  3. package/dist/lib/config/ServerConfigManager.d.ts.map +1 -1
  4. package/dist/lib/config/ServerConfigManager.js +10 -2
  5. package/dist/lib/config/ServerConfigManager.js.map +1 -1
  6. package/docs/architecture/ARCHITECTURE.md +8 -6
  7. package/docs/architecture/HANDLER_EXPORTER.md +6 -6
  8. package/docs/architecture/README.md +1 -1
  9. package/docs/architecture/TOOLS_ARCHITECTURE.md +13 -4
  10. package/docs/configuration/YAML_CONFIG.md +7 -23
  11. package/docs/deployment/GITHUB_ACTIONS.md +2 -2
  12. package/docs/development/ASSISTANT_GUIDELINES.md +1 -1
  13. package/docs/development/tests/TESTING_AUTH.md +3 -3
  14. package/docs/installation/CLINE_CONFIGURATION.md +12 -20
  15. package/docs/installation/INSTALLATION.md +34 -38
  16. package/docs/installation/examples/README.md +10 -10
  17. package/docs/installation/examples/SERVICE_KEY_SETUP.md +3 -3
  18. package/docs/installation/examples/cline-stdio-npx-config.json +1 -1
  19. package/docs/installation/platforms/INSTALL_LINUX.md +28 -27
  20. package/docs/installation/platforms/INSTALL_MACOS.md +27 -26
  21. package/docs/installation/platforms/INSTALL_WINDOWS.md +27 -26
  22. package/docs/user-guide/AVAILABLE_TOOLS.md +110 -4
  23. package/docs/user-guide/AVAILABLE_TOOLS_COMPACT.md +1 -1
  24. package/docs/user-guide/AVAILABLE_TOOLS_HIGH.md +51 -2
  25. package/docs/user-guide/AVAILABLE_TOOLS_LEGACY.md +128 -4
  26. package/docs/user-guide/AVAILABLE_TOOLS_LOW.md +1 -1
  27. package/docs/user-guide/AVAILABLE_TOOLS_READONLY.md +59 -2
  28. package/docs/user-guide/CLIENT_CONFIGURATION.md +4 -4
  29. package/docs/user-guide/CLI_OPTIONS.md +35 -84
  30. package/docs/user-guide/HANDLERS_MANAGEMENT.md +9 -9
  31. package/docs/user-guide/README.md +8 -8
  32. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [7.1.3] - 2026-06-20
6
+
7
+ > Fixes the SSE transport host/port resolution, removes a broken CLI bin entry,
8
+ > and corrects the install documentation (`README.md`/`docs/` ship in `files`,
9
+ > so the doc fixes reach npm users with this release).
10
+
11
+ ### Fixed
12
+ - **SSE transport now honours its own host/port.** `--transport=sse` resolved the final host/port from the HTTP defaults/flags (`httpHost`/`httpPort`, so it listened on `3000`), ignoring `--sse-host`/`--sse-port` and `MCP_SSE_HOST`/`MCP_SSE_PORT`. Host/port resolution is now transport-aware: SSE falls back to the SSE defaults (host `127.0.0.1`, port `3001`) and its `--sse-*` flags / `MCP_SSE_*` env vars take effect; the generic `--host`/`--port` still win when provided. (`src/lib/config/ServerConfigManager.ts`.)
13
+ - **Removed the dangling `mcp-abap-adt-v2` bin entry.** `package.json`/`package-lock.json` still mapped `mcp-abap-adt-v2` → `bin/mcp-abap-adt-v2.js`, a file removed in an earlier release, so a global install created a broken `mcp-abap-adt-v2` symlink. The only binary is `mcp-abap-adt`. Also fixed a stale `mcp-abap-adt-v2` example in `tools/show-storage-paths.js` help output.
14
+ - **Documentation accuracy sweep:**
15
+ - Install docs/README used the wrong npm scope `@fr0ster/mcp-abap-adt`; corrected to `@mcp-abap-adt/core` (the GitHub repo path and the `io.github.fr0ster/…` registry id are unchanged).
16
+ - Stale local-pack tarball names / version pins (`…-1.1.0/1.2.0.tgz`) → version-independent `mcp-abap-adt-core-<version>.tgz` (so they no longer drift); Node requirement `18` → `22+` (matches `engines`); removed the non-existent `npm run start:legacy` / `dev:stdio` references and the `bin/mcp-abap-adt-v2.js` run examples.
17
+ - Corrected narrative drift: default transport is `stdio` (not HTTP); HTTP/SSE host default is `127.0.0.1` (not `0.0.0.0`); removed non-existent `--http`/`--sse` CLI shortcuts; refreshed handler-group tool counts and the `src/handlers/` directory list; the `system` handler group rides with `readonly` (it is not always included).
18
+ - Regenerated `docs/user-guide/AVAILABLE_TOOLS*.md` from the current `TOOL_DEFINITION`s (function-include tools, `GetStructuresList`, `GetIncludesList` tree, `GetProgFullCode` removal, refreshed counts).
19
+ - Removed documentation for the CORS / allowed-hosts / DNS-rebinding-protection options (`--http`/`--sse-allowed-origins`/`-allowed-hosts`/`-enable-dns-protection`, the matching `MCP_*` env vars, and the `http`/`sse` `allowed-origins`/`allowed-hosts`/`enable-dns-protection` YAML keys): they are parsed but not wired to the servers, so documenting them overstated capability. Actually implementing these is planned for a follow-up release.
20
+
21
+ ## [7.1.2] - 2026-06-20
22
+
23
+ > **Test infrastructure only.** The published runtime (`dist/`) is unchanged from
24
+ > 7.1.1 — no tool, handler, or library behaviour changed for consumers. This
25
+ > release bundles integration-test reliability fixes and a stale-metadata fix.
26
+
27
+ ### Fixed
28
+ - **`shared:setup` resilient to the cloud activation-run timeout.** Bulk-activating the ~24 shared objects in one activation run can exceed adt-clients' fixed ~45s request timeout; on a timeout the setup now skips the doomed full-group retries and falls back to batched activation (chunks of 5, with a second pass retrying only the leftovers) instead of failing.
29
+ - **Runtime profiling test produces a trace.** The runnable class now does measurable CPU work so the profiler arms and a trace is written; a trivial single-statement class finished before tracing engaged, so the trace never resolved (`Failed to resolve traceId`).
30
+ - **Runtime dump test actually creates and reads a dump** (was silently skipping or hitting a `400 session` error). It activates the division-by-zero class, triggers the dump on a separate connection (so the dumping run's server-side context loss does not poison the connection used to read the dump), fixes dump-id extraction from the feed entry (`id` field, plural `/runtime/dumps/<id>` path, URL-encoded, no decode), binds the read dump to the uniquely-named generated class, and fails (instead of skipping) when no dump is produced. `params.dump_id` remains the explicit opt-out for read-only environments.
31
+ - **`server.json` version** was stale at `7.0.3`; bumped to match the package version.
32
+
5
33
  ## [7.1.1] - 2026-06-19
6
34
 
7
35
  ### Fixed
package/README.md CHANGED
@@ -221,15 +221,15 @@ After installing globally with `npm install -g`, you can run from any directory:
221
221
  # Show help
222
222
  mcp-abap-adt --help
223
223
 
224
- # Default HTTP mode (works without .env file)
224
+ # Default stdio mode (for MCP clients; requires .env file or --mcp parameter)
225
225
  mcp-abap-adt
226
226
 
227
- # HTTP mode on custom port
228
- mcp-abap-adt --http-port=8080
229
-
230
- # Use stdio mode (for MCP clients, requires .env file or --mcp parameter)
227
+ # stdio mode (explicit; default when --transport is omitted)
231
228
  mcp-abap-adt --transport=stdio
232
229
 
230
+ # HTTP mode on custom port (HTTP requires --transport=http)
231
+ mcp-abap-adt --transport=http --port=8080
232
+
233
233
  # Use stdio mode with auth-broker (--mcp parameter)
234
234
  mcp-abap-adt --transport=stdio --mcp=TRIAL
235
235
 
@@ -240,7 +240,7 @@ mcp-abap-adt --env=trial
240
240
  mcp-abap-adt --env-path=/path/to/my.env
241
241
 
242
242
  # SSE mode (requires .env file or --mcp parameter)
243
- mcp-abap-adt --transport=sse --sse-port=3001
243
+ mcp-abap-adt --transport=sse --port=3001
244
244
 
245
245
  # SSE mode with auth-broker (--mcp parameter)
246
246
  mcp-abap-adt --transport=sse --mcp=TRIAL
@@ -257,9 +257,6 @@ npm run start:http
257
257
 
258
258
  # SSE mode
259
259
  npm run start:sse
260
-
261
- # Legacy v1 server (for backward compatibility)
262
- npm run start:legacy
263
260
  ```
264
261
 
265
262
  ### Environment Configuration
@@ -1 +1 @@
1
- {"version":3,"file":"ServerConfigManager.d.ts","sourceRoot":"","sources":["../../../src/lib/config/ServerConfigManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAc,aAAa,EAAa,MAAM,oBAAoB,CAAC;AAQ/E,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMhE;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAA8B;IAM5C;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAazC;;;OAGG;IACH,aAAa,IAAI,aAAa;IAW9B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAwCxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,MAAM,CAAC,yBAAyB,IAAI,MAAM;IAkC1C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM;CAqGzD"}
1
+ {"version":3,"file":"ServerConfigManager.d.ts","sourceRoot":"","sources":["../../../src/lib/config/ServerConfigManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAc,aAAa,EAAa,MAAM,oBAAoB,CAAC;AAQ/E,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMhE;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAA8B;IAM5C;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAazC;;;OAGG;IACH,aAAa,IAAI,aAAa;IAW9B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAiDxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,MAAM,CAAC,yBAAyB,IAAI,MAAM;IAkC1C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM;CAqGzD"}
@@ -86,12 +86,20 @@ class ServerConfigManager {
86
86
  const parsed = ArgumentsParser_js_1.ArgumentsParser.parse();
87
87
  const transport = this.parseTransport();
88
88
  const exposition = this.parseExposition();
89
+ // Resolve final host/port in a transport-aware way: SSE must fall back to
90
+ // the SSE-specific defaults/flags (--sse-host/--sse-port, MCP_SSE_HOST/PORT,
91
+ // 3001) rather than the HTTP ones, so `--transport=sse` listens on 3001 and
92
+ // the SSE flags/env actually take effect. The generic --host/--port still
93
+ // win when provided.
94
+ const isSse = transport === 'sse';
95
+ const transportHost = isSse ? parsed.sseHost : parsed.httpHost;
96
+ const transportPort = isSse ? parsed.ssePort : parsed.httpPort;
89
97
  return {
90
98
  transport: transport || 'stdio',
91
99
  exposition: exposition.length > 0 ? exposition : ['readonly', 'high'],
92
100
  configFile: (0, yamlConfig_js_1.parseConfigArg)(),
93
- host: ArgumentsParser_js_1.ArgumentsParser.getArgument('--host') || parsed.httpHost,
94
- port: this.parsePort() || parsed.httpPort,
101
+ host: ArgumentsParser_js_1.ArgumentsParser.getArgument('--host') || transportHost,
102
+ port: this.parsePort() || transportPort,
95
103
  httpJsonResponse: parsed.httpJsonResponse || undefined,
96
104
  httpPath: ArgumentsParser_js_1.ArgumentsParser.getArgument('--path') ||
97
105
  ArgumentsParser_js_1.ArgumentsParser.getArgument('--http-path'),
@@ -1 +1 @@
1
- {"version":3,"file":"ServerConfigManager.js","sourceRoot":"","sources":["../../../src/lib/config/ServerConfigManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerConfigManager.js","sourceRoot":"","sources":["../../../src/lib/config/ServerConfigManager.ts"],"names":[],"mappings":"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"}
@@ -288,13 +288,15 @@ launcher.ts main()
288
288
 
289
289
  Handlers are organized into groups by access level:
290
290
 
291
- | Group | Purpose | Typical Tool Count |
291
+ | Group | Purpose | Approx. Tool Count |
292
292
  |:---|:---|:---|
293
- | `ReadOnlyHandlersGroup` | Get operations (read source, metadata) | ~10 |
294
- | `HighLevelHandlersGroup` | Full CRUD (Create, Update, Delete, Get) | ~90 |
295
- | `LowLevelHandlersGroup` | Fine-grained (lock, unlock, activate, validate) | ~40 |
296
- | `SearchHandlersGroup` | Repository search, where-used | ~5 |
297
- | `SystemHandlersGroup` | System info, discovery | ~3 |
293
+ | `ReadOnlyHandlersGroup` | Get operations (read source, metadata) | ~29 |
294
+ | `HighLevelHandlersGroup` | Full CRUD (Create, Update, Delete, Get) | ~121 |
295
+ | `LowLevelHandlersGroup` | Fine-grained (lock, unlock, activate, validate) | ~120 |
296
+ | `SearchHandlersGroup` | Repository search, where-used | ~4 |
297
+ | `SystemHandlersGroup` | System info, discovery | ~30 |
298
+
299
+ Counts drift as tools are added; see [AVAILABLE_TOOLS.md](../user-guide/AVAILABLE_TOOLS.md) for the authoritative, up-to-date list.
298
300
 
299
301
  The `exposition` configuration controls which groups are active, enabling read-only deployments or full-access modes.
300
302
 
@@ -13,14 +13,14 @@ The `HandlerExporter` class allows you to register all ABAP ADT handlers on any
13
13
  ## Installation
14
14
 
15
15
  ```bash
16
- npm install @fr0ster/mcp-abap-adt
16
+ npm install @mcp-abap-adt/core
17
17
  ```
18
18
 
19
19
  ## Basic Usage
20
20
 
21
21
  ```typescript
22
22
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
23
- import { HandlerExporter } from "@fr0ster/mcp-abap-adt/handlers";
23
+ import { HandlerExporter } from "@mcp-abap-adt/core/handlers";
24
24
  import { createAbapConnection } from "@mcp-abap-adt/connection";
25
25
 
26
26
  // Create your MCP server
@@ -138,7 +138,7 @@ for (const entry of entries) {
138
138
  If you're using v2 server classes directly:
139
139
 
140
140
  ```typescript
141
- import { StreamableHttpServer } from "@fr0ster/mcp-abap-adt/server/v2";
141
+ import { StreamableHttpServer } from "@mcp-abap-adt/core/server/v2";
142
142
 
143
143
  const exporter = new HandlerExporter();
144
144
  const registry = exporter.createRegistry();
@@ -155,7 +155,7 @@ Example for cloud-llm-hub style integration:
155
155
  ```typescript
156
156
  import cds from "@sap/cds";
157
157
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
158
- import { HandlerExporter } from "@fr0ster/mcp-abap-adt";
158
+ import { HandlerExporter } from "@mcp-abap-adt/core";
159
159
  import { createConnection } from "./connections/connectionFactory";
160
160
 
161
161
  // Create MCP server instance
@@ -191,12 +191,12 @@ If you were using `mcp_abap_adt_server` directly:
191
191
 
192
192
  ```typescript
193
193
  // Old way (still works via legacy import)
194
- import { mcp_abap_adt_server } from "@fr0ster/mcp-abap-adt";
194
+ import { mcp_abap_adt_server } from "@mcp-abap-adt/core";
195
195
  const server = new mcp_abap_adt_server({ connection });
196
196
  await server.run();
197
197
 
198
198
  // New way (recommended for embedding)
199
- import { HandlerExporter } from "@fr0ster/mcp-abap-adt/handlers";
199
+ import { HandlerExporter } from "@mcp-abap-adt/core/handlers";
200
200
  const exporter = new HandlerExporter();
201
201
  exporter.registerOnServer(yourMcpServer, () => connection);
202
202
  ```
@@ -15,7 +15,7 @@ The default `mcp-abap-adt` command runs the v2 server with full transport suppor
15
15
  ### Handler Exporter (v1)
16
16
  For embedding into existing servers (e.g., CAP/CDS applications):
17
17
  ```typescript
18
- import { HandlerExporter } from '@fr0ster/mcp-abap-adt/handlers';
18
+ import { HandlerExporter } from '@mcp-abap-adt/core/handlers';
19
19
 
20
20
  const exporter = new HandlerExporter({
21
21
  includeReadOnly: true,
@@ -16,24 +16,33 @@ Each module now owns its description via a constant `TOOL_DEFINITION` structure
16
16
  ### 1. Handler Organization
17
17
 
18
18
  Handlers are organized into categorized subdirectories under `src/handlers/`:
19
- - `bdef/` - Behavior Definition handlers
19
+ - `behavior_definition/` - Behavior Definition handlers
20
+ - `behavior_implementation/` - Behavior Implementation handlers
20
21
  - `class/` - Class handlers
21
22
  - `common/` - Common handlers (activate, delete, check, lock, unlock, validate)
23
+ - `compact/` - Compact facade handlers
22
24
  - `data_element/` - Data Element handlers
23
- - `ddlx/` - Metadata Extension handlers
25
+ - `ddlx/` - DDLX (metadata extension) handlers
24
26
  - `domain/` - Domain handlers
25
27
  - `enhancement/` - Enhancement handlers
26
- - `function/` - Function handlers
28
+ - `function/` - Function (function module) handlers
29
+ - `function_group/` - Function Group handlers
30
+ - `function_include/` - Function Include handlers
31
+ - `function_module/` - Function Module handlers
27
32
  - `include/` - Include handlers
28
33
  - `interface/` - Interface handlers
34
+ - `metadata_extension/` - Metadata Extension handlers
29
35
  - `package/` - Package handlers
30
36
  - `program/` - Program handlers
31
37
  - `search/` - Search handlers
38
+ - `service_binding/` - Service Binding handlers
39
+ - `service_definition/` - Service Definition handlers
32
40
  - `structure/` - Structure handlers
33
41
  - `system/` - System handlers
34
42
  - `table/` - Table handlers
35
43
  - `transport/` - Transport handlers
36
- - `view/` - View handlers
44
+ - `unit_test/` - ABAP Unit test handlers
45
+ - `view/` - View (CDS) handlers
37
46
 
38
47
  This organization improves code navigation, reduces merge conflicts, and makes the codebase more maintainable.
39
48
 
@@ -28,7 +28,7 @@ Command-line arguments **always override** YAML values. This allows you to:
28
28
  Example:
29
29
  ```bash
30
30
  # Use config.yaml but override the port
31
- mcp-abap-adt --conf=config.yaml --http-port=8080
31
+ mcp-abap-adt --conf=config.yaml --port=8080
32
32
  ```
33
33
 
34
34
  ## Configuration File Structure
@@ -66,9 +66,6 @@ http:
66
66
  # When using 0.0.0.0, client must provide all connection headers - server won't use default destination
67
67
  host: 127.0.0.1
68
68
  json-response: false
69
- allowed-origins: []
70
- allowed-hosts: []
71
- enable-dns-protection: false
72
69
 
73
70
  # SSE (Server-Sent Events) transport options
74
71
  sse:
@@ -76,9 +73,6 @@ sse:
76
73
  # Host binding: 127.0.0.1 (default, localhost only, secure) or 0.0.0.0 (all interfaces, less secure)
77
74
  # When using 0.0.0.0, client must provide all connection headers - server won't use default destination
78
75
  host: 127.0.0.1
79
- allowed-origins: []
80
- allowed-hosts: []
81
- enable-dns-protection: false
82
76
  ```
83
77
 
84
78
  ## Configuration Options
@@ -101,21 +95,15 @@ sse:
101
95
  | Option | Type | Default | Description |
102
96
  |--------|------|---------|-------------|
103
97
  | `http.port` | number | `3000` | HTTP server port |
104
- | `http.host` | string | `0.0.0.0` | HTTP server host (`0.0.0.0` for all interfaces, `localhost` for local only) |
98
+ | `http.host` | string | `127.0.0.1` | HTTP server host (`127.0.0.1`/`localhost` for local only, `0.0.0.0` for all interfaces) |
105
99
  | `http.json-response` | boolean | `false` | Enable JSON response format |
106
- | `http.allowed-origins` | array/string | `[]` | Allowed CORS origins (comma-separated string or array) |
107
- | `http.allowed-hosts` | array/string | `[]` | Allowed hosts (comma-separated string or array) |
108
- | `http.enable-dns-protection` | boolean | `false` | Enable DNS rebinding protection |
109
100
 
110
101
  ### SSE Options
111
102
 
112
103
  | Option | Type | Default | Description |
113
104
  |--------|------|---------|-------------|
114
105
  | `sse.port` | number | `3001` | SSE server port |
115
- | `sse.host` | string | `0.0.0.0` | SSE server host |
116
- | `sse.allowed-origins` | array/string | `[]` | Allowed CORS origins (comma-separated string or array) |
117
- | `sse.allowed-hosts` | array/string | `[]` | Allowed hosts (comma-separated string or array) |
118
- | `sse.enable-dns-protection` | boolean | `false` | Enable DNS rebinding protection |
106
+ | `sse.host` | string | `127.0.0.1` | SSE server host |
119
107
 
120
108
  ## Examples
121
109
 
@@ -145,15 +133,13 @@ Usage:
145
133
  mcp-abap-adt --conf=config.yaml
146
134
  ```
147
135
 
148
- ### Example 3: SSE Mode with CORS
136
+ ### Example 3: SSE Mode with Custom Host and Port
149
137
 
150
138
  ```yaml
151
139
  transport: sse
152
140
  sse:
153
141
  port: 3001
154
- allowed-origins:
155
- - http://localhost:3000
156
- - http://localhost:5173
142
+ host: 127.0.0.1
157
143
  ```
158
144
 
159
145
  Usage:
@@ -225,13 +211,11 @@ http:
225
211
  port: 3000
226
212
  ```
227
213
 
228
- ### Test Config 4: sse-cors.yaml
214
+ ### Test Config 4: sse-default.yaml
229
215
  ```yaml
230
216
  transport: sse
231
217
  sse:
232
218
  port: 3001
233
- allowed-origins:
234
- - http://localhost:3000
235
219
  ```
236
220
 
237
221
  Run tests with different configs:
@@ -239,7 +223,7 @@ Run tests with different configs:
239
223
  mcp-abap-adt --conf=stdio-stdio.yaml
240
224
  mcp-abap-adt --conf=stdio-env.yaml
241
225
  mcp-abap-adt --conf=http-default.yaml
242
- mcp-abap-adt --conf=sse-cors.yaml
226
+ mcp-abap-adt --conf=sse-default.yaml
243
227
  ```
244
228
 
245
229
  ## Benefits
@@ -12,7 +12,7 @@ Automatically creates GitHub releases when you push a version tag.
12
12
 
13
13
  **What it does:**
14
14
  1. Checks out code with submodules
15
- 2. Sets up Node.js 18
15
+ 2. Sets up Node.js 22
16
16
  3. Installs dependencies
17
17
  4. Builds the project
18
18
  5. Runs tests (non-blocking)
@@ -42,7 +42,7 @@ Runs continuous integration tests on every push and PR.
42
42
 
43
43
  **What it does:**
44
44
  1. Tests on multiple OS (Ubuntu, macOS, Windows)
45
- 2. Tests on multiple Node.js versions (18, 20)
45
+ 2. Tests on multiple Node.js versions (22, 25)
46
46
  3. Builds and tests the project
47
47
  4. Verifies package creation
48
48
  5. Tests package installation
@@ -160,7 +160,7 @@ When reviewing code or documentation:
160
160
 
161
161
  This submodule is used by the main `cloud-llm-hub` project:
162
162
 
163
- - **Import path**: `@fr0ster/mcp-abap-adt`
163
+ - **Import path**: `@mcp-abap-adt/core`
164
164
  - **Build output**: `dist/` directory
165
165
  - **Usage**: Imported in `srv/mcp-proxy.ts` and `srv/mcp-manager.ts`
166
166
  - **MCP Endpoints**: Exposed via CAP service at `/mcp/stream/http` and `/mcp/sse`
@@ -47,7 +47,7 @@ EOF
47
47
 
48
48
  ```bash
49
49
  cd /home/okyslytsia/prj/mcp-abap-adt
50
- npm run dev:stdio
50
+ npm run dev
51
51
  # or
52
52
  npm run dev:http
53
53
  # or
@@ -105,7 +105,7 @@ cat > TRIAL.json << 'EOF'
105
105
  EOF
106
106
 
107
107
  # Start server from this directory
108
- npm run dev:stdio
108
+ npm run dev
109
109
  ```
110
110
 
111
111
  ## Debug Mode:
@@ -113,7 +113,7 @@ npm run dev:stdio
113
113
  To enable debug logs for auth-broker:
114
114
 
115
115
  ```bash
116
- DEBUG_AUTH_LOG=true npm run dev:stdio
116
+ DEBUG_AUTH_LOG=true npm run dev
117
117
  ```
118
118
 
119
119
  ## Test Logging Switches
@@ -33,9 +33,9 @@ Cline reads MCP server configurations from:
33
33
 
34
34
  If you installed via npm:
35
35
  ```bash
36
- npm install -g @fr0ster/mcp-abap-adt
36
+ npm install -g @mcp-abap-adt/core
37
37
  # or
38
- npx @fr0ster/mcp-abap-adt
38
+ npx @mcp-abap-adt/core
39
39
  ```
40
40
 
41
41
  Use the simpler configurations below (no need to specify full paths).
@@ -61,7 +61,7 @@ If you cloned the repository and are developing locally, use the full path confi
61
61
  "command": "npx",
62
62
  "args": [
63
63
  "-y",
64
- "@fr0ster/mcp-abap-adt",
64
+ "@mcp-abap-adt/core",
65
65
  "--transport=stdio",
66
66
  "--env=/absolute/path/to/.env"
67
67
  ],
@@ -80,7 +80,7 @@ If you cloned the repository and are developing locally, use the full path confi
80
80
  "command": "npx",
81
81
  "args": [
82
82
  "-y",
83
- "@fr0ster/mcp-abap-adt",
83
+ "@mcp-abap-adt/core",
84
84
  "--transport=stdio",
85
85
  "--env=/Users/username/.env"
86
86
  ],
@@ -99,7 +99,7 @@ If you cloned the repository and are developing locally, use the full path confi
99
99
  "command": "npx",
100
100
  "args": [
101
101
  "-y",
102
- "@fr0ster/mcp-abap-adt",
102
+ "@mcp-abap-adt/core",
103
103
  "--transport=stdio",
104
104
  "--env=C:/Users/username/.env"
105
105
  ],
@@ -112,7 +112,7 @@ If you cloned the repository and are developing locally, use the full path confi
112
112
 
113
113
  #### B. Using Global Installation
114
114
 
115
- If you installed globally (`npm install -g @fr0ster/mcp-abap-adt`):
115
+ If you installed globally (`npm install -g @mcp-abap-adt/core`):
116
116
 
117
117
  **With .env file:**
118
118
  ```json
@@ -192,12 +192,12 @@ Choose one method:
192
192
 
193
193
  **A. Using NPX** (recommended):
194
194
  ```bash
195
- npx @fr0ster/mcp-abap-adt --transport=http --http-port=3000
195
+ npx @mcp-abap-adt/core --transport=http --port=3000
196
196
  ```
197
197
 
198
198
  **B. Using Global Install**:
199
199
  ```bash
200
- mcp-abap-adt --transport=http --http-port=3000
200
+ mcp-abap-adt --transport=http --port=3000
201
201
  ```
202
202
 
203
203
  **C. Using NPM Script** (local development):
@@ -258,12 +258,12 @@ Choose one method:
258
258
 
259
259
  **A. Using NPX** (recommended):
260
260
  ```bash
261
- npx @fr0ster/mcp-abap-adt --transport=sse --sse-port=3001 --env=/path/to/.env
261
+ npx @mcp-abap-adt/core --transport=sse --port=3001 --env=/path/to/.env
262
262
  ```
263
263
 
264
264
  **B. Using Global Install**:
265
265
  ```bash
266
- mcp-abap-adt --transport=sse --sse-port=3001 --env=/path/to/.env
266
+ mcp-abap-adt --transport=sse --port=3001 --env=/path/to/.env
267
267
  ```
268
268
 
269
269
  **C. Using NPM Script** (local development):
@@ -418,18 +418,10 @@ You can run multiple instances with different SAP systems:
418
418
 
419
419
  ```bash
420
420
  # HTTP
421
- node ./bin/mcp-abap-adt.js --transport=http --http-port=8080 --http-host=0.0.0.0
421
+ node ./bin/mcp-abap-adt.js --transport=http --port=8080 --host=0.0.0.0
422
422
 
423
423
  # SSE
424
- node ./bin/mcp-abap-adt.js --transport=sse --sse-port=8081 --sse-host=0.0.0.0
425
- ```
426
-
427
- ### CORS Configuration
428
-
429
- ```bash
430
- node ./bin/mcp-abap-adt.js --transport=http \
431
- --http-allowed-origins=http://localhost:3000,https://example.com \
432
- --http-enable-dns-protection
424
+ node ./bin/mcp-abap-adt.js --transport=sse --port=8081 --host=0.0.0.0
433
425
  ```
434
426
 
435
427
  ### Environment Variables