@mcp-abap-adt/core 2.2.2 → 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 +21 -1
- package/README.md +71 -18
- package/docs/README.md +17 -0
- 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 +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,9 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
-
## [2.2.
|
|
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
|
+
|
|
6
20
|
### Changed
|
|
7
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`.
|
|
8
28
|
|
|
9
29
|
## [2.2.0] - 2026-02-09
|
|
10
30
|
### Added
|
package/README.md
CHANGED
|
@@ -1,18 +1,36 @@
|
|
|
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).
|
|
10
12
|
|
|
11
|
-
|
|
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)).
|
|
12
14
|
|
|
13
|
-
|
|
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:
|
|
14
31
|
|
|
15
32
|
```bash
|
|
33
|
+
npm install -g @mcp-abap-adt/core
|
|
16
34
|
npm install -g @mcp-abap-adt/configurator
|
|
17
35
|
|
|
18
36
|
# stdio (destination)
|
|
@@ -22,7 +40,23 @@ mcp-conf --client cline --name abap --mcp TRIAL
|
|
|
22
40
|
mcp-conf --client copilot --name abap --transport http --url http://localhost:3000/mcp/stream/http --header x-mcp-destination=trial
|
|
23
41
|
```
|
|
24
42
|
|
|
25
|
-
Full usage:
|
|
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).
|
|
26
60
|
|
|
27
61
|
## Architecture
|
|
28
62
|
|
|
@@ -52,13 +86,19 @@ await server.connect(transport);
|
|
|
52
86
|
## Quick Start
|
|
53
87
|
|
|
54
88
|
1. **Install server**: See [Installation Guide](docs/installation/INSTALLATION.md)
|
|
55
|
-
2. **Configure client (auto)**: Use `mcp-conf` from `@mcp-abap-adt/configurator` (repo: `mcp-abap-adt-conf`)
|
|
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))
|
|
56
90
|
3. **Configure client (manual)**: See [Client Configuration](docs/user-guide/CLIENT_CONFIGURATION.md)
|
|
57
91
|
4. **Use**: See [Available Tools](docs/user-guide/AVAILABLE_TOOLS.md)
|
|
58
92
|
|
|
59
|
-
##
|
|
93
|
+
## Registries
|
|
60
94
|
|
|
61
|
-
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>
|
|
62
102
|
|
|
63
103
|
## Features
|
|
64
104
|
|
|
@@ -85,17 +125,21 @@ Published in the official MCP Registry. See `docs/deployment/MCP_REGISTRY.md` fo
|
|
|
85
125
|
## Documentation
|
|
86
126
|
|
|
87
127
|
### For Users
|
|
88
|
-
- **[
|
|
89
|
-
- **[
|
|
90
|
-
- **
|
|
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
|
|
91
134
|
- **[Available Tools](docs/user-guide/AVAILABLE_TOOLS.md)** - Complete list of available MCP tools
|
|
92
135
|
|
|
93
136
|
### For Administrators
|
|
94
|
-
- **[
|
|
137
|
+
- **[Deployment Docs](docs/deployment/README.md)** - MCP Registry, Docker, release notes
|
|
138
|
+
- **[Server Configuration](docs/configuration/YAML_CONFIG.md)** - YAML config reference
|
|
95
139
|
|
|
96
140
|
### For Developers
|
|
97
|
-
- **[Architecture Documentation](docs/architecture/)** - System architecture and design decisions
|
|
98
|
-
- **[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
|
|
99
143
|
- **[CHANGELOG.md](CHANGELOG.md)** - Version history and changes
|
|
100
144
|
|
|
101
145
|
## Dependencies
|
|
@@ -107,6 +151,9 @@ This project uses two npm packages:
|
|
|
107
151
|
|
|
108
152
|
These packages are automatically installed via `npm install` and are published to npm.
|
|
109
153
|
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
|
|
110
157
|
## Running the Server
|
|
111
158
|
|
|
112
159
|
### Global Installation (Recommended)
|
|
@@ -184,11 +231,13 @@ SAP_JWT_TOKEN=your-jwt-token
|
|
|
184
231
|
npm install -g @mcp-abap-adt/connection
|
|
185
232
|
|
|
186
233
|
# Generate .env file from service key JSON
|
|
187
|
-
|
|
234
|
+
mcp-auth auth -k path/to/service-key.json
|
|
188
235
|
```
|
|
189
236
|
|
|
190
237
|
This will automatically create/update `.env` file with JWT tokens and connection details.
|
|
191
238
|
|
|
239
|
+
**Claude recommendation:** place the service key in the service-keys directory and use `--mcp=<destination>` (avoid manual JWT tokens).
|
|
240
|
+
|
|
192
241
|
### Command-Line Options
|
|
193
242
|
|
|
194
243
|
**Authentication:**
|
|
@@ -246,3 +295,7 @@ npm run docs:tools
|
|
|
246
295
|
## Contributors
|
|
247
296
|
|
|
248
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.
|
package/docs/README.md
CHANGED
|
@@ -17,6 +17,7 @@ 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
|
|
20
21
|
- Configurator (auto-config): `@mcp-abap-adt/configurator` (repo: `mcp-abap-adt-conf`)
|
|
21
22
|
- `AVAILABLE_TOOLS.md` - Complete list of available MCP tools and their descriptions
|
|
22
23
|
- `CLI_OPTIONS.md` - Complete command-line options reference
|
|
@@ -26,6 +27,14 @@ Documentation for server configuration options.
|
|
|
26
27
|
|
|
27
28
|
- `YAML_CONFIG.md` - YAML configuration file guide (alternative to command-line arguments)
|
|
28
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
|
+
|
|
29
38
|
### [architecture/](architecture/) - For Developers
|
|
30
39
|
Technical documentation about the system architecture, design decisions, and internal structure.
|
|
31
40
|
|
|
@@ -48,12 +57,20 @@ Documentation for developers: testing, development guides, and internal document
|
|
|
48
57
|
|
|
49
58
|
- **Getting Started**: [Installation Guide](installation/INSTALLATION.md)
|
|
50
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)
|
|
51
63
|
- **Server Configuration**: [YAML Config](configuration/YAML_CONFIG.md) | [CLI Options](user-guide/CLI_OPTIONS.md)
|
|
52
64
|
- **Deployment**: [MCP Registry](deployment/MCP_REGISTRY.md) | [Docker](deployment/DOCKER.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
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Authentication & Destinations
|
|
2
|
+
|
|
3
|
+
The server supports multiple auth flows. The primary (and recommended) model is **destination-based authentication** using service keys.
|
|
4
|
+
|
|
5
|
+
## Destinations
|
|
6
|
+
|
|
7
|
+
A **destination** is simply the **filename** of a service key stored in the service-keys directory.
|
|
8
|
+
|
|
9
|
+
- Put service keys here:
|
|
10
|
+
- Linux/macOS: `~/.config/mcp-abap-adt/service-keys`
|
|
11
|
+
- Windows: `%APPDATA%\mcp-abap-adt\service-keys`
|
|
12
|
+
- The filename (without extension) becomes the destination name.
|
|
13
|
+
|
|
14
|
+
Example:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
~/.config/mcp-abap-adt/service-keys/TRIAL.json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Use it like this:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
mcp-abap-adt --transport=stdio --mcp=TRIAL
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The server will load the matching service key and manage tokens automatically.
|
|
27
|
+
|
|
28
|
+
## .env Authentication
|
|
29
|
+
|
|
30
|
+
You can also provide credentials via `.env`:
|
|
31
|
+
|
|
32
|
+
- In the current directory: `.env`
|
|
33
|
+
- Or explicitly: `--env /path/to/.env`
|
|
34
|
+
|
|
35
|
+
This is useful for quick local testing or when you do not want to store service keys.
|
|
36
|
+
|
|
37
|
+
### Generate .env from Service Key
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install -g @mcp-abap-adt/connection
|
|
41
|
+
mcp-auth auth -k path/to/service-key.json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
This writes JWT details to `.env`.
|
|
45
|
+
|
|
46
|
+
**Claude recommendation:** for Claude, prefer service keys in `service-keys` and use `--mcp=<destination>` instead of manual tokens.
|
|
47
|
+
|
|
48
|
+
## HTTP/SSE Headers
|
|
49
|
+
|
|
50
|
+
For HTTP/SSE transports, you can supply auth per request using headers:
|
|
51
|
+
|
|
52
|
+
- JWT: `x-sap-url`, `x-sap-client`, `x-sap-auth-type=jwt`, `x-sap-jwt-token`
|
|
53
|
+
- Basic: `x-sap-url`, `x-sap-client`, `x-sap-login`, `x-sap-password`
|
|
54
|
+
|
|
55
|
+
Header-based auth is useful for proxy setups or dynamic routing.
|
|
56
|
+
|
|
57
|
+
## Related Docs
|
|
58
|
+
|
|
59
|
+
- Client setup: `docs/user-guide/CLIENT_CONFIGURATION.md`
|
|
60
|
+
- Service key example: `docs/installation/examples/SERVICE_KEY_SETUP.md`
|
|
61
|
+
- Server CLI options: `docs/user-guide/CLI_OPTIONS.md`
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
This guide explains how to configure MCP clients to connect to the `mcp-abap-adt` server.
|
|
4
4
|
|
|
5
|
+
If you prefer not to edit JSON/TOML by hand, use the configurator CLI:
|
|
6
|
+
`@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)).
|
|
7
|
+
|
|
5
8
|
## Overview
|
|
6
9
|
|
|
7
10
|
The `mcp-abap-adt` server supports multiple transport modes:
|
|
@@ -80,7 +83,7 @@ The server processes the following HTTP headers (as checked in `applyAuthHeaders
|
|
|
80
83
|
- For **JWT authentication**: `x-sap-url`, `x-sap-auth-type`, and `x-sap-jwt-token` are required. `x-sap-refresh-token` is optional for automatic token refresh.
|
|
81
84
|
- For **basic authentication**: `x-sap-url`, `x-sap-auth-type`, `x-sap-login`, and `x-sap-password` are required.
|
|
82
85
|
- For **destination-based authentication**: Use `x-sap-destination` or `x-mcp-destination` header. URL is automatically derived from the service key, so `x-sap-url` is not required (and will be ignored if provided). Service keys must be stored in platform-specific locations (see [Destination-Based Authentication](#destination-based-authentication) section).
|
|
83
|
-
- For automatic token refresh, you only need `x-sap-refresh-token`. Client ID and Client Secret are **not needed** for refresh - they are only required for initial token generation via `
|
|
86
|
+
- For automatic token refresh, you only need `x-sap-refresh-token`. Client ID and Client Secret are **not needed** for refresh - they are only required for initial token generation via `mcp-auth` CLI tool (part of `@mcp-abap-adt/connection` package) or service keys.
|
|
84
87
|
|
|
85
88
|
|
|
86
89
|
## Basic Authentication
|
|
@@ -572,7 +575,7 @@ The server supports automatic token refresh when `x-sap-refresh-token` is provid
|
|
|
572
575
|
|
|
573
576
|
The connection will automatically refresh expired tokens when a 401/403 error is detected. The refresh happens transparently without requiring manual intervention.
|
|
574
577
|
|
|
575
|
-
**Note:** For automatic token refresh, you only need the refresh token. Client ID and Client Secret are **not needed** for refresh - they are only required for initial token generation via `
|
|
578
|
+
**Note:** For automatic token refresh, you only need the refresh token. Client ID and Client Secret are **not needed** for refresh - they are only required for initial token generation via `mcp-auth` CLI tool (part of `@mcp-abap-adt/connection` package).
|
|
576
579
|
|
|
577
580
|
## Examples
|
|
578
581
|
|
|
@@ -57,11 +57,16 @@ See [Installation Guide](../installation/INSTALLATION.md) for full instructions.
|
|
|
57
57
|
|
|
58
58
|
- **[CLIENT_CONFIGURATION.md](CLIENT_CONFIGURATION.md)** - Guide for configuring MCP clients to connect to the server, including HTTP header configuration for dynamic SAP connection setup
|
|
59
59
|
- **[AVAILABLE_TOOLS.md](AVAILABLE_TOOLS.md)** - Complete list of all available MCP tools with descriptions and usage examples (auto-generated from handler definitions)
|
|
60
|
+
- **[AUTHENTICATION.md](AUTHENTICATION.md)** - Destination-based auth, service key locations, and header-based auth
|
|
61
|
+
- **[TERMINOLOGY.md](TERMINOLOGY.md)** - Project-specific terminology
|
|
62
|
+
- **[HANDLERS_MANAGEMENT.md](HANDLERS_MANAGEMENT.md)** - Enable/disable handler groups and exposure
|
|
60
63
|
|
|
61
64
|
## Getting Started
|
|
62
65
|
|
|
63
66
|
1. **Install the server**: Choose package or source installation above
|
|
64
|
-
2. **Configure your client**:
|
|
67
|
+
2. **Configure your client**:
|
|
68
|
+
- **Auto (recommended)**: Use the configurator (`@mcp-abap-adt/configurator`, repo: `mcp-abap-adt-conf`)
|
|
69
|
+
- **Manual**: See [CLIENT_CONFIGURATION.md](CLIENT_CONFIGURATION.md) for JSON/TOML examples
|
|
65
70
|
3. **Explore available tools**: See [AVAILABLE_TOOLS.md](AVAILABLE_TOOLS.md) for a complete list of tools you can use
|
|
66
71
|
|
|
67
72
|
## Package Tree Output
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Terminology
|
|
2
|
+
|
|
3
|
+
This project uses a few terms in specific ways. If a term below is used differently in other tools, prefer the definitions here.
|
|
4
|
+
|
|
5
|
+
## Destination
|
|
6
|
+
|
|
7
|
+
A **destination** is the **filename** of a service key stored in the local `service-keys` directory. Example:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
~/.config/mcp-abap-adt/service-keys/TRIAL.json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Use it with `--mcp=TRIAL` or the `x-mcp-destination` header.
|
|
14
|
+
|
|
15
|
+
## Service Key
|
|
16
|
+
|
|
17
|
+
A JSON file downloaded from SAP BTP (XSUAA credentials). The filename becomes the destination name. The server reads it to obtain service URL and OAuth details.
|
|
18
|
+
|
|
19
|
+
## Auth Broker
|
|
20
|
+
|
|
21
|
+
The internal component that loads service keys, manages sessions/tokens, and provides connection configs. When `--mcp` is used, auth-broker is enabled automatically.
|
|
22
|
+
|
|
23
|
+
## Session Store
|
|
24
|
+
|
|
25
|
+
Storage for OAuth sessions/tokens created by auth-broker. By default sessions are in-memory unless `--unsafe` or `--auth-broker-path` is used.
|
|
26
|
+
|
|
27
|
+
## Transport
|
|
28
|
+
|
|
29
|
+
The protocol used between MCP client and server:
|
|
30
|
+
|
|
31
|
+
- `stdio` — local process stdio
|
|
32
|
+
- `http` / `streamableHttp` — HTTP POST JSON endpoint
|
|
33
|
+
- `sse` — server-sent events + POST messages
|
|
34
|
+
|
|
35
|
+
## Headers vs .env
|
|
36
|
+
|
|
37
|
+
For HTTP/SSE, SAP connection can be provided per request using headers (e.g., `x-sap-url`, `x-sap-auth-type`, `x-sap-jwt-token`). For stdio, use `.env` or `--mcp` destinations.
|
|
38
|
+
|