mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-01-30 06:22:04 +00:00
Improvements:
1. **Type Safety**: Replaced unsafe type casting in validateAIToolSubNode()
- Changed from `(validator as any)(node)` to explicit switch statement
- All 13 validators now called with proper type safety
- Eliminates TypeScript type bypass warnings
2. **Input Validation**: Added empty string checks in buildReverseConnectionMap()
- Validates source node names are non-empty strings
- Validates target node names are non-empty strings
- Prevents invalid connections from corrupting validation
3. **Magic Numbers Eliminated**: Extracted all hardcoded thresholds to constants
- MIN_DESCRIPTION_LENGTH_SHORT = 10
- MIN_DESCRIPTION_LENGTH_MEDIUM = 15
- MIN_DESCRIPTION_LENGTH_LONG = 20
- MIN_SYSTEM_MESSAGE_LENGTH = 20
- MAX_ITERATIONS_WARNING_THRESHOLD = 50
- MAX_TOPK_WARNING_THRESHOLD = 20
- Updated 12+ validation messages to reference constants
4. **URL Protocol Validation**: Added security check for HTTP Request Tool
- Validates URLs use http:// or https:// protocols only
- Gracefully handles n8n expressions ({{ }})
- Prevents potentially unsafe protocols (ftp, file, etc.)
Code Quality Improvements:
- Better error messages now include threshold values
- More maintainable - changing thresholds only requires updating constants
- Improved type safety throughout validation layer
- Enhanced input validation prevents edge case failures
Files Changed:
- src/services/ai-tool-validators.ts: Constants, URL validation, switch statement
- src/services/ai-node-validator.ts: Constants, empty string validation
Build Status: ✅ TypeScript compiles cleanly
Lint Status: ✅ No type errors
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>