n8n-mcp 2.86.0 → 2.88.0
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 +3 -3
- package/data/nodes.db +2 -2
- package/dist/constants/agent-model-providers.d.ts.map +1 -1
- package/dist/constants/agent-model-providers.js +7 -3
- package/dist/constants/agent-model-providers.js.map +1 -1
- package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -1
- package/dist/mcp/handlers-n8n-manager.js +29 -3
- package/dist/mcp/handlers-n8n-manager.js.map +1 -1
- package/dist/mcp/handlers-workflow-diff.d.ts.map +1 -1
- package/dist/mcp/handlers-workflow-diff.js +110 -9
- package/dist/mcp/handlers-workflow-diff.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +12 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.d.ts.map +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js +2 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js.map +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.d.ts.map +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.js +2 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.js.map +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.d.ts.map +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js +2 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js.map +1 -1
- package/dist/mcp/tools-documentation.js +127 -230
- package/dist/mcp/tools-documentation.js.map +1 -1
- package/dist/mcp-tools-engine.d.ts +1 -1
- package/dist/mcp-tools-engine.d.ts.map +1 -1
- package/dist/mcp-tools-engine.js +1 -3
- package/dist/mcp-tools-engine.js.map +1 -1
- package/dist/services/config-validator.d.ts.map +1 -1
- package/dist/services/config-validator.js +8 -53
- package/dist/services/config-validator.js.map +1 -1
- package/dist/services/enhanced-config-validator.d.ts +1 -0
- package/dist/services/enhanced-config-validator.d.ts.map +1 -1
- package/dist/services/enhanced-config-validator.js +46 -6
- package/dist/services/enhanced-config-validator.js.map +1 -1
- package/dist/services/example-generator.d.ts.map +1 -1
- package/dist/services/example-generator.js +28 -29
- package/dist/services/example-generator.js.map +1 -1
- package/dist/services/expression-validator.d.ts +2 -0
- package/dist/services/expression-validator.d.ts.map +1 -1
- package/dist/services/expression-validator.js +27 -1
- package/dist/services/expression-validator.js.map +1 -1
- package/dist/services/mcp-exposure.d.ts.map +1 -1
- package/dist/services/mcp-exposure.js +43 -6
- package/dist/services/mcp-exposure.js.map +1 -1
- package/dist/services/n8n-api-client.d.ts +1 -4
- package/dist/services/n8n-api-client.d.ts.map +1 -1
- package/dist/services/n8n-api-client.js +0 -30
- package/dist/services/n8n-api-client.js.map +1 -1
- package/dist/services/n8n-validation.d.ts.map +1 -1
- package/dist/services/n8n-validation.js +28 -33
- package/dist/services/n8n-validation.js.map +1 -1
- package/dist/services/node-specific-validators.d.ts +22 -0
- package/dist/services/node-specific-validators.d.ts.map +1 -1
- package/dist/services/node-specific-validators.js +701 -88
- package/dist/services/node-specific-validators.js.map +1 -1
- package/dist/services/task-templates.d.ts.map +1 -1
- package/dist/services/task-templates.js +54 -49
- package/dist/services/task-templates.js.map +1 -1
- package/dist/services/workflow-validator.d.ts +1 -0
- package/dist/services/workflow-validator.d.ts.map +1 -1
- package/dist/services/workflow-validator.js +58 -63
- package/dist/services/workflow-validator.js.map +1 -1
- package/dist/services/workflow-versioning-service.d.ts +2 -0
- package/dist/services/workflow-versioning-service.d.ts.map +1 -1
- package/dist/services/workflow-versioning-service.js +14 -0
- package/dist/services/workflow-versioning-service.js.map +1 -1
- package/dist/types/n8n-api.d.ts +0 -40
- package/dist/types/n8n-api.d.ts.map +1 -1
- package/dist/utils/jmespath-checks.d.ts +16 -0
- package/dist/utils/jmespath-checks.d.ts.map +1 -0
- package/dist/utils/jmespath-checks.js +357 -0
- package/dist/utils/jmespath-checks.js.map +1 -0
- package/dist/utils/n8n-errors.d.ts.map +1 -1
- package/dist/utils/n8n-errors.js +9 -0
- package/dist/utils/n8n-errors.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/n8n-mcp)
|
|
6
6
|
[](https://codecov.io/gh/czlonkowski/n8n-mcp)
|
|
7
7
|
[](https://github.com/czlonkowski/n8n-mcp/actions)
|
|
8
|
-
[](https://github.com/n8n-io/n8n)
|
|
9
9
|
[](https://github.com/czlonkowski/n8n-mcp/pkgs/container/n8n-mcp)
|
|
10
10
|
[](https://railway.com/deploy/n8n-mcp?referralCode=n8n-mcp)
|
|
11
11
|
|
|
12
|
-
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's 2,
|
|
12
|
+
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's 2,864 workflow automation nodes (836 core + 2,028 community).
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
16
|
n8n-MCP serves as a bridge between n8n's workflow automation platform and AI models, enabling them to understand and work with n8n nodes effectively. It provides structured access to:
|
|
17
17
|
|
|
18
|
-
- **2,
|
|
18
|
+
- **2,864 n8n nodes** - 836 core nodes + 2,028 community nodes (1,674 verified)
|
|
19
19
|
- **Node properties** - 99% coverage with detailed schemas
|
|
20
20
|
- **Node operations** - 66.5% coverage of available actions
|
|
21
21
|
- **Documentation** - 86% coverage from official n8n docs (including AI nodes)
|
package/data/nodes.db
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: package/data/nodes.db
|
|
3
|
-
size:
|
|
4
|
-
sha256:
|
|
3
|
+
size: 71843840 bytes
|
|
4
|
+
sha256: ce54bab339b068c83cc789abdc5f20821b720c698f432e170fac8e0a8d51dd3b
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-model-providers.d.ts","sourceRoot":"","sources":["../../src/constants/agent-model-providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-model-providers.d.ts","sourceRoot":"","sources":["../../src/constants/agent-model-providers.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,qCAAqC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAiB1E,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIrE,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAEa,CAAC"}
|
|
@@ -5,7 +5,7 @@ exports.AGENT_MODEL_PROVIDER_CREDENTIAL_TYPES = {
|
|
|
5
5
|
openai: ['openAiApi'],
|
|
6
6
|
anthropic: ['anthropicApi'],
|
|
7
7
|
google: ['googlePalmApi'],
|
|
8
|
-
'azure-openai': ['azureOpenAiApi'],
|
|
8
|
+
'azure-openai': ['azureOpenAiApi', 'azureEntraCognitiveServicesOAuth2Api'],
|
|
9
9
|
'aws-bedrock': ['aws'],
|
|
10
10
|
xai: ['xAiApi'],
|
|
11
11
|
groq: ['groqApi'],
|
|
@@ -15,10 +15,14 @@ exports.AGENT_MODEL_PROVIDER_CREDENTIAL_TYPES = {
|
|
|
15
15
|
mistral: ['mistralCloudApi'],
|
|
16
16
|
vercel: ['vercelAiGatewayApi'],
|
|
17
17
|
nvidia: ['nvidiaApi'],
|
|
18
|
+
moonshotai: ['moonshotApi'],
|
|
19
|
+
alibaba: ['alibabaCloudApi'],
|
|
20
|
+
minimax: ['minimaxApi'],
|
|
18
21
|
};
|
|
19
22
|
exports.AGENT_UNSUPPORTED_CREDENTIAL_TYPES = {
|
|
20
|
-
azureOpenAiApi: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.
|
|
21
|
-
|
|
23
|
+
azureOpenAiApi: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.40.5)',
|
|
24
|
+
azureEntraCognitiveServicesOAuth2Api: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.40.5)',
|
|
25
|
+
aws: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.40.5)',
|
|
22
26
|
};
|
|
23
27
|
exports.AGENT_SUPPORTED_CREDENTIAL_TYPES = Object.values(exports.AGENT_MODEL_PROVIDER_CREDENTIAL_TYPES)
|
|
24
28
|
.flat()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-model-providers.js","sourceRoot":"","sources":["../../src/constants/agent-model-providers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"agent-model-providers.js","sourceRoot":"","sources":["../../src/constants/agent-model-providers.ts"],"names":[],"mappings":";;;AAiBa,QAAA,qCAAqC,GAA6B;IAC7E,MAAM,EAAE,CAAC,WAAW,CAAC;IACrB,SAAS,EAAE,CAAC,cAAc,CAAC;IAC3B,MAAM,EAAE,CAAC,eAAe,CAAC;IACzB,cAAc,EAAE,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;IAC1E,aAAa,EAAE,CAAC,KAAK,CAAC;IACtB,GAAG,EAAE,CAAC,QAAQ,CAAC;IACf,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,UAAU,EAAE,CAAC,eAAe,CAAC;IAC7B,QAAQ,EAAE,CAAC,aAAa,CAAC;IACzB,MAAM,EAAE,CAAC,WAAW,CAAC;IACrB,OAAO,EAAE,CAAC,iBAAiB,CAAC;IAC5B,MAAM,EAAE,CAAC,oBAAoB,CAAC;IAC9B,MAAM,EAAE,CAAC,WAAW,CAAC;IACrB,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,OAAO,EAAE,CAAC,iBAAiB,CAAC;IAC5B,OAAO,EAAE,CAAC,YAAY,CAAC;CACxB,CAAC;AAEW,QAAA,kCAAkC,GAA2B;IACxE,cAAc,EAAE,8DAA8D;IAC9E,oCAAoC,EAAE,8DAA8D;IACpG,GAAG,EAAE,8DAA8D;CACpE,CAAC;AAEW,QAAA,gCAAgC,GAAG,MAAM,CAAC,MAAM,CAAC,6CAAqC,CAAC;KACjG,IAAI,EAAE;KACN,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,0CAAkC,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,OAAO,EAML,eAAe,EAKhB,MAAM,kBAAkB,CAAC;AAoB1B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA+C,MAAM,2BAA2B,CAAC;AAOzG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAwOhE,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAMD,wBAAgB,uBAAuB,gDAEtC;AAKD,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC;AAED,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAwF9E;AA0CD,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGlD;AAoMD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA4G7G;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAiC1G;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAoDjH;AAED,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAqDnH;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAyCjH;AAWD,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA8DlH;AAUD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAwFhH;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,cAAc,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"handlers-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -746,6 +746,7 @@ async function handleUpdateWorkflow(args, repository, context) {
|
|
|
746
746
|
let workflowBefore = null;
|
|
747
747
|
let userIntent = 'Full workflow update';
|
|
748
748
|
let sentParentFolderId = false;
|
|
749
|
+
let attemptedWorkflow = null;
|
|
749
750
|
try {
|
|
750
751
|
const client = ensureApiConfigured(context);
|
|
751
752
|
const input = updateWorkflowSchema.parse(args);
|
|
@@ -789,6 +790,7 @@ async function handleUpdateWorkflow(args, repository, context) {
|
|
|
789
790
|
if (nodeGroupsUpdate !== undefined) {
|
|
790
791
|
fullWorkflow.nodeGroups = nodeGroupsUpdate;
|
|
791
792
|
}
|
|
793
|
+
attemptedWorkflow = fullWorkflow;
|
|
792
794
|
if (updateData.nodes || updateData.connections || nodeGroupsUpdate !== undefined) {
|
|
793
795
|
if (createBackup !== false) {
|
|
794
796
|
try {
|
|
@@ -852,13 +854,16 @@ async function handleUpdateWorkflow(args, repository, context) {
|
|
|
852
854
|
}
|
|
853
855
|
catch (error) {
|
|
854
856
|
if (workflowBefore) {
|
|
857
|
+
const isPublishForbidden = error instanceof n8n_errors_1.N8nApiError && error.code === 'PUBLISH_FORBIDDEN';
|
|
855
858
|
void trackWorkflowMutationForFullUpdate({
|
|
856
859
|
sessionId,
|
|
857
860
|
toolName: 'n8n_update_full_workflow',
|
|
858
861
|
userIntent,
|
|
859
862
|
operations: [],
|
|
860
863
|
workflowBefore,
|
|
861
|
-
|
|
864
|
+
...(isPublishForbidden
|
|
865
|
+
? (attemptedWorkflow ? { workflowAfter: attemptedWorkflow } : {})
|
|
866
|
+
: { workflowAfter: workflowBefore }),
|
|
862
867
|
mutationSuccess: false,
|
|
863
868
|
mutationError: error instanceof Error ? error.message : 'Unknown error',
|
|
864
869
|
durationMs: Date.now() - startTime,
|
|
@@ -873,6 +878,23 @@ async function handleUpdateWorkflow(args, repository, context) {
|
|
|
873
878
|
details: { errors: error.errors }
|
|
874
879
|
};
|
|
875
880
|
}
|
|
881
|
+
if (error instanceof n8n_errors_1.N8nApiError && error.code === 'PUBLISH_FORBIDDEN') {
|
|
882
|
+
const body = error.details;
|
|
883
|
+
return {
|
|
884
|
+
success: false,
|
|
885
|
+
error: 'n8n did not publish this change. The published version is unchanged; ' +
|
|
886
|
+
`the change was saved as a draft${body?.versionId ? ` (id: ${body.versionId})` : ''}. ` +
|
|
887
|
+
'Retrying with the same credentials will save another draft without publishing it. ' +
|
|
888
|
+
'The API key needs the workflow:activate scope, and the user needs workflow:publish permission on this workflow.',
|
|
889
|
+
code: error.code,
|
|
890
|
+
details: {
|
|
891
|
+
reason: body?.reason,
|
|
892
|
+
draftVersionId: body?.versionId,
|
|
893
|
+
publishedVersionUnchanged: true,
|
|
894
|
+
...(sentParentFolderId ? { folderMoveMayHavePersisted: true } : {})
|
|
895
|
+
}
|
|
896
|
+
};
|
|
897
|
+
}
|
|
876
898
|
if (error instanceof n8n_errors_1.N8nApiError) {
|
|
877
899
|
const baseDetails = error.details;
|
|
878
900
|
return {
|
|
@@ -1147,9 +1169,11 @@ async function handleAutofixWorkflow(args, repository, context) {
|
|
|
1147
1169
|
return {
|
|
1148
1170
|
success: false,
|
|
1149
1171
|
error: 'Failed to apply fixes',
|
|
1172
|
+
...(updateResult.code ? { code: updateResult.code } : {}),
|
|
1150
1173
|
details: {
|
|
1151
1174
|
fixes: fixResult.fixes,
|
|
1152
|
-
updateError: updateResult.error
|
|
1175
|
+
updateError: updateResult.error,
|
|
1176
|
+
...(updateResult.details ? { updateDetails: updateResult.details } : {})
|
|
1153
1177
|
}
|
|
1154
1178
|
};
|
|
1155
1179
|
}
|
|
@@ -2454,8 +2478,10 @@ async function handleLocalWorkflowVersions(input, versionId, toVersionId, reposi
|
|
|
2454
2478
|
success: result.success,
|
|
2455
2479
|
data: result.success ? result : undefined,
|
|
2456
2480
|
error: result.success ? undefined : result.message,
|
|
2481
|
+
code: result.success ? undefined : result.code,
|
|
2457
2482
|
details: result.success ? undefined : {
|
|
2458
|
-
validationErrors: result.validationErrors
|
|
2483
|
+
validationErrors: result.validationErrors,
|
|
2484
|
+
...(result.draftVersionId ? { draftVersionId: result.draftVersionId } : {})
|
|
2459
2485
|
}
|
|
2460
2486
|
};
|
|
2461
2487
|
}
|