Commit Graph

158 Commits

Author SHA1 Message Date
Romuald Członkowski
32264da107 enhance: Add safety features to HTTP validation tools response (#345)
* enhance: Add safety features to HTTP validation tools response

- Add TypeScript interface (MCPToolResponse) for type safety
- Implement 1MB response size validation and truncation
- Add warning logs for large validation responses
- Prevent memory issues with size limits (matches STDIO behavior)

This enhances PR #343's fix with defensive measures:
- Size validation prevents DoS/memory exhaustion
- Truncation ensures HTTP transport stability
- Type safety improves code maintainability

All changes are backward compatible and non-breaking.

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en

* chore: Version bump to 2.20.4 with documentation

- Bump version 2.20.3 → 2.20.4
- Add comprehensive CHANGELOG.md entry for v2.20.4
- Document CI test infrastructure issues in docs/CI_TEST_INFRASTRUCTURE.md
- Explain MSW/external PR integration test failures
- Reference PR #343 and enhancement safety features

Code review: 9/10 (code-reviewer agent approved)

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
2025-10-21 20:25:48 +02:00
Romuald Członkowski
dbdc88d629 feat: Add Claude Skills documentation and setup guide (#344)
* feat: Add Claude Skills documentation and setup guide

- Added skills section to README.md with video thumbnail
- Added detailed skills installation guide to Claude Code setup
- Included new skills.png image for video preview
- Referenced n8n-skills repository for all 7 complementary skills

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en

* feat: Add YouTube video link to skills documentation

- Updated placeholder with actual YouTube video URL
- Video demonstrates skills setup and usage

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
2025-10-21 18:57:49 +02:00
Romuald Członkowski
8d20c64f5c Revert to v2.18.10 - Remove session persistence (v2.19.0-v2.19.5) (#322)
After 5 consecutive hotfix attempts, session persistence has proven
architecturally incompatible with the MCP SDK. Rolling back to last
known stable version.

## Removed
- 16 new files (session types, docs, tests, planning docs)
- 1,100+ lines of session persistence code
- Session restoration hooks and lifecycle events
- Retry policy and warm-start implementations

## Restored
- Stable v2.18.10 codebase
- Library export fields (from PR #310)
- All core MCP functionality

## Breaking Changes
- Session persistence APIs removed
- onSessionNotFound hook removed
- Session lifecycle events removed

This reverts commits fe13091 through 1d34ad8.
Restores commit 4566253 (v2.18.10, PR #310).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-14 10:13:43 +02:00
Romuald Członkowski
fe1309151a fix: Implement warm start pattern for session restoration (v2.19.5) (#320)
Fixes critical bug where synthetic MCP initialization had no HTTP context
to respond through, causing timeouts. Implements warm start pattern that
handles the current request immediately.

Breaking Changes:
- Deleted broken initializeMCPServerForSession() method (85 lines)
- Removed unused InitializeRequestSchema import

Implementation:
- Warm start: restore session → handle request immediately
- Client receives -32000 error → auto-retries with initialize
- Idempotency guards prevent concurrent restoration duplicates
- Cleanup on failure removes failed sessions
- Early return prevents double processing

Changes:
- src/http-server-single-session.ts: Simplified restoration (lines 1118-1247)
- tests/integration/session-restoration-warmstart.test.ts: 9 new tests
- docs/MULTI_APP_INTEGRATION.md: Warm start documentation
- CHANGELOG.md: v2.19.5 entry
- package.json: Version bump to 2.19.5
- package.runtime.json: Version bump to 2.19.5

Testing:
- 9/9 new integration tests passing
- 13/13 existing session tests passing
- No regressions in MCP tools (12 tools verified)
- Build and lint successful

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-13 23:42:10 +02:00
Romuald Członkowski
aa8a6a7069 fix: Emit onSessionCreated event during standard initialize flow (#315) 2025-10-12 23:34:51 +02:00
czlonkowski
6256105053 feat: add library usage support for multi-tenant deployments
Enable n8n-mcp to be used as a library dependency for multi-tenant backends:

Changes:
- Add `types` and `exports` fields to package.json for TypeScript support
- Export InstanceContext types and MCP SDK types from src/index.ts
- Relax session ID validation to support multi-tenant session strategies
  - Accept any non-empty string (UUIDv4, instance-prefixed, custom formats)
  - Maintains backward compatibility with existing UUIDv4 format
  - Enables mcp-remote and other proxy compatibility
- Add comprehensive library usage documentation (docs/LIBRARY_USAGE.md)
  - Multi-tenant backend examples
  - API reference for N8NMCPEngine
  - Security best practices
  - Deployment guides (Docker, Kubernetes)
  - Testing strategies

Breaking Changes: None - all changes are backward compatible

Version: 2.18.9

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 21:56:28 +02:00
czlonkowski
5d9936a909 chore: remove outdated documentation files
Remove outdated development documentation that is no longer relevant:
- Phase 1-2 summaries and test scenarios
- Testing strategy documents
- Validation improvement notes
- Release notes and PR summaries

docs/local/ is already gitignored for local development notes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 11:55:33 +02:00
czlonkowski
2627028be3 feat: implement comprehensive AI node validation (Phase 1)
Implements AI-specific validation for n8n workflows based on
docs/FINAL_AI_VALIDATION_SPEC.md

## New Features

### AI Tool Validators (src/services/ai-tool-validators.ts)
- 13 specialized validators for AI tool sub-nodes
  - HTTP Request Tool: 6 validation checks
  - Code Tool: 7 validation checks
  - Vector Store Tool: 7 validation checks
  - Workflow Tool: 5 validation checks
  - AI Agent Tool: 7 validation checks
  - MCP Client Tool: 4 validation checks
  - Calculator & Think tools: description validation
  - 4 Search tools: credentials + description validation

### AI Node Validator (src/services/ai-node-validator.ts)
- `buildReverseConnectionMap()` - Critical utility for AI connections
- `validateAIAgent()` - 8 comprehensive checks including:
  - Language model connections (1 or 2 if fallback)
  - Output parser validation
  - Prompt type configuration
  - Streaming mode constraints (CRITICAL)
  - Memory connections
  - Tool connections
  - maxIterations validation
- `validateChatTrigger()` - Streaming mode constraint validation
- `validateBasicLLMChain()` - Simple chain validation
- `validateAISpecificNodes()` - Main validation entry point

### Integration (src/services/workflow-validator.ts)
- Seamless integration with existing workflow validation
- Performance-optimized (only runs when AI nodes present)
- Type-safe conversion of validation issues

## Key Architectural Decisions

1. **Reverse Connection Mapping**: AI connections flow TO consumer nodes
   (reversed from standard n8n pattern). Built custom mapping utility.

2. **Streaming Mode Validation**: AI Agent with streaming MUST NOT have
   main output connections - responses stream back through Chat Trigger.

3. **Modular Design**: Separate validators for tools vs nodes for
   maintainability and testability.

## Code Quality

- TypeScript: Clean compilation, strong typing
- Code Review Score: A- (90/100)
- No critical bugs or security issues
- Comprehensive error messages with codes
- Well-documented with spec references

## Testing Status

- Build:  Passing
- Type Check:  No errors
- Unit Tests: Pending (Phase 5)
- Integration Tests: Pending (Phase 5)

## Documentation

- Moved FINAL_AI_VALIDATION_SPEC.md to docs/
- Inline comments reference spec line numbers
- Clear function documentation

## Next Steps

1. Address code review Priority 1 fixes
2. Add comprehensive unit tests (Phase 5)
3. Create AI Agents guide (Phase 4)
4. Enhance search_nodes with AI examples (Phase 3)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 22:17:12 +02:00
czlonkowski
06cbb40213 feat: implement security audit fixes - rate limiting and SSRF protection (Issue #265 PR #2)
This commit implements HIGH-02 (Rate Limiting) and HIGH-03 (SSRF Protection)
from the security audit, protecting against brute force attacks and
Server-Side Request Forgery.

Security Enhancements:
- Rate limiting: 20 attempts per 15 minutes per IP (configurable)
- SSRF protection: Three security modes (strict/moderate/permissive)
- DNS rebinding prevention
- Cloud metadata blocking in all modes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 15:40:07 +02:00
czlonkowski
aeb74102e5 fix: preserve array indices in multi-output nodes when removing connections
CRITICAL BUG FIX: Fixed array index corruption in multi-output nodes
(Switch, IF with multiple handlers, Merge) when rewiring connections.

Problem:
- applyRemoveConnection() filtered out empty arrays after removing connections
- This caused indices to shift in multi-output nodes
- Example: Switch.main = [[H0], [H1], [H2]] -> remove H1 -> [[H0], [H2]]
- H2 moved from index 2 to index 1, corrupting workflow structure

Root Cause:
```typescript
// Line 697 - BUGGY CODE:
workflow.connections[node][output] =
  connections.filter(conns => conns.length > 0);
```

Solution:
- Only remove trailing empty arrays
- Preserve intermediate empty arrays to maintain index integrity
- Example: [[H0], [], [H2]] stays [[H0], [], [H2]] not [[H0], [H2]]

Impact:
- Prevents production-breaking workflow corruption
- Fixes rewireConnection operation for multi-output nodes
- Critical for AI agents working with complex workflows

Testing:
- Added integration test for Switch node rewiring with array index verification
- Test creates 4-output Switch node, rewires middle connection
- Verifies indices 0, 2, 3 unchanged after rewiring index 1
- All 137 unit tests + 12 integration tests passing

Discovered by: @agent-n8n-mcp-tester during comprehensive testing
Issue: #272 (Connection Operations - Phase 1)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 09:18:27 +02:00
czlonkowski
f78f53e731 docs: update MCP tool documentation for Phase 1
Updated n8n_update_partial_workflow tool documentation to reflect Phase 1 changes:
- Remove updateConnection operation
- Add rewireConnection operation with examples
- Add smart parameters (branch, case) for IF and Switch nodes
- Remove version references and breaking change notices (AI agents see current state)
- Update workflow-diff-examples.md with rewireConnection and smart parameters examples

Changes:
- Updated tool essentials description and tips
- Added Smart Parameters section
- Updated examples with rewireConnection and smart parameter usage
- Updated best practices and pitfalls
- Removed 5-operation limit references
- Removed version numbers from documentation text

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 07:38:20 +02:00
czlonkowski
cfe3c5e584 fix: Phase 0 critical connection operation fixes (Issue #272, #204)
## Critical Bugs Fixed

### 1. addConnection sourceIndex Bug
- Multi-output nodes (IF, Switch) now work correctly
- Changed || to ?? for proper 0 handling
- Added defensive array validation
- Improves multi-output node rating from 3/10 to 8/10

### 2. updateConnection Runtime Validation
- Prevents crashes when 'updates' object missing
- Provides helpful error with examples and suggestions
- Validates updates is an object type
- Fixes server crashes from malformed AI requests

## Testing
- Added 8 comprehensive tests (all passing)
- Covers updateConnection validation (2 tests)
- Covers sourceIndex handling (5 tests)
- Complex multi-output scenarios (1 test)
- All 126 tests passing (91.16% coverage)

## Documentation
- Updated tool docs with Phase 0 fix notes
- Added pitfalls about updateConnection limitations
- Enhanced CHANGELOG with detailed fix descriptions
- References hands-on testing analysis

## Impact
- Based on n8n-mcp-tester hands-on testing
- Overall rating improved from 4.5/10 to 6/10
- Resolves Issue #272 (updateConnection confusion)
- Resolves Issue #204 (server crashes)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 22:05:51 +02:00
czlonkowski
1c56eb0daa docs: update test statistics to 3,336 tests with Phase 8 n8n API integration tests
Updates documentation with accurate test counts following completion of Phase 8:

**Test Statistics:**
- Total: 3,336 tests (was 2,883)
- Unit tests: 2,766 tests
- Integration tests: 570 tests
  - n8n API Integration: 172 tests (all 18 MCP handlers)
  - Database: 226 tests
  - MCP Protocol: 119 tests
  - Templates & Docker: 53 tests

**Updated Files:**
- README.md: Updated badge and Testing Architecture section
- docs/testing-architecture.md: Comprehensive update with detailed breakdown

**Key Additions:**
- Complete coverage of n8n API integration tests (Phase 1-8)
- TypeScript type safety with response interfaces
- Detailed test organization by component and handler type
- Updated execution time estimates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 11:56:35 +02:00
czlonkowski
6e042467b2 feat: implement Phase 6B integration tests for workflow autofix
Completes Phase 6B of the integration testing plan by adding comprehensive
tests for the handleAutofixWorkflow MCP handler against a real n8n instance.

## Test Coverage (16 scenarios)

### Preview Mode (2 tests)
- Preview fixes without applying (expression-format)
- Preview multiple fix types

### Apply Mode (2 tests)
- Apply expression-format fixes
- Apply webhook-missing-path fixes

### Fix Type Filtering (2 tests)
- Filter to specific fix types
- Handle multiple fix type filters

### Confidence Threshold (3 tests)
- High confidence threshold filtering
- Medium confidence threshold (high + medium)
- Low confidence threshold (all fixes)

### Max Fixes Parameter (1 test)
- Limit number of fixes via maxFixes parameter

### No Fixes Available (1 test)
- Handle workflows with no fixable issues

### Error Handling (3 tests)
- Non-existent workflow ID
- Invalid fixTypes parameter
- Invalid confidence threshold

### Response Format Verification (2 tests)
- Complete preview mode response structure
- Complete apply mode response structure

## Implementation Details

All tests follow the MCP handler testing pattern established in Phase 1-6A:
- Tests call handleAutofixWorkflow (MCP handler), not raw API client
- Tests verify McpToolResponse format (success, data, error)
- Tests handle both cases: fixes available and no fixes available
- Tests verify actual workflow modifications when applyFixes=true

## Test Results

- All 16 new tests passing
- Total integration tests: 99/99 passing (Phase 1-6 complete)
- Phase 6A (Validation): 12 tests
- Phase 6B (Autofix): 16 tests

## Key Discoveries

The autofix engine handles specific fix types:
- expression-format: Missing = prefix for resource locators (not {{}} wrapping)
- typeversion-correction: Outdated typeVersion values
- error-output-config: Error output configuration issues
- node-type-correction: Incorrect node types
- webhook-missing-path: Missing webhook path parameters

Tests properly handle workflows without fixable issues by checking for
'No automatic fixes available' message.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 09:28:32 +02:00
czlonkowski
dad3a442d9 refactor(integration): update Phase 2 tests to use MCP handlers
**Critical Fix**: Tests now properly test the MCP handler layer (the actual product) instead of raw API client.

**Changes**:
- All 15 tests now use `handleCreateWorkflow()` MCP handler
- Tests validate `McpToolResponse` structure (`success`, `data`, `error`)
- Created `mcp-context.ts` helper for configuring InstanceContext
- Fixed ERROR_HANDLING_WORKFLOW to add main connection (MCP validation requirement)
- Updated error/edge case tests to expect validation failures (correct MCP behavior)

**MCP Handler Validation**:
- Error scenarios now correctly expect `success: false` with validation errors
- Edge cases updated to reflect MCP handler's proper pre-validation
- Documents that MCP validation is CORRECT behavior (catches errors early)

**Test Results**: All 15 scenarios passing
- 8 valid workflow tests → expect `success: true`
- 7 validation tests (errors/edge cases) → expect `success: false`

**Why This Matters**:
AI assistants interact with MCP handlers, not raw API client. Testing the wrong layer would miss MCP-specific logic and validation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 11:22:23 +02:00
czlonkowski
9e1a4129c0 feat(tests): implement Phase 2 integration testing - workflow creation tests
Implements comprehensive workflow creation tests against real n8n instance
with 15 test scenarios covering P0 bugs, base nodes, advanced features,
error scenarios, and edge cases.

Key Changes:
- Added 15 workflow creation test scenarios in create-workflow.test.ts
- Fixed critical MSW interference with real API calls
- Fixed environment loading priority (.env before test defaults)
- Implemented multi-level cleanup with webhook workflow preservation
- Migrated from webhook IDs to webhook URLs configuration
- Added TypeScript type safety fixes (26 errors resolved)
- Updated test names to reflect actual n8n API behavior

Bug Fixes:
- Removed MSW from integration test setup (was blocking real API calls)
- Fixed .env loading order to preserve real credentials over test defaults
- Added type guards for undefined workflow IDs
- Fixed position arrays to use proper tuple types [number, number]
- Added literal types for executionOrder and settings values

Test Coverage:
- P0: Critical bug verification (FULL vs SHORT node type format)
- P1: Base n8n nodes (webhook, HTTP, langchain, multi-node)
- P2: Advanced features (connections, settings, expressions, error handling)
- Error scenarios (documents actual n8n API validation behavior)
- Edge cases (minimal workflows, empty connections, no settings)

Technical Improvements:
- Cleanup strategy preserves pre-activated webhook workflows
- Single webhook URL accepts all HTTP methods (GET, POST, PUT, DELETE)
- Environment-aware credential loading with validation
- Comprehensive test context for resource tracking

All 15 tests passing 
TypeScript: 0 errors 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 09:30:43 +02:00
czlonkowski
2305aaab9e feat: implement integration testing foundation (Phase 1)
Complete implementation of Phase 1 foundation for n8n API integration tests.
Establishes core utilities, fixtures, and infrastructure for testing all 17 n8n API handlers against real n8n instance.

Changes:
- Add integration test environment configuration to .env.example
- Create comprehensive test utilities infrastructure:
  * credentials.ts: Environment-aware credential management (local .env vs CI secrets)
  * n8n-client.ts: Singleton API client wrapper with health checks
  * test-context.ts: Resource tracking and automatic cleanup
  * cleanup-helpers.ts: Multi-level cleanup strategies (orphaned, age-based, tag-based)
  * fixtures.ts: 6 pre-built workflow templates (webhook, HTTP, multi-node, error handling, AI, expressions)
  * factories.ts: Dynamic node/workflow builders with 15+ factory functions
  * webhook-workflows.ts: Webhook workflow configs and setup instructions

- Add npm scripts:
  * test:integration:n8n: Run n8n API integration tests
  * test:cleanup:orphans: Clean up orphaned test resources

- Create cleanup script for CI/manual use

Documentation:
- Add comprehensive integration testing plan (550 lines)
- Add Phase 1 completion summary with lessons learned

Key Features:
- Automatic credential detection (CI vs local)
- Multi-level cleanup (test, suite, CI, orphan)
- 6 workflow fixtures covering common scenarios
- 15+ factory functions for dynamic test data
- Support for 4 HTTP methods (GET, POST, PUT, DELETE) via pre-activated webhook workflows
- TypeScript-first with full type safety
- Comprehensive error handling with helpful messages

Total: ~1,520 lines of production-ready code + 650 lines of documentation

Ready for Phase 2: Workflow creation tests

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 13:12:42 +02:00
czlonkowski
34cb8f8c44 feat: Add workflow cleanup and recovery operations (v2.14.4)
Implements 4 new features for n8n_update_partial_workflow:

New Operations:
- cleanStaleConnections: Auto-remove broken workflow connections
- replaceConnections: Replace entire connections object in one operation

Enhanced Features:
- removeConnection ignoreErrors flag: Graceful cleanup without failures
- continueOnError mode: Best-effort batch operations with detailed tracking

Impact:
- Reduces broken workflow fix time from 10-15 minutes to 30 seconds
- Token efficiency: 1 cleanStaleConnections vs 10+ manual operations
- 15 new tests added, all passing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 14:05:17 +02:00
Romuald Członkowski
78abda601a Merge pull request #226 from hungthai1401/bugfix/codex-docs
Remove wrong image reference in Codex documentation
2025-09-25 15:20:21 +02:00
Thai Nguyen Hung
247c8d74af fix(docs): remove wrong image reference in Codex documentation 2025-09-25 10:51:17 +07:00
czlonkowski
f6160d43a0 feat: add operation and resource validation with intelligent suggestions
- Added OperationSimilarityService for validating operations with "Did you mean...?" suggestions
- Added ResourceSimilarityService for validating resources with plural/singular detection
- Implements Levenshtein distance algorithm for typo detection
- Pattern matching for common operation/resource mistakes
- 5-minute cache with automatic cleanup to prevent memory leaks
- Confidence scoring (30% minimum threshold) for suggestion quality
- Resource-aware operation filtering for contextual suggestions
- Safe JSON parsing with ValidationServiceError for proper error handling
- Type guards for safe property access
- Performance optimizations with early termination
- Comprehensive test coverage (37 new tests)
- Integration tested with n8n-mcp-tester agent

Example use cases:
- "listFiles" → suggests "search" for Google Drive
- "files" → suggests singular "file"
- "flie" → suggests "file" (typo correction)
- "downlod" → suggests "download"

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 23:57:25 +02:00
czlonkowski
3981b9108a chore: release v2.13.1 - remove 5-operation limit
- Remove 5-operation limit from n8n_update_partial_workflow
- Update CHANGELOG.md with version 2.13.1 entry
- Bump version in package.json to 2.13.1
- Remove static version badge from README.md (npm badge remains)

The workflow diff engine now supports unlimited operations per request,
enabling complex workflow refactoring in single API calls.
2025-09-24 15:59:38 +02:00
czlonkowski
60f78d5783 feat: remove unnecessary 5-operation limit from n8n_update_partial_workflow
The 5-operation limit was overly conservative and unnecessary. Analysis showed:
- Workflow is cloned before modifications (no original mutation)
- All operations validated before any are applied (true atomicity)
- First error causes immediate return (no partial state possible)
- Two-pass processing handles dependencies correctly

Changes:
- Remove hard-coded 5-operation limit check from workflow-diff-engine.ts
- Update tool descriptions and documentation to reflect unlimited operations
- Add tests verifying 50 and 100+ operations work successfully
- Add example showing 26 operations in single request

The system already ensures complete transactional integrity regardless of
operation count. Bottleneck is workflow size, not operation count.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 14:42:17 +02:00
Romuald Członkowski
ceb082efca Merge pull request #222 from czlonkowski/feat/enhanced-node-suggestions
feat: Add intelligent node type suggestions and auto-fix capability
2025-09-24 13:26:08 +02:00
czlonkowski
27339ec78d chore: release v2.13.0 - webhook autofixer and enhanced node suggestions
## 🎉 Release Highlights

###  New Features
- **Webhook Path Autofixer**: Automatically generates UUIDs for webhook nodes missing path configuration
- **Enhanced Node Type Suggestions**: Intelligent node type correction with similarity matching
- **n8n_autofix_workflow Tool**: New MCP tool for automatic workflow error correction

### 🔒 Security & Performance
- Eliminated ReDoS vulnerability in NodeSimilarityService
- Optimized Levenshtein distance algorithm from O(m*n) to O(n) space
- Added cache invalidation with version tracking to prevent memory leaks

### 📚 Documentation
- Comprehensive CHANGELOG entry with detailed feature descriptions
- Updated README with new autofixer tool documentation
- Added tool usage examples in validation workflow

All 16 test cases passing with 100% success rate.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 13:03:10 +02:00
Thai Nguyen Hung
9a13b977dc docs(codex): add Codex integration guide 2025-09-23 11:04:12 +07:00
czlonkowski
c1fb3db568 chore: update n8n dependencies to v1.112.3
- Updated n8n from 1.111.0 to 1.112.3
- Updated n8n-core from 1.110.0 to 1.111.0
- Updated n8n-workflow from 1.108.0 to 1.109.0
- Updated @n8n/n8n-nodes-langchain from 1.110.0 to 1.111.1
- Rebuilt node database with 536 nodes (438 from n8n-nodes-base, 98 from langchain)
- Bumped version to 2.12.2
- Updated README.md badges to reflect new n8n version

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 23:38:26 +02:00
czlonkowski
14bd0f55d3 feat: implement comprehensive expression format validation system
- Add universal expression validator with 100% reliable detection
- Implement confidence-based scoring for node-specific recommendations
- Add resource locator format detection and validation
- Fix pattern matching precision (exact/prefix instead of includes)
- Add recursion depth protection (MAX_RECURSION_DEPTH = 100)
- Validate resource locator modes (id, url, expression, name, list)
- Separate universal rules from node-specific intelligence
- Add comprehensive test coverage (94%+ statements)
- Prevent common AI agent mistakes with expressions

Addresses code review feedback with critical fixes and enhancements.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 23:16:24 +02:00
czlonkowski
1a926630b8 fix: enhance error output validation to detect incorrect configurations
- Add validateErrorOutputConfiguration method to detect when multiple nodes are incorrectly placed in main[0]
- Fix checkWorkflowPatterns to check main[1] for error outputs instead of outputs.error
- Cross-validate onError property matches actual connection structure
- Provide clear error messages with JSON examples showing correct configuration
- Use heuristic detection for error handler nodes (names containing error, fail, catch, etc.)
- Add comprehensive test coverage with 16+ test cases
- Bump version to 2.12.1

Fixes issues where AI agents would incorrectly configure error outputs by placing multiple nodes in the same array instead of separating them into success (main[0]) and error (main[1]) paths.

🤖 Generated with Claude Code (https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 21:05:27 +02:00
czlonkowski
424f8ae1ff fix: extract instance context from HTTP headers for multi-tenant support
- Add header extraction logic in http-server-single-session.ts
- Extract X-N8n-Url, X-N8n-Key, X-Instance-Id, X-Session-Id headers
- Pass extracted context to handleRequest method
- Maintain full backward compatibility (falls back to env vars)
- Add comprehensive tests for header extraction scenarios
- Update documentation with HTTP header specifications

This fixes the bug where instance-specific configuration headers were not
being extracted and passed to the MCP server, preventing the multi-tenant
feature from working as designed in PR #209.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 00:25:40 +02:00
Romuald Członkowski
f0338ea5ce Merge pull request #209 from czlonkowski/feature/flexible-instance-config
feat: add flexible instance configuration support
2025-09-19 23:10:50 +02:00
czlonkowski
34c7f756e1 feat: implement code review improvements for flexible instance configuration
- Add cache-utils.ts with hash memoization, configurable cache, metrics tracking, mutex, and retry logic
- Enhance validation with field-specific error messages in instance-context.ts
- Add JSDoc documentation to all public methods
- Make cache configurable via INSTANCE_CACHE_MAX and INSTANCE_CACHE_TTL_MINUTES env vars
- Add comprehensive test coverage for cache utilities and metrics monitoring
- Fix test expectations for new validation error format

Addresses all feedback from PR #209 code review

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 22:26:04 +02:00
czlonkowski
b366d40d67 chore: release v2.12.0 - flexible instance configuration
- Bump version from 2.11.3 to 2.12.0
- Add comprehensive documentation for flexible instance configuration
- Update CHANGELOG with new features, security enhancements, and performance improvements
- Document architecture, usage examples, and security considerations
- Include migration guide for existing deployments

This release introduces flexible instance configuration, enabling n8n-mcp to serve
multiple users with different n8n instances dynamically, with full backward compatibility.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 21:03:38 +02:00
ProfessorSynapse
27b89f4c92 docs: add Windows troubleshooting solutions for npx command issues in Railway deployment guide 2025-09-19 07:48:12 -04:00
czlonkowski
e6f1d6bcf0 chore: bump version to 2.11.3 and update documentation
- Bump version from 2.11.2 to 2.11.3
- Update README.md version badge
- Add CHANGELOG.md entry documenting the fix for n8n_update_partial_workflow tool
- Fix resolves GitHub issues #159 and #168
2025-09-17 23:46:24 +02:00
czlonkowski
874aea6920 chore: bump version to 2.11.2 and update documentation
- Bumped version from 2.11.1 to 2.11.2
- Updated README version badge to 2.11.2
- Updated README n8n version badge to ^1.111.0
- Added comprehensive CHANGELOG entry for v2.11.2
- Documented n8n dependency updates and test results

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-16 11:17:24 +02:00
czlonkowski
abc226f111 feat: add optional fields parameter to search_templates tool
- Added fields parameter to filter response fields in search_templates
- Reduces response size by 70-98% when using selective fields
- Maintains backward compatibility with optional parameter
- Supports all template fields: id, name, description, author, nodes, views, created, url, metadata
- Updated tool documentation with examples

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-15 23:46:33 +02:00
czlonkowski
1e586c0b23 feat: add template metadata generation and smart discovery
- Implement OpenAI batch API integration for metadata generation
- Add search_templates_by_metadata tool with advanced filtering
- Enhance list_templates to include descriptions and optional metadata
- Generate metadata for 2,534 templates (97.5% coverage)
- Update README with Template Tools section and enhanced Claude setup
- Add comprehensive documentation for metadata system

Enables intelligent template discovery through:
- Complexity levels (simple/medium/complex)
- Setup time estimates (5-480 minutes)
- Target audience filtering (developers/marketers/analysts)
- Required services detection
- Category and use case classification

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-15 00:18:53 +02:00
czlonkowski
6e24da722b feat: Add structured template metadata generation with OpenAI
- Implement OpenAI batch API integration for metadata generation
- Add metadata columns to database schema (metadata_json, metadata_generated_at)
- Create MetadataGenerator service with structured output schemas
- Create BatchProcessor for handling OpenAI batch jobs
- Add --generate-metadata flag to fetch-templates script
- Update template repository with metadata management methods
- Add OpenAI configuration to environment variables
- Include comprehensive tests for metadata generation
- Use gpt-4o-mini model with 50% cost savings via batch API

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-14 20:00:39 +02:00
czlonkowski
d49416fc58 docs: update CHANGELOG with fuzzy node type matching feature
- Document new fuzzy matching capability for template discovery
- Describes 50% reduction in failed queries
- Lists key features and improvements
- Uses factual, technical language

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-14 19:09:18 +02:00
czlonkowski
61b54266b3 chore: bump version to 2.11.0
### Added
- Comprehensive template pagination with PaginatedResponse format
- New list_templates tool for efficient template browsing
- Flexible get_template modes (nodes_only, structure, full)

### Enhanced
- Gzip compression for workflow JSONs (84% size reduction)
- Template quality filtering (>10 views required)
- Database statistics now include template metrics

### Performance
- Database: 48MB for 2,596 templates (was 40MB for 499)
- Token usage: 80-90% reduction with new retrieval modes
- All 1,700+ tests passing
2025-09-14 18:11:59 +02:00
czlonkowski
6b4bb7ff66 chore: update n8n dependencies to 1.110.1
- Update n8n: 1.109.2 → 1.110.1
- Update n8n-core: 1.108.0 → 1.109.0
- Update n8n-workflow: 1.106.0 → 1.107.0
- Update @n8n/n8n-nodes-langchain: 1.108.1 → 1.109.1
- Rebuild node database with 536 nodes
- Update templates database with 499 latest workflows
- Bump version to 2.10.9
2025-09-10 00:06:42 +02:00
czlonkowski
15e6e97fd9 chore: bump version to 2.10.8
- Updated n8n dependencies to latest versions (n8n 1.109.2, @n8n/n8n-nodes-langchain 1.109.1)
- Fixed CI/CD pipeline issues with Node.js v22 LTS compatibility
- Resolved Rollup native module compatibility for GitHub Actions
- Enhanced cross-platform deployment with better-sqlite3 and SQL.js fallback
- All 1,728+ tests passing
2025-09-04 11:24:13 +02:00
czlonkowski
8fd8c082ee chore: update n8n dependencies to v1.107.4
- Updated n8n from 1.106.3 to 1.107.4
- Updated n8n-core from 1.105.3 to 1.106.2
- Updated n8n-workflow from 1.103.3 to 1.104.1
- Updated @n8n/n8n-nodes-langchain from 1.105.3 to 1.106.2
- Rebuilt node database with 535 nodes
- Bumped version to 2.10.5
- All tests passing

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-20 19:45:30 +02:00
czlonkowski
b2a5cf49f7 chore: update n8n to v1.106.3
- Updated n8n from 1.105.2 to 1.106.3
- Updated n8n-core from 1.104.1 to 1.105.3
- Updated n8n-workflow from 1.102.1 to 1.103.3
- Updated @n8n/n8n-nodes-langchain from 1.104.1 to 1.105.3
- Rebuilt node database with 535 nodes
- All 1,728 tests passing
- Bumped version to 2.10.4

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-12 08:43:30 +02:00
czlonkowski
13c1663489 fix: address critical code review issues for validation improvements
- Fix type safety vulnerability in enhanced-config-validator.ts
  - Added proper type checking before string operations
  - Return early when nodeType is invalid instead of using empty string

- Improve error handling robustness in MCP server
  - Wrapped validation in try-catch to handle unexpected errors
  - Properly re-throw ValidationError instances
  - Add user-friendly error messages for internal errors

- Write comprehensive CHANGELOG entry for v2.10.3
  - Document fixes for issues #58, #68, #70, #73
  - Detail new validation system features
  - List all enhancements and test coverage

Addressed HIGH priority issues from code review:
- Type safety holes in config validator
- Missing error handling for validation system failures
- Consistent error types across validation tools
2025-08-07 20:05:57 +02:00
czlonkowski
72d90a2584 docs: update n8n deployment guide and remove outdated test scripts
- Update N8N_DEPLOYMENT.md to recommend test-n8n-integration.sh
- Remove outdated test-n8n-mode.sh and related files
- The integration test script properly tests full n8n integration with correct protocol version (2024-11-05)
- Removed scripts: test-n8n-mode.sh, test-n8n-mode.ts, debug-n8n-mode.js

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-06 21:24:10 +02:00
czlonkowski
21d4b9b9fb chore: update n8n to v1.105.2 and dependencies
- Updated n8n from 1.104.1 to 1.105.2
- Updated n8n-core from 1.103.1 to 1.104.1
- Updated n8n-workflow from 1.101.0 to 1.102.1
- Updated @n8n/n8n-nodes-langchain from 1.103.1 to 1.104.1
- Rebuilt node database with 534 nodes
- All 1,620 tests passing
- Updated CHANGELOG.md

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-05 08:09:08 +02:00
czlonkowski
4b1aaa936d update documentation 2025-08-02 21:56:50 +02:00
czlonkowski
8022ee1f65 feat: add automated release workflow for npm publishing
- Add release.yml GitHub workflow for automated npm releases
- Add prepare-release.js script for version bumping and changelog
- Add extract-changelog.js for release notes extraction
- Add test-release-automation.js for testing the workflow
- Add documentation for automated releases

This enables automatic npm publishing when tags are pushed,
fixing the issue where releases were created but npm packages
were not published.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 21:14:00 +02:00