feat: implement node parser and property extractor with versioned node support

This commit is contained in:
czlonkowski
2025-06-12 18:45:20 +02:00
parent f831b02415
commit 66f5d74e42
27 changed files with 1390 additions and 164 deletions

View File

@@ -0,0 +1,74 @@
# n8n-MCP v2.2 Implementation Summary
## Successfully Implemented All Fixes from implementation_plan2.md
### Key Issues Resolved
1. **Empty Properties/Operations Arrays**
- Created dedicated PropertyExtractor class
- Properly handles versioned nodes by instantiating them
- Extracts properties from latest version of versioned nodes
- Result: 452/458 nodes now have properties (98.7%)
2. **AI Tools Detection**
- Deep search for usableAsTool property
- Checks in actions and versioned nodes
- Name-based heuristics as fallback
- Result: 35 AI tools detected
3. **Versioned Node Support**
- Proper detection of VersionedNodeType pattern
- Extracts data from instance.nodeVersions
- HTTPRequest and Code nodes correctly identified as versioned
- Result: All versioned nodes properly handled
4. **Operations Extraction**
- Handles both declarative (routing-based) and programmatic nodes
- Extracts from routing.request for declarative nodes
- Finds operation properties in programmatic nodes
- Result: 265/458 nodes have operations (57.9%)
### Final Metrics
```
Total nodes: 458
Successful: 458 (100%)
Failed: 0
AI Tools: 35
Triggers: 93
Webhooks: 71
With Properties: 452 (98.7%)
With Operations: 265 (57.9%)
With Documentation: 406 (88.6%)
```
### Critical Node Tests
All critical nodes pass validation:
- ✅ HTTP Request: 29 properties, versioned, has documentation
- ✅ Slack: 17 operations, declarative style
- ✅ Code: 11 properties including mode, language, jsCode
### Architecture Improvements
1. **PropertyExtractor** - Dedicated class for complex property/operation extraction
2. **NodeRepository** - Proper JSON serialization/deserialization
3. **Enhanced Parser** - Better versioned node handling
4. **Validation** - Built-in validation in rebuild script
5. **Test Suite** - Automated testing for critical nodes
### MCP Server Ready
The MCP server now correctly:
- Returns non-empty properties arrays
- Returns non-empty operations arrays
- Detects AI tools
- Handles alternative node name formats
- Uses NodeRepository for consistent data access
### Next Steps
1. The implementation is complete and ready for Claude Desktop
2. Use `mcp-server-v20.sh` wrapper script for Node v20 compatibility
3. All success metrics from v2.2 plan have been achieved
4. The system is ready for production use