n8n-mcp-community 0.3.1 → 0.3.2
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 +22 -0
- package/README.md +2 -2
- package/dist/version.js +1 -1
- package/docs/compatibility.md +7 -1
- package/docs/installation.md +1 -1
- package/docs/provenance.md +15 -10
- package/docs/security-model.md +11 -10
- package/package.json +7 -6
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,27 @@ All notable changes to this project will be documented here. The format follows
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.3.2] - Frozen release candidate
|
|
10
|
+
|
|
11
|
+
Version 0.3.2 is a frozen release candidate. Availability is established only
|
|
12
|
+
by matching npm provenance, GitHub Release assets and signatures, and MCP
|
|
13
|
+
Registry readbacks; this immutable entry is not rewritten after publication.
|
|
14
|
+
|
|
15
|
+
### Security
|
|
16
|
+
|
|
17
|
+
- The runtime now uses `@modelcontextprotocol/sdk` 1.32.1, which removes the
|
|
18
|
+
vulnerable `1.30.0` release identified by GHSA-6qxp-vccf-f47h.
|
|
19
|
+
- The resolved Express dependency is now 5.3.0 and uses `proxy-addr` 2.0.8,
|
|
20
|
+
clearing GHSA-jqcg-44mw-7w3h from both production and complete npm audits.
|
|
21
|
+
- Runtime SBOM generation now derives its inventory from every production
|
|
22
|
+
lockfile path and rejects omissions, including packages that npm also sees
|
|
23
|
+
through a development path.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- `typescript-eslint` is updated to 8.71.2. This maintenance release does not
|
|
28
|
+
change the public 44-tool, 5-resource, and 4-prompt MCP contract.
|
|
29
|
+
|
|
9
30
|
## [0.3.1] - Frozen release candidate
|
|
10
31
|
|
|
11
32
|
Version 0.3.1 is a frozen release candidate. Availability is established only
|
|
@@ -367,6 +388,7 @@ Registry readbacks; this immutable entry is not rewritten after publication.
|
|
|
367
388
|
publishable history; authenticated public release receipts remain supported.
|
|
368
389
|
|
|
369
390
|
[Unreleased]: #unreleased
|
|
391
|
+
[0.3.2]: #032---frozen-release-candidate
|
|
370
392
|
[0.3.1]: #031---frozen-release-candidate
|
|
371
393
|
[0.3.0]: #030---frozen-release-candidate
|
|
372
394
|
[0.2.1]: #021---frozen-release-candidate
|
package/README.md
CHANGED
|
@@ -104,7 +104,7 @@ how to check the download.
|
|
|
104
104
|
The current source candidate has been verified with:
|
|
105
105
|
|
|
106
106
|
- exactly **44 tools**, **5 resources**, and **4 prompts** over real stdio;
|
|
107
|
-
- **
|
|
107
|
+
- **320 passing tests** locally on Node.js 24.21.0; CI and release gates require
|
|
108
108
|
the pinned Node.js 22.23.1 and 24.18.0 matrix;
|
|
109
109
|
- zero findings from Gitleaks, Semgrep, Trivy, and both project-root
|
|
110
110
|
production/full `npm audit` runs; all three source scanners are reproduced in
|
|
@@ -112,7 +112,7 @@ The current source candidate has been verified with:
|
|
|
112
112
|
- a separate no-override consumer install that resolves the patched
|
|
113
113
|
`@hono/node-server` 2.x line, requires a zero-finding production audit, and
|
|
114
114
|
proves the stdio runtime and exact 44/5/4 inventory;
|
|
115
|
-
- a reproducible dependency-license gate covering
|
|
115
|
+
- a reproducible dependency-license gate covering 187 installed package paths;
|
|
116
116
|
- bounded same-origin HTTP contracts and zero-request policy-denial tests;
|
|
117
117
|
- all 44 compiled tool lifecycles on disposable n8n Community 2.30.5 and 2.30.7
|
|
118
118
|
instances with egress isolation, revoked keys, cleanup, and zero residue; and
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const PACKAGE_VERSION = "0.3.
|
|
1
|
+
export const PACKAGE_VERSION = "0.3.2";
|
package/docs/compatibility.md
CHANGED
|
@@ -20,6 +20,12 @@ The package declares Node.js `>=22.0.0`. That engine range is an acceptance
|
|
|
20
20
|
floor, not evidence that every later major has completed the release matrix.
|
|
21
21
|
The supported release lines for v0.3.x are Node.js 22 and 24.
|
|
22
22
|
|
|
23
|
+
## Upgrading to 0.3.2
|
|
24
|
+
|
|
25
|
+
Install `n8n-mcp-community@latest` again, then restart the MCP client. This
|
|
26
|
+
maintenance release updates the MCP SDK and its resolved HTTP dependencies; it
|
|
27
|
+
does not change the connection values, modes, or 44/5/4 MCP inventory.
|
|
28
|
+
|
|
23
29
|
## Upgrading to 0.3.0
|
|
24
30
|
|
|
25
31
|
Install `n8n-mcp-community@latest` again, then restart the MCP client. The
|
|
@@ -48,7 +54,7 @@ names. MCP clients receive these constraints when they reconnect.
|
|
|
48
54
|
The connection values are unchanged. Global npm users keep the same client
|
|
49
55
|
entry. Users who followed the 0.1.x npx guide must replace the pinned
|
|
50
56
|
`n8n-mcp-community@0.1.4` argument with `n8n-mcp-community@latest` or
|
|
51
|
-
`n8n-mcp-community@0.3.
|
|
57
|
+
`n8n-mcp-community@0.3.2`. After updating, restart the MCP client and confirm the
|
|
52
58
|
version and 44/5/4 inventory.
|
|
53
59
|
|
|
54
60
|
Since 0.2.0, the 14 unsafe tools no longer publish or require a `confirmation` field;
|
package/docs/installation.md
CHANGED
|
@@ -92,7 +92,7 @@ unsafe tools.
|
|
|
92
92
|
|
|
93
93
|
Global npm users do not edit the client entry. If you followed the 0.1.x npx
|
|
94
94
|
guide, your client is pinned to `n8n-mcp-community@0.1.4`: replace that argument
|
|
95
|
-
with `n8n-mcp-community@latest` or `n8n-mcp-community@0.3.
|
|
95
|
+
with `n8n-mcp-community@latest` or `n8n-mcp-community@0.3.2`. Restart the client,
|
|
96
96
|
run the npx version check below, and confirm the 44/5/4 inventory.
|
|
97
97
|
|
|
98
98
|
If custom code sends raw tool-call JSON, remove the former `confirmation` field
|
package/docs/provenance.md
CHANGED
|
@@ -53,9 +53,9 @@ fails on:
|
|
|
53
53
|
- missing license metadata;
|
|
54
54
|
- a package that declares a license or notice file but omits it.
|
|
55
55
|
|
|
56
|
-
The current source candidate covers
|
|
57
|
-
|
|
58
|
-
licenses are
|
|
56
|
+
The current source candidate covers 187 installed package paths representing
|
|
57
|
+
186 unique components: 94 runtime paths and 93 development paths. The effective
|
|
58
|
+
licenses are 152 MIT, 11 ISC, 13 Apache-2.0, 7 BSD-2-Clause, 3 BSD-3-Clause,
|
|
59
59
|
and 1 BlueOak-1.0.0, with no missing integrity, license, or documented notice.
|
|
60
60
|
Four exact-pinned development-only packages use the reviewed missing-file
|
|
61
61
|
exception described in [third-party notices](../THIRD_PARTY_NOTICES.md). No
|
|
@@ -82,13 +82,18 @@ Generate the release runtime CycloneDX SBOM from the committed lockfile with:
|
|
|
82
82
|
npm run sbom > sbom.cdx.json
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
85
|
+
The runtime-only SBOM contains all 93 unique production components across the
|
|
86
|
+
94 production lockfile paths shared by the npm and MCPB runtime. The generator
|
|
87
|
+
starts from npm's complete CycloneDX graph, derives the runtime set from the
|
|
88
|
+
committed lockfile, and rejects missing, extra, development-only, or invalid
|
|
89
|
+
dependency entries. This prevents npm's `--omit=dev` classification from
|
|
90
|
+
dropping a runtime component that is also reachable through development tools.
|
|
91
|
+
Maintainers may separately generate the complete 186-component graph with
|
|
92
|
+
`npm run sbom:full`; it is audit evidence, not the release artifact SBOM.
|
|
93
|
+
|
|
94
|
+
Every release candidate must carry a runtime SBOM for the npm package and MCPB, plus
|
|
95
|
+
SHA-256 checksums and signatures tied to the exact Git revision; availability
|
|
96
|
+
is established only by the corresponding published-release readbacks.
|
|
92
97
|
The package and MCPB must be reconstructed from a clean checkout and match the
|
|
93
98
|
documented inventory.
|
|
94
99
|
|
package/docs/security-model.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Security model
|
|
2
2
|
|
|
3
|
-
This document describes the controls and residual risks of the v0.3.
|
|
3
|
+
This document describes the controls and residual risks of the v0.3.2 source
|
|
4
4
|
candidate. It is a threat model, not a claim that the software or the connected
|
|
5
5
|
n8n instance is invulnerable.
|
|
6
6
|
|
|
@@ -157,15 +157,16 @@ native confirmations based on the published MCP annotations.
|
|
|
157
157
|
|
|
158
158
|
### Downstream dependency resolution
|
|
159
159
|
|
|
160
|
-
MCP SDK 1.
|
|
161
|
-
this project no longer needs a package-root override that
|
|
162
|
-
would not inherit.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
160
|
+
The pinned MCP SDK 1.32.1 permits the patched `@hono/node-server` 2.x line
|
|
161
|
+
directly, so this project no longer needs a package-root override that
|
|
162
|
+
downstream consumers would not inherit. Its Express range also resolves
|
|
163
|
+
Express 5.3.0 with `proxy-addr` 2.0.8 in this candidate. The verification gate
|
|
164
|
+
packs the candidate, installs it in a disposable consumer without overrides,
|
|
165
|
+
rejects `@hono/node-server` versions below 2.0.5 or outside major version 2,
|
|
166
|
+
requires a zero-finding production audit, and proves the exact MCP inventory
|
|
167
|
+
still starts. Candidate evidence does not establish publication: the released
|
|
168
|
+
version must pass the same clean consumer audit after npm provenance and the
|
|
169
|
+
other external release readbacks agree.
|
|
169
170
|
|
|
170
171
|
The SDK dependency range also permits the legacy 1.x line. A separate host
|
|
171
172
|
project that co-installs another dependency constraining `@hono/node-server` to
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-mcp-community",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "A security-focused MCP server for self-hosted n8n Community Edition.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"releaseState": "candidate",
|
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
"check:registry": "node scripts/verify-registry-schema.mjs",
|
|
88
88
|
"check:readme-count": "node scripts/verify-readme-test-count.mjs",
|
|
89
89
|
"check:release": "node scripts/verify-release-policy.mjs",
|
|
90
|
+
"check:sbom": "node scripts/generate-runtime-sbom.mjs --check",
|
|
90
91
|
"docs:check": "npm run build && node scripts/verify-documentation.mjs",
|
|
91
92
|
"format": "prettier --write .",
|
|
92
93
|
"format:check": "prettier --check .",
|
|
@@ -97,7 +98,7 @@
|
|
|
97
98
|
"prepublishOnly": "npm run verify",
|
|
98
99
|
"demo:check": "node scripts/render-demo-gif.mjs --check",
|
|
99
100
|
"demo:render": "node scripts/render-demo-gif.mjs",
|
|
100
|
-
"sbom": "
|
|
101
|
+
"sbom": "node scripts/generate-runtime-sbom.mjs",
|
|
101
102
|
"sbom:full": "npm sbom --package-lock-only --sbom-format cyclonedx --sbom-type application",
|
|
102
103
|
"test:contract": "npm run build && npm run test:compile && node --test --test-concurrency=1 .test-dist/test/mcp-contract.test.js .test-dist/test/n8n-client.test.js .test-dist/test/tool-contract.test.js",
|
|
103
104
|
"test:coverage": "npm run build && npm run test:compile && node --test --test-concurrency=1 --experimental-test-coverage --test-coverage-include='.test-dist/src/**/*.js' --test-coverage-exclude='.test-dist/src/index.js' --test-coverage-lines=90 --test-coverage-functions=90 --test-coverage-branches=85 .test-dist/test/**/*.test.js",
|
|
@@ -105,13 +106,13 @@
|
|
|
105
106
|
"test:examples": "npm run build && node scripts/verify-examples.mjs",
|
|
106
107
|
"test": "npm run build && npm run test:compile && node --test --test-concurrency=1 .test-dist/test/**/*.test.js",
|
|
107
108
|
"typecheck": "tsc --noEmit --pretty false && tsc -p tsconfig.scripts.json --pretty false",
|
|
108
|
-
"check": "npm run format:check && npm run licenses:check && npm run lint && npm run typecheck && npm test && npm run check:readme-count && npm run check:metadata && npm run check:release && npm run check:docs && npm run check:language && npm run test:examples && npm run check:inventory && npm run check:public-boundary && npm run check:artifact-review",
|
|
109
|
-
"check:contributor": "npm run format:check && npm run licenses:check && npm run lint && npm run typecheck && npm test && npm run check:readme-count && npm run check:metadata && npm run check:release && npm run check:docs && npm run check:language && npm run test:examples && npm run check:inventory && npm run check:public-boundary",
|
|
109
|
+
"check": "npm run format:check && npm run licenses:check && npm run check:sbom && npm run lint && npm run typecheck && npm test && npm run check:readme-count && npm run check:metadata && npm run check:release && npm run check:docs && npm run check:language && npm run test:examples && npm run check:inventory && npm run check:public-boundary && npm run check:artifact-review",
|
|
110
|
+
"check:contributor": "npm run format:check && npm run licenses:check && npm run check:sbom && npm run lint && npm run typecheck && npm test && npm run check:readme-count && npm run check:metadata && npm run check:release && npm run check:docs && npm run check:language && npm run test:examples && npm run check:inventory && npm run check:public-boundary",
|
|
110
111
|
"verify": "npm run check && npm run test:coverage && npm run check:distribution && npm run check:consumer && npm run check:registry",
|
|
111
112
|
"verify:contributor": "npm run check:contributor && npm run test:coverage && npm run check:distribution:contributor && npm run check:consumer && npm run check:registry"
|
|
112
113
|
},
|
|
113
114
|
"dependencies": {
|
|
114
|
-
"@modelcontextprotocol/sdk": "1.
|
|
115
|
+
"@modelcontextprotocol/sdk": "1.32.1",
|
|
115
116
|
"zod": "3.25.76"
|
|
116
117
|
},
|
|
117
118
|
"devDependencies": {
|
|
@@ -124,7 +125,7 @@
|
|
|
124
125
|
"globals": "17.13.0",
|
|
125
126
|
"prettier": "3.9.9",
|
|
126
127
|
"typescript": "5.9.3",
|
|
127
|
-
"typescript-eslint": "8.71.
|
|
128
|
+
"typescript-eslint": "8.71.2",
|
|
128
129
|
"yaml": "2.9.1"
|
|
129
130
|
}
|
|
130
131
|
}
|
package/server.json
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
"url": "https://github.com/drzamarian/n8n-mcp-community",
|
|
9
9
|
"source": "github"
|
|
10
10
|
},
|
|
11
|
-
"version": "0.3.
|
|
11
|
+
"version": "0.3.2",
|
|
12
12
|
"packages": [
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
16
16
|
"identifier": "n8n-mcp-community",
|
|
17
|
-
"version": "0.3.
|
|
17
|
+
"version": "0.3.2",
|
|
18
18
|
"transport": {
|
|
19
19
|
"type": "stdio"
|
|
20
20
|
},
|