Release v2.87.0
Generating release notes from v2.86.0 to HEAD
🔧 Maintenance
📝 Other Changes
- fix(api): folder-move caveat on every rollback outcome; partial restoration telemetry (6aa07d9)
- fix(validation): attribute access, signed primitives, one-line def suites, engine path (b8084d1)
- fix(validation): any in the operator hint, empty targets are not connections, zero-output bounds message (1aabc86)
- fix(validation): a double slash without comment blanking is an operator pair, not a regex (8865764)
- fix(validation): regex after a division, backticks in the JSON-literal fix, operator-specific fixes kept (1034d60)
- fix(api): autofix passes update details through; telemetry always records an after-state; document the unconfirmed no-rollback outcome (69350af)
- fix(validation): linear Python return regexes, imported and bare builtin names, multiline imports, complete deny table (cf680e4)
- fix(validation): whitespace ends a keyword before a regex literal; correct the known-gaps note (1458786)
- fix(validation): validate_node keeps the node version unless the caller pins a real one; no self-loop hint; zero-output Switch message (0a74869)
- feat(validation): native-Python Code-node rules, pythonNative in validate_node, native Python guide (6836798)
- fix(api): telemetry fallback, restore result code, folder-move uncertainty, partial-update docs (5e28d67)
- docs(tests): align the age-guard option docs with the timestamp handling (7773a61)
- fix(validation): regex at interpolation start, reversed dynamic first argument, suggestion only for real calls (3254635)
- fix(validation): numeric @Version, empty Switch rule collections, unknown Switch modes (06b2a25)
- fix(validation): JSON-literal fix text for quoted identifiers, comment-tolerant literal arguments, callee boundary check (0229307)
- fix(tests): keep workflows without a timestamp under the age guard; skip the sweep on the mock API key (3579407)
- test(validation): give the indeterminate-outputs Switch fixture a current typeVersion (5d8513f)
- fix(validation): Switch v1 exposes its four outputs to the error-output checks; suggestions skip sticky notes (5c0b7fc)
- docs(changelog): describe the Docker push condition accurately (b7df49c)
- fix(validation): context-neutral JMESPath messages, apostrophe-safe fix text, lexer state after literals, corrected doc examples (e64a161)
- fix(api): report n8n 2.39 publish refusals as PUBLISH_FORBIDDEN; remove unused source-control client methods (411dcc4)
- fix(validation): normalize a non-primitive @Version before property filtering; count an expression-mode Switch by numberOutputs (8a916c5)
- fix(validation): read $jmespath calls with whitespace before the paren; cover signed and exponent numbers and all comparison operators (d997e96)
- fix(validation): Switch branch counts, empty connection keys, validate_node operators, error-handler heuristic (8ccbca8)
- fix(tests): correct the npm test wording and bump the lock file version (0735fc5)
- feat(validation): check $jmespath() queries in expressions and ignore string literals in the $-prefix warning (4a9954e)
- fix(tests): run the orphan-workflow sweep once before the integration suite (c651042)
Release Statistics:
- 29 commits
- 1 contributor
- Contributors: czlonkowski
Installation
NPM Package
# Install globally
npm install -g n8n-mcp
# Or run directly
npx n8n-mcpDocker
# Standard image
docker run -p 3000:3000 ghcr.io/czlonkowski/n8n-mcp:v2.87.0
# Railway optimized
docker run -p 3000:3000 ghcr.io/czlonkowski/n8n-mcp-railway:v2.87.0Documentation
🤖 Generated with Claude Code