guniweb-sap-mcp 0.7.0 → 0.8.1

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 (3) hide show
  1. package/README.md +5 -5
  2. package/dist/index.js +70 -65
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -66,7 +66,7 @@ graph TB
66
66
  ```
67
67
 
68
68
  ### Infrastructure
69
- - **Three Transport Modes** -- stdio, Streamable HTTP, SSE
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 1222 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 |
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. Measured against a production S/4HANA behind Cloudflare: 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.
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 is different: it keeps a per-connection session and expects a `?sessionId=` query parameter on `/messages`. Prefer `http` for new setups.
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 | SSE"]
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 &bull; 3 Prompts"]