@mcp-abap-adt/core 2.2.0 → 2.2.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.
- package/CHANGELOG.md +24 -0
- package/README.md +87 -16
- package/dist/server/StreamableHttpServer.d.ts +2 -0
- package/dist/server/StreamableHttpServer.d.ts.map +1 -1
- package/dist/server/StreamableHttpServer.js +33 -8
- package/dist/server/StreamableHttpServer.js.map +1 -1
- package/docs/README.md +18 -1
- package/docs/architecture/README.md +1 -0
- package/docs/deployment/GITHUB_ACTIONS.md +122 -0
- package/docs/deployment/README.md +1 -1
- package/docs/development/README.md +13 -4
- package/docs/installation/INSTALLATION.md +4 -4
- package/docs/installation/README.md +3 -1
- package/docs/installation/examples/README.md +1 -1
- package/docs/user-guide/AUTHENTICATION.md +61 -0
- package/docs/user-guide/CLIENT_CONFIGURATION.md +5 -2
- package/docs/user-guide/README.md +6 -1
- package/docs/user-guide/TERMINOLOGY.md +38 -0
- package/package.json +2 -4
- package/bin/mcp-abap-adt-configure.js +0 -514
- package/docs/installation/CLIENT_INSTALLERS.md +0 -91
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [2.2.3] - 2026-02-10
|
|
6
|
+
### Added
|
|
7
|
+
- **Docs**: Added dedicated Terminology and Authentication guides, with links from README.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- **README**: Reworked first-screen content and links to emphasize configurator usage and destinations.
|
|
11
|
+
- **Docs structure**: Moved GitHub configuration README into deployment docs and fixed internal links.
|
|
12
|
+
- **Client configuration docs**: Linked to the configurator repo and usage guide.
|
|
13
|
+
|
|
14
|
+
## [2.2.2] - 2026-02-10
|
|
15
|
+
### Added
|
|
16
|
+
- **Client support**: Added OpenCode and Copilot configuration support.
|
|
17
|
+
- **Claude config**: Added `.mcp.json` project configuration and docs.
|
|
18
|
+
- **Configurator options**: Added URL, headers, and timeout options in `mcp-abap-adt-configure`.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
- **Configurator split**: Removed `mcp-abap-adt-configure` from core. Use `@mcp-abap-adt/configurator` (repo: `mcp-abap-adt-conf`) with `mcp-conf` instead.
|
|
22
|
+
- **Codex/Goose handling**: Improved transport handling and timeout defaults for non-stdio transports.
|
|
23
|
+
- **Default-disabled entries**: Updated JSON config handling and docs to keep new entries disabled by default.
|
|
24
|
+
- **Streamable HTTP**: Refactored server handling for per-request connections.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- **Goose config**: Corrected enabled state handling in `writeGooseConfig`.
|
|
28
|
+
|
|
5
29
|
## [2.2.0] - 2026-02-09
|
|
6
30
|
### Added
|
|
7
31
|
- **MCP Registry metadata**: Added `server.json` and `mcpName` for registry publishing.
|
package/README.md
CHANGED
|
@@ -1,12 +1,62 @@
|
|
|
1
1
|
# mcp-abap-adt: Your Gateway to ABAP Development Tools (ADT)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
<img width="380" height="200" src="https://glama.ai/mcp/servers/@fr0ster/mcp-abap-adt/badge" />
|
|
5
|
-
</a>
|
|
3
|
+
This project provides a server that allows you to interact with SAP ABAP systems using the Model Context Protocol (MCP). It connects AI clients to real ADT capabilities: read, analyze, and modify ABAP artifacts with a consistent, secure interface.
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
**Why teams use it:**
|
|
6
|
+
- Works with **on‑prem** and **BTP** ABAP systems
|
|
7
|
+
- **Destination‑based auth** (service keys) so you stop pasting tokens everywhere
|
|
8
|
+
- Multiple transports: **stdio**, **HTTP**, **SSE**
|
|
9
|
+
- Rich tool surface for ABAP objects, metadata, transports, and search
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
**Authorization & Destinations (Important):** A *destination* is the filename of a service key stored locally. You place service keys in the service-keys directory, and use `--mcp=<destination>` to select which one to use. This is the primary auth model for on‑prem and BTP systems. See [Authentication & Destinations](docs/user-guide/AUTHENTICATION.md).
|
|
12
|
+
|
|
13
|
+
You can configure MCP clients either manually (JSON/TOML) or via the configurator CLI (`@mcp-abap-adt/configurator`, repo: [`mcp-abap-adt-conf`](https://github.com/fr0ster/mcp-abap-adt-conf)).
|
|
14
|
+
|
|
15
|
+
## Table of Contents
|
|
16
|
+
|
|
17
|
+
1. [Getting Started](#getting-started)
|
|
18
|
+
2. [Architecture](#architecture)
|
|
19
|
+
3. [Quick Start](#quick-start)
|
|
20
|
+
4. [Terminology](#terminology)
|
|
21
|
+
5. [Authorization & Destinations](#authorization--destinations)
|
|
22
|
+
6. [Registries](#registries)
|
|
23
|
+
7. [Features](#features)
|
|
24
|
+
8. [Documentation](#documentation)
|
|
25
|
+
9. [Dependencies](#dependencies)
|
|
26
|
+
10. [Running the Server](#running-the-server)
|
|
27
|
+
|
|
28
|
+
## Getting Started
|
|
29
|
+
|
|
30
|
+
Install the server and configure your client using the configurator:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install -g @mcp-abap-adt/core
|
|
34
|
+
npm install -g @mcp-abap-adt/configurator
|
|
35
|
+
|
|
36
|
+
# stdio (destination)
|
|
37
|
+
mcp-conf --client cline --name abap --mcp TRIAL
|
|
38
|
+
|
|
39
|
+
# HTTP (streamable HTTP)
|
|
40
|
+
mcp-conf --client copilot --name abap --transport http --url http://localhost:3000/mcp/stream/http --header x-mcp-destination=trial
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Full configurator usage (separate repo): [CLIENT_INSTALLERS.md](https://github.com/fr0ster/mcp-abap-adt-conf/tree/main/docs/CLIENT_INSTALLERS.md).
|
|
44
|
+
|
|
45
|
+
## Terminology
|
|
46
|
+
|
|
47
|
+
**Destination**: a local service key filename. You store service keys in the service-keys directory, and pass the filename (without extension) via `--mcp=<destination>` to select which system to use.
|
|
48
|
+
|
|
49
|
+
See [docs/user-guide/TERMINOLOGY.md](docs/user-guide/TERMINOLOGY.md) for the full list.
|
|
50
|
+
|
|
51
|
+
## Authorization & Destinations
|
|
52
|
+
|
|
53
|
+
Destination-based auth is the default. Drop service keys into the service-keys folder and use the filename as your destination:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
mcp-abap-adt --transport=stdio --mcp=TRIAL
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
For full details (paths, `.env`, direct headers), see [Authentication & Destinations](docs/user-guide/AUTHENTICATION.md).
|
|
10
60
|
|
|
11
61
|
## Architecture
|
|
12
62
|
|
|
@@ -35,13 +85,20 @@ await server.connect(transport);
|
|
|
35
85
|
|
|
36
86
|
## Quick Start
|
|
37
87
|
|
|
38
|
-
1. **Install**: See [Installation Guide](docs/installation/INSTALLATION.md)
|
|
39
|
-
2. **Configure**:
|
|
40
|
-
3. **
|
|
88
|
+
1. **Install server**: See [Installation Guide](docs/installation/INSTALLATION.md)
|
|
89
|
+
2. **Configure client (auto)**: Use `mcp-conf` from `@mcp-abap-adt/configurator` (repo: [`mcp-abap-adt-conf`](https://github.com/fr0ster/mcp-abap-adt-conf), docs: [CLIENT_INSTALLERS.md](https://github.com/fr0ster/mcp-abap-adt-conf/tree/main/docs/CLIENT_INSTALLERS.md))
|
|
90
|
+
3. **Configure client (manual)**: See [Client Configuration](docs/user-guide/CLIENT_CONFIGURATION.md)
|
|
91
|
+
4. **Use**: See [Available Tools](docs/user-guide/AVAILABLE_TOOLS.md)
|
|
41
92
|
|
|
42
|
-
##
|
|
93
|
+
## Registries
|
|
43
94
|
|
|
44
|
-
Published in the official MCP Registry
|
|
95
|
+
Published in the official MCP Registry and listed on Glama.ai.
|
|
96
|
+
|
|
97
|
+
- MCP Registry: [docs/deployment/MCP_REGISTRY.md](docs/deployment/MCP_REGISTRY.md)
|
|
98
|
+
- Glama.ai:
|
|
99
|
+
<a href="https://glama.ai/mcp/servers/@fr0ster/mcp-abap-adt">
|
|
100
|
+
<img width="380" height="200" src="https://glama.ai/mcp/servers/@fr0ster/mcp-abap-adt/badge" />
|
|
101
|
+
</a>
|
|
45
102
|
|
|
46
103
|
## Features
|
|
47
104
|
|
|
@@ -68,16 +125,21 @@ Published in the official MCP Registry. See `docs/deployment/MCP_REGISTRY.md` fo
|
|
|
68
125
|
## Documentation
|
|
69
126
|
|
|
70
127
|
### For Users
|
|
71
|
-
- **[
|
|
72
|
-
- **[
|
|
128
|
+
- **[Docs Index](docs/README.md)** - Full documentation index
|
|
129
|
+
- **[Installation Guide](docs/installation/README.md)** - Installation overview and platform guides
|
|
130
|
+
- **[User Guide](docs/user-guide/README.md)** - End-user docs (auth, config, tools)
|
|
131
|
+
- **[Authentication & Destinations](docs/user-guide/AUTHENTICATION.md)** - Destination-based auth and service keys
|
|
132
|
+
- **[Handlers Management](docs/user-guide/HANDLERS_MANAGEMENT.md)** - Enable/disable handler groups
|
|
133
|
+
- **Configurator**: `@mcp-abap-adt/configurator` (repo: [`mcp-abap-adt-conf`](https://github.com/fr0ster/mcp-abap-adt-conf)) provides the `mcp-conf` CLI to auto-configure clients
|
|
73
134
|
- **[Available Tools](docs/user-guide/AVAILABLE_TOOLS.md)** - Complete list of available MCP tools
|
|
74
135
|
|
|
75
136
|
### For Administrators
|
|
76
|
-
- **[
|
|
137
|
+
- **[Deployment Docs](docs/deployment/README.md)** - MCP Registry, Docker, release notes
|
|
138
|
+
- **[Server Configuration](docs/configuration/YAML_CONFIG.md)** - YAML config reference
|
|
77
139
|
|
|
78
140
|
### For Developers
|
|
79
|
-
- **[Architecture Documentation](docs/architecture/)** - System architecture and design decisions
|
|
80
|
-
- **[Development Documentation](docs/development/)** - Testing guides and development resources
|
|
141
|
+
- **[Architecture Documentation](docs/architecture/README.md)** - System architecture and design decisions
|
|
142
|
+
- **[Development Documentation](docs/development/README.md)** - Testing guides and development resources
|
|
81
143
|
- **[CHANGELOG.md](CHANGELOG.md)** - Version history and changes
|
|
82
144
|
|
|
83
145
|
## Dependencies
|
|
@@ -89,6 +151,9 @@ This project uses two npm packages:
|
|
|
89
151
|
|
|
90
152
|
These packages are automatically installed via `npm install` and are published to npm.
|
|
91
153
|
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
|
|
92
157
|
## Running the Server
|
|
93
158
|
|
|
94
159
|
### Global Installation (Recommended)
|
|
@@ -166,11 +231,13 @@ SAP_JWT_TOKEN=your-jwt-token
|
|
|
166
231
|
npm install -g @mcp-abap-adt/connection
|
|
167
232
|
|
|
168
233
|
# Generate .env file from service key JSON
|
|
169
|
-
|
|
234
|
+
mcp-auth auth -k path/to/service-key.json
|
|
170
235
|
```
|
|
171
236
|
|
|
172
237
|
This will automatically create/update `.env` file with JWT tokens and connection details.
|
|
173
238
|
|
|
239
|
+
**Claude recommendation:** place the service key in the service-keys directory and use `--mcp=<destination>` (avoid manual JWT tokens).
|
|
240
|
+
|
|
174
241
|
### Command-Line Options
|
|
175
242
|
|
|
176
243
|
**Authentication:**
|
|
@@ -228,3 +295,7 @@ npm run docs:tools
|
|
|
228
295
|
## Contributors
|
|
229
296
|
|
|
230
297
|
Thank you to all contributors! See [CONTRIBUTORS.md](CONTRIBUTORS.md) for the complete list.
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
**Acknowledgment**: This project was originally inspired by [mario-andreschak/mcp-abap-adt](https://github.com/mario-andreschak/mcp-abap-adt). We started with the core concept and then evolved it into an independent project with our own architecture and features.
|
|
@@ -61,6 +61,7 @@ export declare class StreamableHttpServer extends BaseMcpServer {
|
|
|
61
61
|
private readonly defaultDestination?;
|
|
62
62
|
private readonly path;
|
|
63
63
|
private readonly externalApp?;
|
|
64
|
+
private readonly version;
|
|
64
65
|
constructor(handlersRegistry: IHandlersRegistry, authBrokerFactory: AuthBrokerFactory, opts?: StreamableHttpServerOptions);
|
|
65
66
|
/**
|
|
66
67
|
* Creates the request handler function
|
|
@@ -90,5 +91,6 @@ export declare class StreamableHttpServer extends BaseMcpServer {
|
|
|
90
91
|
* Check if request has SAP connection headers
|
|
91
92
|
*/
|
|
92
93
|
private hasSapConnectionHeaders;
|
|
94
|
+
private createPerRequestServer;
|
|
93
95
|
}
|
|
94
96
|
//# sourceMappingURL=StreamableHttpServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamableHttpServer.d.ts","sourceRoot":"","sources":["../../src/server/StreamableHttpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;
|
|
1
|
+
{"version":3,"file":"StreamableHttpServer.d.ts","sourceRoot":"","sources":["../../src/server/StreamableHttpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IAUnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAVpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAGd,gBAAgB,EAAE,iBAAiB,EACnC,iBAAiB,EAAE,iBAAiB,EACrD,IAAI,CAAC,EAAE,2BAA2B;IAkBpC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA2E5B;;;;;;OAMG;IACH,cAAc,CACZ,GAAG,EAAE,gBAAgB,EACrB,QAAQ,CAAC,EAAE,wBAAwB,GAClC,IAAI;IAwBP;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,sBAAsB;CA0C/B"}
|
|
@@ -27,6 +27,7 @@ class StreamableHttpServer extends BaseMcpServer_js_1.BaseMcpServer {
|
|
|
27
27
|
defaultDestination;
|
|
28
28
|
path;
|
|
29
29
|
externalApp;
|
|
30
|
+
version;
|
|
30
31
|
constructor(handlersRegistry, authBrokerFactory, opts) {
|
|
31
32
|
super({
|
|
32
33
|
name: 'mcp-abap-adt',
|
|
@@ -35,6 +36,7 @@ class StreamableHttpServer extends BaseMcpServer_js_1.BaseMcpServer {
|
|
|
35
36
|
});
|
|
36
37
|
this.handlersRegistry = handlersRegistry;
|
|
37
38
|
this.authBrokerFactory = authBrokerFactory;
|
|
39
|
+
this.version = opts?.version ?? DEFAULT_VERSION;
|
|
38
40
|
this.host = opts?.host ?? '127.0.0.1';
|
|
39
41
|
this.port = opts?.port ?? 3000;
|
|
40
42
|
this.enableJsonResponse = opts?.enableJsonResponse ?? true;
|
|
@@ -53,6 +55,7 @@ class StreamableHttpServer extends BaseMcpServer_js_1.BaseMcpServer {
|
|
|
53
55
|
const clientId = `${req.socket.remoteAddress}:${req.socket.remotePort}`;
|
|
54
56
|
console.error(`[StreamableHttpServer] ${req.method} ${req.path} from ${clientId}`);
|
|
55
57
|
try {
|
|
58
|
+
const server = this.createPerRequestServer();
|
|
56
59
|
let destination;
|
|
57
60
|
let broker;
|
|
58
61
|
// Priority 1: Check x-mcp-destination header
|
|
@@ -69,20 +72,22 @@ class StreamableHttpServer extends BaseMcpServer_js_1.BaseMcpServer {
|
|
|
69
72
|
// No destination, no broker - create connection directly from headers
|
|
70
73
|
destination = undefined;
|
|
71
74
|
broker = undefined;
|
|
72
|
-
|
|
75
|
+
server.setConnectionContextFromHeadersPublic(req.headers);
|
|
73
76
|
}
|
|
74
77
|
// Priority 3: Use default destination
|
|
75
78
|
else if (this.defaultDestination) {
|
|
76
79
|
destination = this.defaultDestination;
|
|
77
|
-
broker
|
|
78
|
-
|
|
80
|
+
// Use default broker for --mcp/--env startup config
|
|
81
|
+
broker = await this.authBrokerFactory.getOrCreateAuthBroker();
|
|
79
82
|
}
|
|
80
83
|
// Priority 4: No auth params at all
|
|
81
84
|
// Allow request to proceed - metadata methods (tools/list, etc.) will work
|
|
82
85
|
// tools/call will fail with appropriate error in handler
|
|
83
|
-
|
|
86
|
+
if (destination && !broker) {
|
|
87
|
+
throw new Error(`Auth broker not initialized for destination: ${destination}`);
|
|
88
|
+
}
|
|
84
89
|
if (destination && broker) {
|
|
85
|
-
await
|
|
90
|
+
await server.setConnectionContextPublic(destination, broker);
|
|
86
91
|
}
|
|
87
92
|
const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
|
|
88
93
|
sessionIdGenerator: undefined, // stateless mode to avoid ID collisions
|
|
@@ -91,7 +96,7 @@ class StreamableHttpServer extends BaseMcpServer_js_1.BaseMcpServer {
|
|
|
91
96
|
res.on('close', () => {
|
|
92
97
|
void transport.close();
|
|
93
98
|
});
|
|
94
|
-
await
|
|
99
|
+
await server.connect(transport);
|
|
95
100
|
await transport.handleRequest(req, res, req.body);
|
|
96
101
|
}
|
|
97
102
|
catch (err) {
|
|
@@ -114,9 +119,9 @@ class StreamableHttpServer extends BaseMcpServer_js_1.BaseMcpServer {
|
|
|
114
119
|
// Only handle POST requests - GET SSE streams cause abort errors on disconnect
|
|
115
120
|
app.post(this.path, handler);
|
|
116
121
|
// Return 405 for other methods to avoid SSE stream issues
|
|
117
|
-
app.all(this.path, (
|
|
122
|
+
app.all(this.path, (_req, res) => {
|
|
118
123
|
res.status(405).send('Method Not Allowed');
|
|
119
|
-
})
|
|
124
|
+
});
|
|
120
125
|
console.error(`[StreamableHttpServer] Routes registered on external app at ${this.path}`);
|
|
121
126
|
console.error(`[StreamableHttpServer] JSON response mode: ${this.enableJsonResponse}`);
|
|
122
127
|
if (this.defaultDestination) {
|
|
@@ -165,6 +170,26 @@ class StreamableHttpServer extends BaseMcpServer_js_1.BaseMcpServer {
|
|
|
165
170
|
(headers['x-sap-password'] || headers['X-SAP-Password']);
|
|
166
171
|
return !!(hasUrl && (hasJwtAuth || hasBasicAuth));
|
|
167
172
|
}
|
|
173
|
+
createPerRequestServer() {
|
|
174
|
+
class PerRequestServer extends BaseMcpServer_js_1.BaseMcpServer {
|
|
175
|
+
registry;
|
|
176
|
+
constructor(registry, version, logger) {
|
|
177
|
+
super({ name: 'mcp-abap-adt', version, logger });
|
|
178
|
+
this.registry = registry;
|
|
179
|
+
this.registerHandlers(this.registry);
|
|
180
|
+
}
|
|
181
|
+
setConnectionContextPublic(destination, broker) {
|
|
182
|
+
if (!broker) {
|
|
183
|
+
return Promise.resolve();
|
|
184
|
+
}
|
|
185
|
+
return this.setConnectionContext(destination, broker);
|
|
186
|
+
}
|
|
187
|
+
setConnectionContextFromHeadersPublic(headers) {
|
|
188
|
+
this.setConnectionContextFromHeaders(headers);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return new PerRequestServer(this.handlersRegistry, this.version, this.logger);
|
|
192
|
+
}
|
|
168
193
|
}
|
|
169
194
|
exports.StreamableHttpServer = StreamableHttpServer;
|
|
170
195
|
//# sourceMappingURL=StreamableHttpServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamableHttpServer.js","sourceRoot":"","sources":["../../src/server/StreamableHttpServer.ts"],"names":[],"mappings":";;;;;;AACA,0FAAmG;AACnG,sDAA+D;AAE/D,8DAAqD;AAErD,yDAAmD;AAMnD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC;AA2CnE;;;;;;;;GAQG;AACH,MAAa,oBAAqB,SAAQ,gCAAa;
|
|
1
|
+
{"version":3,"file":"StreamableHttpServer.js","sourceRoot":"","sources":["../../src/server/StreamableHttpServer.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
CHANGED
|
@@ -17,6 +17,8 @@ Complete installation instructions for different platforms and environments.
|
|
|
17
17
|
Documentation for end users: configuration, usage, and available tools.
|
|
18
18
|
|
|
19
19
|
- `CLIENT_CONFIGURATION.md` - How to configure MCP clients to connect to the server
|
|
20
|
+
- `AUTHENTICATION.md` - Destination-based auth, service key locations, and header-based auth
|
|
21
|
+
- Configurator (auto-config): `@mcp-abap-adt/configurator` (repo: `mcp-abap-adt-conf`)
|
|
20
22
|
- `AVAILABLE_TOOLS.md` - Complete list of available MCP tools and their descriptions
|
|
21
23
|
- `CLI_OPTIONS.md` - Complete command-line options reference
|
|
22
24
|
|
|
@@ -25,6 +27,14 @@ Documentation for server configuration options.
|
|
|
25
27
|
|
|
26
28
|
- `YAML_CONFIG.md` - YAML configuration file guide (alternative to command-line arguments)
|
|
27
29
|
|
|
30
|
+
### [deployment/](deployment/) - Deployment & Releases
|
|
31
|
+
Documentation for deployment, Docker, and release flow.
|
|
32
|
+
|
|
33
|
+
- `README.md` - Deployment docs index
|
|
34
|
+
- `MCP_REGISTRY.md` - MCP Registry publishing
|
|
35
|
+
- `DOCKER.md` - Docker deployment guide
|
|
36
|
+
- `RELEASE.md` - Release process
|
|
37
|
+
|
|
28
38
|
### [architecture/](architecture/) - For Developers
|
|
29
39
|
Technical documentation about the system architecture, design decisions, and internal structure.
|
|
30
40
|
|
|
@@ -47,13 +57,20 @@ Documentation for developers: testing, development guides, and internal document
|
|
|
47
57
|
|
|
48
58
|
- **Getting Started**: [Installation Guide](installation/INSTALLATION.md)
|
|
49
59
|
- **User Configuration**: [Client Configuration](user-guide/CLIENT_CONFIGURATION.md)
|
|
60
|
+
- **Authentication**: [Destinations & Auth](user-guide/AUTHENTICATION.md)
|
|
61
|
+
- **Terminology**: [Project Terms](user-guide/TERMINOLOGY.md)
|
|
62
|
+
- **Handlers Management**: [Handler Groups](user-guide/HANDLERS_MANAGEMENT.md)
|
|
50
63
|
- **Server Configuration**: [YAML Config](configuration/YAML_CONFIG.md) | [CLI Options](user-guide/CLI_OPTIONS.md)
|
|
51
64
|
- **Deployment**: [MCP Registry](deployment/MCP_REGISTRY.md) | [Docker](deployment/DOCKER.md)
|
|
52
|
-
- **Client Configuration**: [Auto-Configure](installation/CLIENT_INSTALLERS.md)
|
|
53
65
|
- **Available Tools**: [Tools List](user-guide/AVAILABLE_TOOLS.md)
|
|
54
66
|
- **Architecture**: [Stateful Sessions](architecture/STATEFUL_SESSION_GUIDE.md) | [Architecture Docs](architecture/README.md)
|
|
55
67
|
- **Development**: [Development Documentation](development/)
|
|
56
68
|
|
|
69
|
+
## 📦 Artifacts
|
|
70
|
+
|
|
71
|
+
- `adt-discovery.xml` - ADT discovery snapshot
|
|
72
|
+
- `discovery.json` - ADT discovery JSON snapshot
|
|
73
|
+
|
|
57
74
|
## 📝 Package-Specific Documentation
|
|
58
75
|
|
|
59
76
|
Package-specific documentation is available in the respective npm packages:
|
|
@@ -41,6 +41,7 @@ Handlers are organized into logical groups for flexible composition:
|
|
|
41
41
|
- **[STATEFUL_SESSION_GUIDE.md](STATEFUL_SESSION_GUIDE.md)** - Stateful ADT request flow for lock/update/unlock operations
|
|
42
42
|
- **[TOOLS_ARCHITECTURE.md](TOOLS_ARCHITECTURE.md)** - MCP tools architecture and handler structure, explaining how tools are organized and how `TOOL_DEFINITION` works
|
|
43
43
|
- **[CONNECTION_ISOLATION.md](CONNECTION_ISOLATION.md)** - Connection isolation architecture, explaining how per-session connection isolation prevents data mixing between clients (version 1.1.10+)
|
|
44
|
+
- **[HANDLER_EXPORTER.md](HANDLER_EXPORTER.md)** - Legacy handler exporter usage
|
|
44
45
|
|
|
45
46
|
## Related Documentation
|
|
46
47
|
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# GitHub Configuration
|
|
2
|
+
|
|
3
|
+
This directory contains GitHub-specific configuration files.
|
|
4
|
+
|
|
5
|
+
## Workflows
|
|
6
|
+
|
|
7
|
+
### 🚀 Release Workflow (`workflows/release.yml`)
|
|
8
|
+
|
|
9
|
+
Automatically creates GitHub releases when you push a version tag.
|
|
10
|
+
|
|
11
|
+
**Trigger:** Push tags matching `v*.*.*` (e.g., `v1.1.0`, `v2.0.0`)
|
|
12
|
+
|
|
13
|
+
**What it does:**
|
|
14
|
+
1. Checks out code with submodules
|
|
15
|
+
2. Sets up Node.js 18
|
|
16
|
+
3. Installs dependencies
|
|
17
|
+
4. Builds the project
|
|
18
|
+
5. Runs tests (non-blocking)
|
|
19
|
+
6. Creates npm package (.tgz)
|
|
20
|
+
7. Creates GitHub Release
|
|
21
|
+
8. Uploads package as release asset
|
|
22
|
+
9. Generates release notes
|
|
23
|
+
|
|
24
|
+
**Usage:**
|
|
25
|
+
```bash
|
|
26
|
+
# Bump version
|
|
27
|
+
npm version patch # 1.1.0 -> 1.1.1
|
|
28
|
+
|
|
29
|
+
# Create and push tag
|
|
30
|
+
git tag v1.1.1
|
|
31
|
+
git push origin main
|
|
32
|
+
git push origin v1.1.1
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### ✅ CI Workflow (`workflows/ci.yml`)
|
|
36
|
+
|
|
37
|
+
Runs continuous integration tests on every push and PR.
|
|
38
|
+
|
|
39
|
+
**Trigger:**
|
|
40
|
+
- Push to `main` or `develop` branches
|
|
41
|
+
- Pull requests to `main` or `develop`
|
|
42
|
+
|
|
43
|
+
**What it does:**
|
|
44
|
+
1. Tests on multiple OS (Ubuntu, macOS, Windows)
|
|
45
|
+
2. Tests on multiple Node.js versions (18, 20)
|
|
46
|
+
3. Builds and tests the project
|
|
47
|
+
4. Verifies package creation
|
|
48
|
+
5. Tests package installation
|
|
49
|
+
|
|
50
|
+
### 📦 Publish to npm (`workflows/publish-npm.yml`)
|
|
51
|
+
|
|
52
|
+
Optional workflow for publishing to npm registry.
|
|
53
|
+
|
|
54
|
+
**Trigger:** Manual (workflow_dispatch)
|
|
55
|
+
|
|
56
|
+
**Setup required:**
|
|
57
|
+
1. Set `private: false` in package.json
|
|
58
|
+
2. Add NPM_TOKEN to repository secrets
|
|
59
|
+
3. Get token from https://www.npmjs.com/settings/[username]/tokens
|
|
60
|
+
|
|
61
|
+
## Release Process
|
|
62
|
+
|
|
63
|
+
See [docs/deployment/RELEASE.md](../docs/deployment/RELEASE.md) for detailed release instructions.
|
|
64
|
+
|
|
65
|
+
### Quick Release
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# 1. Bump version
|
|
69
|
+
npm version minor # or patch, major
|
|
70
|
+
|
|
71
|
+
# 2. Commit
|
|
72
|
+
git add package.json package-lock.json
|
|
73
|
+
git commit -m "chore: release v1.2.0"
|
|
74
|
+
|
|
75
|
+
# 3. Tag and push
|
|
76
|
+
git tag v1.2.0
|
|
77
|
+
git push origin main --tags
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Secrets Configuration
|
|
81
|
+
|
|
82
|
+
Currently no secrets are required for basic releases.
|
|
83
|
+
|
|
84
|
+
**Optional (for npm publishing):**
|
|
85
|
+
- `NPM_TOKEN` - npm authentication token
|
|
86
|
+
|
|
87
|
+
**Built-in secrets used:**
|
|
88
|
+
- `GITHUB_TOKEN` - Automatically provided by GitHub Actions
|
|
89
|
+
|
|
90
|
+
## Permissions
|
|
91
|
+
|
|
92
|
+
Workflows use these permissions:
|
|
93
|
+
- `contents: write` - Required for creating releases
|
|
94
|
+
- `GITHUB_TOKEN` - Automatically scoped by GitHub
|
|
95
|
+
|
|
96
|
+
## Troubleshooting
|
|
97
|
+
|
|
98
|
+
**Release workflow didn't trigger:**
|
|
99
|
+
- Ensure tag starts with `v` (e.g., `v1.0.0`)
|
|
100
|
+
- Check tag was pushed: `git push origin v1.0.0`
|
|
101
|
+
- Verify workflow file is in `main` branch
|
|
102
|
+
|
|
103
|
+
**Release failed:**
|
|
104
|
+
- Check GitHub Actions logs
|
|
105
|
+
- Common issues:
|
|
106
|
+
- Build errors
|
|
107
|
+
- Test failures (should be non-blocking)
|
|
108
|
+
- Permission errors (check GITHUB_TOKEN)
|
|
109
|
+
|
|
110
|
+
**CI tests failing:**
|
|
111
|
+
- Check specific OS/Node.js version matrix
|
|
112
|
+
- Tests are allowed to fail without blocking
|
|
113
|
+
- Package creation must succeed
|
|
114
|
+
|
|
115
|
+
## Workflow Status Badges
|
|
116
|
+
|
|
117
|
+
Add to README.md:
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
[](https://github.com/fr0ster/mcp-abap-adt/actions/workflows/release.yml)
|
|
121
|
+
[](https://github.com/fr0ster/mcp-abap-adt/actions/workflows/ci.yml)
|
|
122
|
+
```
|
|
@@ -52,5 +52,5 @@ See [RELEASE.md](./RELEASE.md) for detailed instructions.
|
|
|
52
52
|
## Related Documentation
|
|
53
53
|
|
|
54
54
|
- [Installation Guide](../installation/INSTALLATION.md) - Installation for development
|
|
55
|
-
- [CI/CD Configuration](
|
|
55
|
+
- [CI/CD Configuration](GITHUB_ACTIONS.md) - GitHub Actions workflows
|
|
56
56
|
- [User Guide](../user-guide/README.md) - Using the server
|
|
@@ -5,11 +5,20 @@ This directory contains documentation for developers: testing guides, developmen
|
|
|
5
5
|
## Files
|
|
6
6
|
|
|
7
7
|
- **[ASSISTANT_GUIDELINES.md](ASSISTANT_GUIDELINES.md)** - Guidelines for AI assistants working on this project
|
|
8
|
+
- **[ISSUE_ROADMAP_SYSTEM.md](ISSUE_ROADMAP_SYSTEM.md)** - Roadmap organization and issue tracking workflow
|
|
9
|
+
- **[TEST_CONFIG_YAML_GUIDE.md](TEST_CONFIG_YAML_GUIDE.md)** - Test configuration reference
|
|
8
10
|
- **[TEST_SYSTEM_SETUP.md](TEST_SYSTEM_SETUP.md)** - Guide for setting up test systems
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
11
|
+
|
|
12
|
+
## Roadmaps
|
|
13
|
+
|
|
14
|
+
- `roadmaps/HANDLER_BUILD_ERRORS_ROADMAP.md`
|
|
15
|
+
- `roadmaps/INFRASTRUCTURE_HANDLERS.md`
|
|
16
|
+
- `roadmaps/MCP_SERVER_REFACTORING_ROADMAP.md`
|
|
17
|
+
- `roadmaps/TEST_LOGGING_ROADMAP.md`
|
|
18
|
+
- `roadmaps/TEST_REFACTORING_ROADMAP.md`
|
|
19
|
+
- `roadmaps/TODO_ROADMAP.md`
|
|
20
|
+
- `roadmaps/USAGE_DOCUMENTATION_ROADMAP.md`
|
|
21
|
+
- `roadmaps/parameter_passing_unit_tests_roadmap.md`
|
|
13
22
|
|
|
14
23
|
## Test Documentation
|
|
15
24
|
|
|
@@ -51,7 +51,7 @@ After installation, you'll have access to:
|
|
|
51
51
|
**For JWT authentication with service keys**, install the connection package separately:
|
|
52
52
|
```bash
|
|
53
53
|
npm install -g @mcp-abap-adt/connection
|
|
54
|
-
|
|
54
|
+
mcp-auth auth -k path/to/service-key.json
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
**Get help on available options:**
|
|
@@ -80,7 +80,7 @@ For JWT authentication (SAP BTP) with service key:
|
|
|
80
80
|
npm install -g @mcp-abap-adt/connection
|
|
81
81
|
|
|
82
82
|
# Generate .env file from service key JSON
|
|
83
|
-
|
|
83
|
+
mcp-auth auth -k path/to/service-key.json
|
|
84
84
|
|
|
85
85
|
# This automatically creates/updates .env file with JWT tokens
|
|
86
86
|
```
|
|
@@ -88,7 +88,7 @@ sap-abap-auth auth -k path/to/service-key.json
|
|
|
88
88
|
**Run the server:**
|
|
89
89
|
```bash
|
|
90
90
|
# Default HTTP mode (uses auth-broker by default, even if .env exists)
|
|
91
|
-
# Note: auth-broker is
|
|
91
|
+
# Note: auth-broker is available for stdio/SSE via `--mcp=<destination>` and for HTTP via destination headers
|
|
92
92
|
mcp-abap-adt
|
|
93
93
|
|
|
94
94
|
# Force use of auth-broker (service keys), ignore .env file
|
|
@@ -282,7 +282,7 @@ mcp-abap-adt --transport=sse --sse-port=3001
|
|
|
282
282
|
**For JWT authentication with service keys**, install separately:
|
|
283
283
|
```bash
|
|
284
284
|
npm install -g @mcp-abap-adt/connection
|
|
285
|
-
|
|
285
|
+
mcp-auth auth -k path/to/service-key.json
|
|
286
286
|
```
|
|
287
287
|
|
|
288
288
|
#### Local Installation (Project-specific)
|
|
@@ -5,12 +5,14 @@ This directory contains installation guides for the MCP ABAP ADT Server.
|
|
|
5
5
|
## Files
|
|
6
6
|
|
|
7
7
|
- **[INSTALLATION.md](INSTALLATION.md)** - Main installation guide with platform-specific quick links
|
|
8
|
+
- **[CLINE_CONFIGURATION.md](CLINE_CONFIGURATION.md)** - Cline client configuration examples
|
|
8
9
|
- **[platforms/](platforms/)** - Platform-specific installation guides
|
|
9
10
|
- `INSTALL_WINDOWS.md` - Windows installation using PowerShell and winget
|
|
10
11
|
- `INSTALL_MACOS.md` - macOS installation using Homebrew
|
|
11
12
|
- `INSTALL_LINUX.md` - Linux installation using package managers
|
|
13
|
+
- **[examples/README.md](examples/README.md)** - Example client configurations
|
|
14
|
+
- `SERVICE_KEY_SETUP.md` - Service key setup for destination-based auth
|
|
12
15
|
|
|
13
16
|
## Quick Start
|
|
14
17
|
|
|
15
18
|
See the main [INSTALLATION.md](INSTALLATION.md) file for a complete overview and quick start instructions for your platform.
|
|
16
|
-
|
|
@@ -82,7 +82,7 @@ Use `cline-http-service-key-npx-config.json` for destination-based authenticatio
|
|
|
82
82
|
**Note**:
|
|
83
83
|
- The `--auth-broker` flag forces use of auth-broker (service keys), ignoring any `.env` file
|
|
84
84
|
- By default (without `--env` or `--auth-broker`), the server uses `.env` from current directory if it exists, otherwise uses auth-broker
|
|
85
|
-
- Auth-broker is
|
|
85
|
+
- Auth-broker is available for stdio/SSE via `--mcp=<destination>` and for HTTP via destination headers
|
|
86
86
|
|
|
87
87
|
3. **Use config** with destination header:
|
|
88
88
|
```json
|