@mcp-abap-adt/proxy 2.0.0 → 4.0.0
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 +181 -0
- package/LICENSE +669 -17
- package/README.md +79 -8
- package/bin/mcp-abap-adt-proxy-mcp.js +113 -0
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -97
- package/dist/lib/stores.d.ts +23 -2
- package/dist/lib/stores.d.ts.map +1 -1
- package/dist/lib/stores.js +56 -1
- package/dist/mcp/cli.d.ts +2 -0
- package/dist/mcp/cli.d.ts.map +1 -0
- package/dist/mcp/cli.js +21 -0
- package/dist/mcp/configs.d.ts +33 -0
- package/dist/mcp/configs.d.ts.map +1 -0
- package/dist/mcp/configs.js +142 -0
- package/dist/mcp/ports.d.ts +15 -0
- package/dist/mcp/ports.d.ts.map +1 -0
- package/dist/mcp/ports.js +35 -0
- package/dist/mcp/registry.d.ts +57 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +145 -0
- package/dist/mcp/server.d.ts +34 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +79 -0
- package/dist/mcp/shutdown.d.ts +37 -0
- package/dist/mcp/shutdown.d.ts.map +1 -0
- package/dist/mcp/shutdown.js +82 -0
- package/dist/mcp/supervisor.d.ts +125 -0
- package/dist/mcp/supervisor.d.ts.map +1 -0
- package/dist/mcp/supervisor.js +330 -0
- package/dist/mcp/tools.d.ts +28 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +152 -0
- package/dist/proxy/btpProxy.d.ts +24 -73
- package/dist/proxy/btpProxy.d.ts.map +1 -1
- package/dist/proxy/btpProxy.js +65 -616
- package/dist/proxy/credentials.d.ts +45 -0
- package/dist/proxy/credentials.d.ts.map +1 -0
- package/dist/proxy/credentials.js +41 -0
- package/dist/proxy/requestHandler.d.ts +38 -0
- package/dist/proxy/requestHandler.d.ts.map +1 -0
- package/dist/proxy/requestHandler.js +73 -0
- package/dist/proxy/reverseProxy.d.ts +11 -2
- package/dist/proxy/reverseProxy.d.ts.map +1 -1
- package/dist/proxy/reverseProxy.js +52 -9
- package/dist/router/headerAnalyzer.js +2 -2
- package/dist/router/requestInterceptor.js +9 -9
- package/docs/API.md +172 -0
- package/docs/ARCHITECTURE.md +322 -0
- package/docs/CLIENT_SETUP.md +413 -0
- package/docs/CONFIGURATION.md +258 -0
- package/docs/MIGRATION-4.0.md +125 -0
- package/docs/ROUTING_LOGIC.md +126 -0
- package/docs/TROUBLESHOOTING.md +488 -0
- package/docs/USAGE.md +422 -0
- package/docs/YAML_CONFIG.md +273 -0
- package/docs/mcp-proxy-config.example.yaml +62 -0
- package/package.json +17 -10
- package/dist/proxy/cloudLlmHubProxy.d.ts +0 -2
- package/dist/proxy/cloudLlmHubProxy.d.ts.map +0 -1
- package/dist/proxy/cloudLlmHubProxy.js +0 -3
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# MCP ABAP ADT Proxy Configuration Example
|
|
2
|
+
# Copy this file and pass it explicitly: mcp-abap-adt-proxy --config=<path>
|
|
3
|
+
# (There is no auto-discovery — the file is loaded ONLY via --config / -c.)
|
|
4
|
+
|
|
5
|
+
# --- Transport ---
|
|
6
|
+
transport: streamable-http # stdio | http | streamable-http | sse
|
|
7
|
+
httpPort: 3001
|
|
8
|
+
httpHost: "127.0.0.1"
|
|
9
|
+
ssePort: 3002
|
|
10
|
+
sseHost: "127.0.0.1"
|
|
11
|
+
|
|
12
|
+
# --- BTP authentication ---
|
|
13
|
+
# BTP destination name. Must match a service-key file:
|
|
14
|
+
# ~/.config/mcp-abap-adt/service-keys/<btpDestination>.json
|
|
15
|
+
btpDestination: "btp"
|
|
16
|
+
|
|
17
|
+
# Optional: override the target URL. Auth still comes from the service key
|
|
18
|
+
# above, but requests are forwarded here instead of the key's abap.url.
|
|
19
|
+
targetUrl: "https://your-service.cfapps.eu10.hana.ondemand.com"
|
|
20
|
+
|
|
21
|
+
# --- Default headers ---
|
|
22
|
+
# Injected into every forwarded request. Client-supplied request headers win
|
|
23
|
+
# over these; `Authorization` is always managed by the proxy (destination JWT)
|
|
24
|
+
# and CANNOT be set here.
|
|
25
|
+
#
|
|
26
|
+
# This is the per-user ABAP credential injection point. The upstream
|
|
27
|
+
# cloud-llm-hub is a SHARED server with no default service user, so on-premise /
|
|
28
|
+
# NoAuthentication destinations require each caller's own SAP login/password on
|
|
29
|
+
# every request. The proxy runs locally on YOUR machine, so it holds YOUR
|
|
30
|
+
# identity.
|
|
31
|
+
#
|
|
32
|
+
# Do NOT hardcode secrets here. Reference environment variables with ${VAR} (or
|
|
33
|
+
# ${VAR:-default}); values come from process.env or the envFile below. A ${VAR}
|
|
34
|
+
# without a default that cannot be resolved fails the proxy at startup.
|
|
35
|
+
defaultHeaders:
|
|
36
|
+
x-sap-destination: "S4HANA_E19"
|
|
37
|
+
x-sap-login: "${SAP_USER}"
|
|
38
|
+
x-sap-password: "${SAP_PASSWORD}"
|
|
39
|
+
|
|
40
|
+
# --- Secret source ---
|
|
41
|
+
# Optional .env file holding the variables referenced above. Path is resolved
|
|
42
|
+
# relative to THIS config file's directory. Override at launch with --env-file.
|
|
43
|
+
# Keep it user-local with restrictive permissions (chmod 600); never commit it.
|
|
44
|
+
# process.env takes priority over values in this file.
|
|
45
|
+
envFile: "secrets.env"
|
|
46
|
+
|
|
47
|
+
# --- OAuth2 login browser ---
|
|
48
|
+
browser: "system" # system | headless | chrome | edge | firefox | none
|
|
49
|
+
browserAuthPort: 7777 # port for the local OAuth2 callback server
|
|
50
|
+
|
|
51
|
+
# --- Session storage ---
|
|
52
|
+
unsafe: false # true: persist tokens to disk. false: in-memory (secure, default)
|
|
53
|
+
|
|
54
|
+
# --- Error handling & resilience ---
|
|
55
|
+
maxRetries: 3
|
|
56
|
+
retryDelay: 1000 # milliseconds
|
|
57
|
+
requestTimeout: 60000 # milliseconds
|
|
58
|
+
circuitBreakerThreshold: 5
|
|
59
|
+
circuitBreakerTimeout: 60000 # milliseconds
|
|
60
|
+
|
|
61
|
+
# --- Logging ---
|
|
62
|
+
logLevel: "info" # debug | info | warn | error
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-abap-adt/proxy",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "MCP proxy server for SAP ABAP ADT - proxies local requests to cloud-llm-hub with JWT authentication",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
"dev": "npx @modelcontextprotocol/inspector node ./dist/index.js",
|
|
20
20
|
"clean": "rimraf dist tsconfig.tsbuildinfo",
|
|
21
21
|
"prepublishOnly": "npm run build",
|
|
22
|
-
"test-destination": "npx tsx tools/test-destination.ts"
|
|
22
|
+
"test-destination": "npx tsx tools/test-destination.ts",
|
|
23
|
+
"start:mcp": "node ./bin/mcp-abap-adt-proxy-mcp.js"
|
|
23
24
|
},
|
|
24
25
|
"keywords": [
|
|
25
26
|
"abap",
|
|
@@ -30,7 +31,7 @@
|
|
|
30
31
|
"proxy"
|
|
31
32
|
],
|
|
32
33
|
"author": "Oleksii Kyslytsia <oleksij.kyslytsja@gmail.com>",
|
|
33
|
-
"license": "
|
|
34
|
+
"license": "GPL-3.0-only",
|
|
34
35
|
"repository": {
|
|
35
36
|
"type": "git",
|
|
36
37
|
"url": "git+https://github.com/fr0ster/mcp-abap-adt-proxy.git"
|
|
@@ -62,12 +63,15 @@
|
|
|
62
63
|
"typescript": "^6.0.3"
|
|
63
64
|
},
|
|
64
65
|
"dependencies": {
|
|
65
|
-
"@mcp-abap-adt/auth-broker": "^
|
|
66
|
-
"@mcp-abap-adt/auth-providers": "^2.
|
|
67
|
-
"@mcp-abap-adt/auth-stores": "^1.0
|
|
68
|
-
"@mcp-abap-adt/
|
|
69
|
-
"@mcp-abap-adt/
|
|
70
|
-
"@mcp-abap-adt/
|
|
66
|
+
"@mcp-abap-adt/auth-broker": "^2.2.0",
|
|
67
|
+
"@mcp-abap-adt/auth-providers": "^2.2.2",
|
|
68
|
+
"@mcp-abap-adt/auth-stores": "^1.2.0",
|
|
69
|
+
"@mcp-abap-adt/connection": "^9.2.0",
|
|
70
|
+
"@mcp-abap-adt/header-validator": "^0.3.0",
|
|
71
|
+
"@mcp-abap-adt/interfaces-auth": "^1.2.0",
|
|
72
|
+
"@mcp-abap-adt/interfaces-auth-sap": "^1.0.0",
|
|
73
|
+
"@mcp-abap-adt/interfaces-network": "^2.0.0",
|
|
74
|
+
"@mcp-abap-adt/logger": "^0.4.0",
|
|
71
75
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
72
76
|
"axios": "^1.15.1",
|
|
73
77
|
"dotenv": "^17.4.2",
|
|
@@ -81,11 +85,14 @@
|
|
|
81
85
|
"files": [
|
|
82
86
|
"dist/",
|
|
83
87
|
"bin/",
|
|
88
|
+
"docs/*.md",
|
|
89
|
+
"docs/mcp-proxy-config.example.yaml",
|
|
84
90
|
"README.md",
|
|
85
91
|
"LICENSE",
|
|
86
92
|
"CHANGELOG.md"
|
|
87
93
|
],
|
|
88
94
|
"bin": {
|
|
89
|
-
"mcp-abap-adt-proxy": "./bin/mcp-abap-adt-proxy.js"
|
|
95
|
+
"mcp-abap-adt-proxy": "./bin/mcp-abap-adt-proxy.js",
|
|
96
|
+
"mcp-abap-adt-proxy-mcp": "./bin/mcp-abap-adt-proxy-mcp.js"
|
|
90
97
|
}
|
|
91
98
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloudLlmHubProxy.d.ts","sourceRoot":"","sources":["../../src/proxy/cloudLlmHubProxy.ts"],"names":[],"mappings":""}
|