diff --git a/CHANGELOG.md b/CHANGELOG.md index bfd7f5f..47def57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.42.1] - 2026-03-30 + +### Fixed + +- **Community nodes missing from database after rebuild**: Restored 584 community nodes from the n8n 2.13.3 snapshot and re-extracted operations with resource grouping from `properties_schema`. 366 community nodes now have proper resource-grouped operations. + +- **Community node service missing resource extraction**: `extractOperations()` in `community-node-service.ts` was not extracting `resource` from `displayOptions.show.resource`, same issue that was fixed in `property-extractor.ts` in v2.42.0. + +Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en + ## [2.42.0] - 2026-03-30 ### Added diff --git a/data/nodes.db b/data/nodes.db index 0d1e167..33b7c20 100644 Binary files a/data/nodes.db and b/data/nodes.db differ diff --git a/package.json b/package.json index 8cf40c5..2f3da96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp", - "version": "2.42.0", + "version": "2.42.1", "description": "Integration between n8n workflow automation and Model Context Protocol (MCP)", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/community/community-node-service.ts b/src/community/community-node-service.ts index 1d01de3..0000bad 100644 --- a/src/community/community-node-service.ts +++ b/src/community/community-node-service.ts @@ -343,10 +343,17 @@ export class CommunityNodeService { const operations: any[] = []; // Check properties for resource/operation pattern + // Nodes can have multiple operation properties, each mapped to a resource via displayOptions if (nodeDesc.properties) { for (const prop of nodeDesc.properties) { - if (prop.name === 'operation' && prop.options) { - operations.push(...prop.options); + if ((prop.name === 'operation' || prop.name === 'action') && prop.options) { + const resource = prop.displayOptions?.show?.resource?.[0]; + for (const op of prop.options) { + operations.push({ + ...op, + ...(resource ? { resource } : {}) + }); + } } } }