n8n-mcp 2.7.13 β 2.7.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -1
- package/data/nodes.db +0 -0
- package/dist/scripts/test-issue-45-fix.d.ts +3 -0
- package/dist/scripts/test-issue-45-fix.d.ts.map +1 -0
- package/dist/scripts/test-issue-45-fix.js +136 -0
- package/dist/scripts/test-issue-45-fix.js.map +1 -0
- package/dist/services/n8n-validation.d.ts.map +1 -1
- package/dist/services/n8n-validation.js +0 -3
- package/dist/services/n8n-validation.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://opensource.org/licenses/MIT)
|
|
4
4
|
[](https://github.com/czlonkowski/n8n-mcp)
|
|
5
|
-
[](https://github.com/czlonkowski/n8n-mcp)
|
|
6
6
|
[](https://www.npmjs.com/package/n8n-mcp)
|
|
7
7
|
[](https://github.com/n8n-io/n8n)
|
|
8
8
|
[](https://github.com/czlonkowski/n8n-mcp/pkgs/container/n8n-mcp)
|
|
@@ -198,6 +198,8 @@ Add to Claude Desktop config:
|
|
|
198
198
|
|
|
199
199
|
**Important:** The `-i` flag is required for MCP stdio communication.
|
|
200
200
|
|
|
201
|
+
> π§ If you encounter any issues with Docker, check our [Docker Troubleshooting Guide](./docs/DOCKER_TROUBLESHOOTING.md).
|
|
202
|
+
|
|
201
203
|
**Configuration file locations:**
|
|
202
204
|
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
203
205
|
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
@@ -205,6 +207,26 @@ Add to Claude Desktop config:
|
|
|
205
207
|
|
|
206
208
|
**Restart Claude Desktop after updating configuration** - That's it! π
|
|
207
209
|
|
|
210
|
+
## π Support This Project
|
|
211
|
+
|
|
212
|
+
<div align="center">
|
|
213
|
+
<a href="https://github.com/sponsors/czlonkowski">
|
|
214
|
+
<img src="https://img.shields.io/badge/Sponsor-β€οΈ-db61a2?style=for-the-badge&logo=github-sponsors" alt="Sponsor n8n-mcp" />
|
|
215
|
+
</a>
|
|
216
|
+
</div>
|
|
217
|
+
|
|
218
|
+
**n8n-mcp** started as a personal tool but now helps tens of thousands of developers automate their workflows efficiently. Maintaining and developing this project competes with my paid work.
|
|
219
|
+
|
|
220
|
+
Your sponsorship helps me:
|
|
221
|
+
- π Dedicate focused time to new features
|
|
222
|
+
- π Respond quickly to issues
|
|
223
|
+
- π Keep documentation up-to-date
|
|
224
|
+
- π Ensure compatibility with latest n8n releases
|
|
225
|
+
|
|
226
|
+
Every sponsorship directly translates to hours invested in making n8n-mcp better for everyone. **[Become a sponsor β](https://github.com/sponsors/czlonkowski)**
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
208
230
|
### Option 3: Local Installation (For Development)
|
|
209
231
|
|
|
210
232
|
**Prerequisites:** [Node.js](https://nodejs.org/) installed on your system
|
|
@@ -263,6 +285,10 @@ Add to Claude Desktop config:
|
|
|
263
285
|
|
|
264
286
|
> π‘ Tip: If youβre running n8n locally on the same machine (e.g., via Docker), use http://host.docker.internal:5678 as the N8N_API_URL.
|
|
265
287
|
|
|
288
|
+
## π» Visual Studio Code Setup
|
|
289
|
+
|
|
290
|
+
See [VS Code Project Setup](./docs/VS_CODE_PROJECT_SETUP.md) for instructions.
|
|
291
|
+
|
|
266
292
|
## π€ Claude Project Setup
|
|
267
293
|
|
|
268
294
|
For the best results when using n8n-MCP with Claude Projects, use these enhanced system instructions:
|
|
@@ -391,6 +417,17 @@ n8n_update_partial_workflow({
|
|
|
391
417
|
|
|
392
418
|
Save these instructions in your Claude Project for optimal n8n workflow assistance with comprehensive validation.
|
|
393
419
|
|
|
420
|
+
## π¨ Important: Sharing Guidelines
|
|
421
|
+
|
|
422
|
+
This project is MIT licensed and free for everyone to use. However:
|
|
423
|
+
|
|
424
|
+
- **β
DO**: Share this repository freely with proper attribution
|
|
425
|
+
- **β
DO**: Include a direct link to https://github.com/czlonkowski/n8n-mcp in your first post/video
|
|
426
|
+
- **β DON'T**: Gate this free tool behind engagement requirements (likes, follows, comments)
|
|
427
|
+
- **β DON'T**: Use this project for engagement farming on social media
|
|
428
|
+
|
|
429
|
+
This tool was created to benefit everyone in the n8n community without friction. Please respect the MIT license spirit by keeping it accessible to all.
|
|
430
|
+
|
|
394
431
|
## Features
|
|
395
432
|
|
|
396
433
|
- **π Smart Node Search**: Find nodes by name, category, or functionality
|
package/data/nodes.db
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-issue-45-fix.d.ts","sourceRoot":"","sources":["../../src/scripts/test-issue-45-fix.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const dotenv_1 = require("dotenv");
|
|
5
|
+
const logger_1 = require("../utils/logger");
|
|
6
|
+
const n8n_validation_1 = require("../services/n8n-validation");
|
|
7
|
+
(0, dotenv_1.config)();
|
|
8
|
+
function testCleanWorkflowFunctions() {
|
|
9
|
+
logger_1.logger.info('Testing Issue #45 Fix: cleanWorkflowForUpdate should not add default settings\n');
|
|
10
|
+
logger_1.logger.info('=== Test 1: cleanWorkflowForUpdate without settings ===');
|
|
11
|
+
const workflowWithoutSettings = {
|
|
12
|
+
id: 'test-123',
|
|
13
|
+
name: 'Test Workflow',
|
|
14
|
+
nodes: [],
|
|
15
|
+
connections: {},
|
|
16
|
+
active: false,
|
|
17
|
+
createdAt: '2024-01-01T00:00:00.000Z',
|
|
18
|
+
updatedAt: '2024-01-01T00:00:00.000Z',
|
|
19
|
+
versionId: 'version-123'
|
|
20
|
+
};
|
|
21
|
+
const cleanedUpdate = (0, n8n_validation_1.cleanWorkflowForUpdate)(workflowWithoutSettings);
|
|
22
|
+
if ('settings' in cleanedUpdate) {
|
|
23
|
+
logger_1.logger.error('β FAIL: cleanWorkflowForUpdate added settings when it should not have');
|
|
24
|
+
logger_1.logger.error(' Found settings:', JSON.stringify(cleanedUpdate.settings));
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
logger_1.logger.info('β
PASS: cleanWorkflowForUpdate did not add settings');
|
|
28
|
+
}
|
|
29
|
+
logger_1.logger.info('\n=== Test 2: cleanWorkflowForUpdate with existing settings ===');
|
|
30
|
+
const workflowWithSettings = {
|
|
31
|
+
...workflowWithoutSettings,
|
|
32
|
+
settings: {
|
|
33
|
+
executionOrder: 'v1',
|
|
34
|
+
saveDataErrorExecution: 'none',
|
|
35
|
+
saveDataSuccessExecution: 'none',
|
|
36
|
+
saveManualExecutions: false,
|
|
37
|
+
saveExecutionProgress: false
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const cleanedUpdate2 = (0, n8n_validation_1.cleanWorkflowForUpdate)(workflowWithSettings);
|
|
41
|
+
if ('settings' in cleanedUpdate2) {
|
|
42
|
+
const settingsMatch = JSON.stringify(cleanedUpdate2.settings) === JSON.stringify(workflowWithSettings.settings);
|
|
43
|
+
if (settingsMatch) {
|
|
44
|
+
logger_1.logger.info('β
PASS: cleanWorkflowForUpdate preserved existing settings without modification');
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
logger_1.logger.error('β FAIL: cleanWorkflowForUpdate modified existing settings');
|
|
48
|
+
logger_1.logger.error(' Original:', JSON.stringify(workflowWithSettings.settings));
|
|
49
|
+
logger_1.logger.error(' Cleaned:', JSON.stringify(cleanedUpdate2.settings));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
logger_1.logger.error('β FAIL: cleanWorkflowForUpdate removed existing settings');
|
|
54
|
+
}
|
|
55
|
+
logger_1.logger.info('\n=== Test 3: cleanWorkflowForUpdate with partial settings ===');
|
|
56
|
+
const workflowWithPartialSettings = {
|
|
57
|
+
...workflowWithoutSettings,
|
|
58
|
+
settings: {
|
|
59
|
+
executionOrder: 'v1'
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const cleanedUpdate3 = (0, n8n_validation_1.cleanWorkflowForUpdate)(workflowWithPartialSettings);
|
|
63
|
+
if ('settings' in cleanedUpdate3) {
|
|
64
|
+
const settingsKeys = cleanedUpdate3.settings ? Object.keys(cleanedUpdate3.settings) : [];
|
|
65
|
+
const hasOnlyExecutionOrder = settingsKeys.length === 1 &&
|
|
66
|
+
cleanedUpdate3.settings?.executionOrder === 'v1';
|
|
67
|
+
if (hasOnlyExecutionOrder) {
|
|
68
|
+
logger_1.logger.info('β
PASS: cleanWorkflowForUpdate preserved partial settings without adding defaults');
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
logger_1.logger.error('β FAIL: cleanWorkflowForUpdate added default properties to partial settings');
|
|
72
|
+
logger_1.logger.error(' Original keys:', Object.keys(workflowWithPartialSettings.settings || {}));
|
|
73
|
+
logger_1.logger.error(' Cleaned keys:', settingsKeys);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
logger_1.logger.error('β FAIL: cleanWorkflowForUpdate removed partial settings');
|
|
78
|
+
}
|
|
79
|
+
logger_1.logger.info('\n=== Test 4: cleanWorkflowForCreate should add default settings ===');
|
|
80
|
+
const newWorkflow = {
|
|
81
|
+
name: 'New Workflow',
|
|
82
|
+
nodes: [],
|
|
83
|
+
connections: {}
|
|
84
|
+
};
|
|
85
|
+
const cleanedCreate = (0, n8n_validation_1.cleanWorkflowForCreate)(newWorkflow);
|
|
86
|
+
if ('settings' in cleanedCreate && cleanedCreate.settings) {
|
|
87
|
+
const hasDefaults = cleanedCreate.settings.executionOrder === 'v1' &&
|
|
88
|
+
cleanedCreate.settings.saveDataErrorExecution === 'all' &&
|
|
89
|
+
cleanedCreate.settings.saveDataSuccessExecution === 'all' &&
|
|
90
|
+
cleanedCreate.settings.saveManualExecutions === true &&
|
|
91
|
+
cleanedCreate.settings.saveExecutionProgress === true;
|
|
92
|
+
if (hasDefaults) {
|
|
93
|
+
logger_1.logger.info('β
PASS: cleanWorkflowForCreate correctly adds default settings');
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
logger_1.logger.error('β FAIL: cleanWorkflowForCreate added settings but not with correct defaults');
|
|
97
|
+
logger_1.logger.error(' Settings:', JSON.stringify(cleanedCreate.settings));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
logger_1.logger.error('β FAIL: cleanWorkflowForCreate did not add default settings');
|
|
102
|
+
}
|
|
103
|
+
logger_1.logger.info('\n=== Test 5: cleanWorkflowForUpdate removes read-only fields ===');
|
|
104
|
+
const workflowWithReadOnly = {
|
|
105
|
+
...workflowWithoutSettings,
|
|
106
|
+
staticData: { some: 'data' },
|
|
107
|
+
pinData: { node1: 'data' },
|
|
108
|
+
tags: ['tag1', 'tag2'],
|
|
109
|
+
isArchived: true,
|
|
110
|
+
usedCredentials: ['cred1'],
|
|
111
|
+
sharedWithProjects: ['proj1'],
|
|
112
|
+
triggerCount: 5,
|
|
113
|
+
shared: true,
|
|
114
|
+
active: true
|
|
115
|
+
};
|
|
116
|
+
const cleanedReadOnly = (0, n8n_validation_1.cleanWorkflowForUpdate)(workflowWithReadOnly);
|
|
117
|
+
const removedFields = [
|
|
118
|
+
'id', 'createdAt', 'updatedAt', 'versionId', 'meta',
|
|
119
|
+
'staticData', 'pinData', 'tags', 'isArchived',
|
|
120
|
+
'usedCredentials', 'sharedWithProjects', 'triggerCount',
|
|
121
|
+
'shared', 'active'
|
|
122
|
+
];
|
|
123
|
+
const hasRemovedFields = removedFields.some(field => field in cleanedReadOnly);
|
|
124
|
+
if (!hasRemovedFields) {
|
|
125
|
+
logger_1.logger.info('β
PASS: cleanWorkflowForUpdate correctly removed all read-only fields');
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const foundFields = removedFields.filter(field => field in cleanedReadOnly);
|
|
129
|
+
logger_1.logger.error('β FAIL: cleanWorkflowForUpdate did not remove these fields:', foundFields);
|
|
130
|
+
}
|
|
131
|
+
logger_1.logger.info('\n=== Test Summary ===');
|
|
132
|
+
logger_1.logger.info('All tests completed. The fix ensures that cleanWorkflowForUpdate only removes fields');
|
|
133
|
+
logger_1.logger.info('without adding default settings, preventing the n8n API validation error.');
|
|
134
|
+
}
|
|
135
|
+
testCleanWorkflowFunctions();
|
|
136
|
+
//# sourceMappingURL=test-issue-45-fix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-issue-45-fix.js","sourceRoot":"","sources":["../../src/scripts/test-issue-45-fix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"n8n-validation.d.ts","sourceRoot":"","sources":["../../src/services/n8n-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB7B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;GAYpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;;;;CAMnC,CAAC;AAGF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAEhE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,GAAG,kBAAkB,CAEpF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAElG;AAGD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqBrF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"n8n-validation.d.ts","sourceRoot":"","sources":["../../src/services/n8n-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB7B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;GAYpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;;;;CAMnC,CAAC;AAGF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAEhE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,GAAG,kBAAkB,CAEpF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAElG;AAGD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqBrF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAwB5E;AAGD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAmG/E;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAK7D;AAGD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAmB/D;AAGD,wBAAgB,2BAA2B,IAAI,MAAM,CA6CpD;AAGD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmBpE"}
|
|
@@ -72,9 +72,6 @@ function cleanWorkflowForCreate(workflow) {
|
|
|
72
72
|
}
|
|
73
73
|
function cleanWorkflowForUpdate(workflow) {
|
|
74
74
|
const { id, createdAt, updatedAt, versionId, meta, staticData, pinData, tags, isArchived, usedCredentials, sharedWithProjects, triggerCount, shared, active, ...cleanedWorkflow } = workflow;
|
|
75
|
-
if (!cleanedWorkflow.settings) {
|
|
76
|
-
cleanedWorkflow.settings = exports.defaultWorkflowSettings;
|
|
77
|
-
}
|
|
78
75
|
return cleanedWorkflow;
|
|
79
76
|
}
|
|
80
77
|
function validateWorkflowStructure(workflow) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"n8n-validation.js","sourceRoot":"","sources":["../../src/services/n8n-validation.ts"],"names":[],"mappings":";;;AA2DA,oDAEC;AAED,kEAEC;AAED,4DAEC;AAGD,wDAqBC;AAED,
|
|
1
|
+
{"version":3,"file":"n8n-validation.js","sourceRoot":"","sources":["../../src/services/n8n-validation.ts"],"names":[],"mappings":"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"}
|