guniweb-sap-mcp 0.7.0 → 0.8.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/README.md +5 -5
- package/dist/index.js +69 -64
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ graph TB
|
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
### Infrastructure
|
|
69
|
-
- **
|
|
69
|
+
- **Two Transport Modes** -- stdio and Streamable HTTP (the legacy SSE transport was removed in 0.8.0)
|
|
70
70
|
- **Named destinations (0.3.0)** -- one server, several SAP systems; a Bearer token per n8n credential selects the system and its permissions. Static API key still supported
|
|
71
71
|
- **Docker Ready** -- Docker Compose for n8n + SAP MCP sidecar
|
|
72
72
|
- **Zero telemetry** -- the server talks to the SAP/BTP endpoints you configure and to nothing else. No usage statistics, no update checks, no crash reports
|
|
@@ -150,7 +150,7 @@ A `docker-compose.yml` that puts n8n next to the server is in the repository.
|
|
|
150
150
|
|-------------------------------|----------------|-------------------------------------------------------------------------------------------------|
|
|
151
151
|
| `--tool-timeout` / `SAP_MCP_TOOL_TIMEOUT` | `30` (seconds) | Time budget for a **whole tool call**, however many SAP requests it makes. On expiry the client gets a valid MCP response with `truncated: true` and a plain-language reason — never a hanging connection. Paginated reads return the pages fetched so far. `0` disables the budget (logged as a warning at startup) |
|
|
152
152
|
| `SAP_HTTP_TIMEOUT_MS` | `30000` | Timeout for a **single** outbound SAP request (ms). Hanging gateways fail fast with a structured `TIMEOUT` error instead of stalling the n8n agent. Capped by whatever is left of the tool budget above |
|
|
153
|
-
| `--cache-dir` / `SAP_CACHE_DIR` | _(unset = in-memory only)_ | Persist the catalog and metadata caches to disk so a restart does not refetch them. Without it every restart re-reads the full catalog — on a system with
|
|
153
|
+
| `--cache-dir` / `SAP_CACHE_DIR` | _(unset = in-memory only)_ | Persist the catalog and metadata caches to disk so a restart does not refetch them. Without it every restart re-reads the full catalog — on a system with over a thousand services that is the cold start that breaks client timeouts. n8n evicts its own client entry on a transport error, so restarts are not rare |
|
|
154
154
|
| `SAP_CA_CERT` | _(unset)_ | Path to the root CA that signs your SAP certificate — the documented way past a corporate PKI. Mirrored into `NODE_EXTRA_CA_CERTS`. Prefer this over `SAP_TLS_VERIFY=false`, which disables the check rather than solving it |
|
|
155
155
|
| `--concurrency` / `SAP_CONCURRENCY` | `5` | Upper bound on simultaneous SAP requests where several are unavoidable |
|
|
156
156
|
| `--allow-write` / `SAP_MCP_ALLOW_WRITE` | _(unset = read-only)_ | **Since 0.2.2 the server is read-only by default.** `sap_create`, `sap_update`, `sap_delete`, `sap_function` and `sap_idoc_send` are not registered at all until you set this — a tool an agent cannot see is a tool it cannot call by accident. `--read-only` is still accepted and now simply describes the default |
|
|
@@ -161,7 +161,7 @@ A `docker-compose.yml` that puts n8n next to the server is in the repository.
|
|
|
161
161
|
|
|
162
162
|
In HTTP transport mode the `/idoc` route is mounted on the MCP port: with `--webhook-secret` it authenticates independently of `--api-key` (so SAP's Basic auth works while n8n uses the Bearer key); without it, it falls under `--api-key` if set — and is **open** if neither is configured (the server logs a warning at startup).
|
|
163
163
|
|
|
164
|
-
Both timeouts must stay **below the smallest client limit** in your setup.
|
|
164
|
+
Both timeouts must stay **below the smallest client limit** in your setup. Typical limits: a reverse proxy such as Cloudflare aborts at 100 s (`524`), n8n's MCP client transport at 300 s. A budget above the smallest limit never takes effect, because the client gives up first.
|
|
165
165
|
|
|
166
166
|
#### Tracing a slow tool call
|
|
167
167
|
|
|
@@ -197,7 +197,7 @@ If `SAP_TLS_VERIFY=false` is in effect, **every tool result** carries a warning
|
|
|
197
197
|
|
|
198
198
|
Clients that *require* a session id — they read `mcp-session-id` from the initialize response and send it back on subsequent requests — will fail against this server. The n8n MCP Client, Claude Desktop, and the MCP Inspector all work without it.
|
|
199
199
|
|
|
200
|
-
The legacy `--transport sse` mode
|
|
200
|
+
The legacy `--transport sse` mode was removed in 0.8.0; use `http`.
|
|
201
201
|
|
|
202
202
|
#### Several SAP systems: `destinations.json`
|
|
203
203
|
|
|
@@ -410,7 +410,7 @@ graph TB
|
|
|
410
410
|
end
|
|
411
411
|
|
|
412
412
|
subgraph Server["guniweb-sap-mcp"]
|
|
413
|
-
Transport["Transport<br/>stdio | HTTP
|
|
413
|
+
Transport["Transport<br/>stdio | HTTP"]
|
|
414
414
|
UserCtx["UserContext<br/>Extraction"]
|
|
415
415
|
Registry["ToolRegistryManager<br/>Core | OData | IDoc"]
|
|
416
416
|
Tools["17 MCP Tools<br/>3 Resources • 3 Prompts"]
|