n8n-mcp 2.92.1 → 2.94.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.js +3 -3
- package/dist/mcp/instance-argument.d.ts +8 -0
- package/dist/mcp/instance-argument.d.ts.map +1 -0
- package/dist/mcp/instance-argument.js +33 -0
- package/dist/mcp/instance-argument.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +8 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-manage-agents.js +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-manage-agents.js.map +1 -1
- package/dist/types/instance-context.d.ts +1 -0
- package/dist/types/instance-context.d.ts.map +1 -1
- package/dist/types/instance-context.js +6 -1
- package/dist/types/instance-context.js.map +1 -1
- package/package.json +3 -3
- package/ui-apps/dist/execution-history/index.html +18 -18
- package/ui-apps/dist/health-dashboard/index.html +18 -18
- package/ui-apps/dist/operation-result/index.html +18 -18
- package/ui-apps/dist/validation-summary/index.html +18 -18
- package/ui-apps/dist/workflow-list/index.html +18 -18
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
|
|
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 3,135 workflow automation nodes (840 core + 2,295 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
|
-
- **
|
|
18
|
+
- **3,135 n8n nodes** - 840 core nodes + 2,295 community nodes (1,878 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: 74223616 bytes
|
|
4
|
+
sha256: b0e66103de6f124edd78ead98f2c5682a41e807dd3f36033ad636e8b8ceb2461
|
|
@@ -20,9 +20,9 @@ exports.AGENT_MODEL_PROVIDER_CREDENTIAL_TYPES = {
|
|
|
20
20
|
minimax: ['minimaxApi'],
|
|
21
21
|
};
|
|
22
22
|
exports.AGENT_UNSUPPORTED_CREDENTIAL_TYPES = {
|
|
23
|
-
azureOpenAiApi: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.
|
|
24
|
-
azureEntraCognitiveServicesOAuth2Api: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.
|
|
25
|
-
aws: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.
|
|
23
|
+
azureOpenAiApi: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.43.5)',
|
|
24
|
+
azureEntraCognitiveServicesOAuth2Api: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.43.5)',
|
|
25
|
+
aws: 'not mapped in LLM_PROVIDER_DEFAULTS (verified on n8n 2.43.5)',
|
|
26
26
|
};
|
|
27
27
|
exports.AGENT_SUPPORTED_CREDENTIAL_TYPES = Object.values(exports.AGENT_MODEL_PROVIDER_CREDENTIAL_TYPES)
|
|
28
28
|
.flat()
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { InstanceContext } from '../types/instance-context';
|
|
2
|
+
export declare const INSTANCE_ARGUMENT = "instance";
|
|
3
|
+
export declare function isInstanceArgumentEnabled(context?: InstanceContext): boolean;
|
|
4
|
+
export declare function withInstanceArgument<T extends {
|
|
5
|
+
inputSchema?: any;
|
|
6
|
+
}>(tool: T): T;
|
|
7
|
+
export declare function withoutInstanceArgument<T extends Record<string, any> | undefined>(args: T): T;
|
|
8
|
+
//# sourceMappingURL=instance-argument.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-argument.d.ts","sourceRoot":"","sources":["../../src/mcp/instance-argument.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAU5C,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAE5E;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS;IAAE,WAAW,CAAC,EAAE,GAAG,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAShF;AAGD,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAI7F"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INSTANCE_ARGUMENT = void 0;
|
|
4
|
+
exports.isInstanceArgumentEnabled = isInstanceArgumentEnabled;
|
|
5
|
+
exports.withInstanceArgument = withInstanceArgument;
|
|
6
|
+
exports.withoutInstanceArgument = withoutInstanceArgument;
|
|
7
|
+
exports.INSTANCE_ARGUMENT = 'instance';
|
|
8
|
+
const INSTANCE_PROPERTY = {
|
|
9
|
+
type: 'string',
|
|
10
|
+
description: 'Optional. Name of the n8n instance this call targets (as listed by n8n_instances). ' +
|
|
11
|
+
'Targets only this call and changes nothing for other chats or agents; pass it on every call when working on several instances in parallel. ' +
|
|
12
|
+
'Omit it to use the current instance.',
|
|
13
|
+
};
|
|
14
|
+
function isInstanceArgumentEnabled(context) {
|
|
15
|
+
return context?.instanceArgument === true;
|
|
16
|
+
}
|
|
17
|
+
function withInstanceArgument(tool) {
|
|
18
|
+
const schema = tool.inputSchema ?? { type: 'object', properties: {} };
|
|
19
|
+
return {
|
|
20
|
+
...tool,
|
|
21
|
+
inputSchema: {
|
|
22
|
+
...schema,
|
|
23
|
+
properties: { ...(schema.properties ?? {}), [exports.INSTANCE_ARGUMENT]: INSTANCE_PROPERTY },
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function withoutInstanceArgument(args) {
|
|
28
|
+
if (!args || typeof args !== 'object' || !(exports.INSTANCE_ARGUMENT in args))
|
|
29
|
+
return args;
|
|
30
|
+
const { [exports.INSTANCE_ARGUMENT]: _dropped, ...rest } = args;
|
|
31
|
+
return rest;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=instance-argument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-argument.js","sourceRoot":"","sources":["../../src/mcp/instance-argument.ts"],"names":[],"mappings":";;;AAqBA,8DAEC;AAGD,oDASC;AAGD,0DAIC;AA/BY,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAE5C,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,qFAAqF;QACrF,6IAA6I;QAC7I,sCAAsC;CAChC,CAAC;AAEX,SAAgB,yBAAyB,CAAC,OAAyB;IACjE,OAAO,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAC5C,CAAC;AAGD,SAAgB,oBAAoB,CAAkC,IAAO;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACtE,OAAO;QACL,GAAG,IAAI;QACP,WAAW,EAAE;YACX,GAAG,MAAM;YACT,UAAU,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,yBAAiB,CAAC,EAAE,iBAAiB,EAAE;SACrF;KACF,CAAC;AACJ,CAAC;AAGD,SAAgB,uBAAuB,CAA4C,IAAO;IACxF,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,yBAAiB,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,MAAM,EAAE,CAAC,yBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACxD,OAAO,IAAS,CAAC;AACnB,CAAC"}
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA+DA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -80,6 +80,7 @@ const validation_schemas_1 = require("../utils/validation-schemas");
|
|
|
80
80
|
const protocol_version_1 = require("../utils/protocol-version");
|
|
81
81
|
const breaking_change_detector_1 = require("../services/breaking-change-detector");
|
|
82
82
|
const node_parser_1 = require("../parsers/node-parser");
|
|
83
|
+
const instance_argument_1 = require("./instance-argument");
|
|
83
84
|
const telemetry_1 = require("../telemetry");
|
|
84
85
|
const startup_checkpoints_1 = require("../telemetry/startup-checkpoints");
|
|
85
86
|
const STDIO_MAX_BUFFER_SIZE = Math.max(1024 * 1024, parseInt(process.env.N8N_MCP_STDIO_MAX_BUFFER_SIZE || '', 10) || 64 * 1024 * 1024);
|
|
@@ -539,6 +540,10 @@ class N8NDocumentationMCPServer {
|
|
|
539
540
|
if ((0, ui_1.isUIAppsEnabled)(this.instanceContext)) {
|
|
540
541
|
tools = ui_1.UIAppRegistry.injectToolMeta(tools);
|
|
541
542
|
}
|
|
543
|
+
if ((0, instance_argument_1.isInstanceArgumentEnabled)(this.instanceContext)) {
|
|
544
|
+
const managementToolNames = new Set(tools_n8n_manager_1.n8nManagementTools.map(tool => tool.name));
|
|
545
|
+
tools = tools.map(tool => managementToolNames.has(tool.name) ? (0, instance_argument_1.withInstanceArgument)(tool) : tool);
|
|
546
|
+
}
|
|
542
547
|
return { tools };
|
|
543
548
|
});
|
|
544
549
|
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
@@ -616,6 +621,9 @@ class N8NDocumentationMCPServer {
|
|
|
616
621
|
if (processedArgs) {
|
|
617
622
|
processedArgs = JSON.parse(JSON.stringify(processedArgs));
|
|
618
623
|
}
|
|
624
|
+
if (!isAdditionalTool) {
|
|
625
|
+
processedArgs = (0, instance_argument_1.withoutInstanceArgument)(processedArgs);
|
|
626
|
+
}
|
|
619
627
|
const disabledToolOps = this.getDisabledToolOperations();
|
|
620
628
|
const disabledOpsForTool = disabledToolOps.get(name);
|
|
621
629
|
if (disabledOpsForTool && disabledOpsForTool.size > 0) {
|