n8n-mcp 2.74.0 → 2.75.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.
Files changed (99) hide show
  1. package/README.md +19 -3
  2. package/dist/config/n8n-api.d.ts +12 -0
  3. package/dist/config/n8n-api.d.ts.map +1 -1
  4. package/dist/config/n8n-api.js +37 -0
  5. package/dist/config/n8n-api.js.map +1 -1
  6. package/dist/constants/agent-model-providers.d.ts +4 -0
  7. package/dist/constants/agent-model-providers.d.ts.map +1 -0
  8. package/dist/constants/agent-model-providers.js +26 -0
  9. package/dist/constants/agent-model-providers.js.map +1 -0
  10. package/dist/http-server-single-session.d.ts.map +1 -1
  11. package/dist/http-server-single-session.js +21 -5
  12. package/dist/http-server-single-session.js.map +1 -1
  13. package/dist/mcp/agents-action-map.d.ts +16 -0
  14. package/dist/mcp/agents-action-map.d.ts.map +1 -0
  15. package/dist/mcp/agents-action-map.js +31 -0
  16. package/dist/mcp/agents-action-map.js.map +1 -0
  17. package/dist/mcp/handlers-agents.d.ts +4 -0
  18. package/dist/mcp/handlers-agents.d.ts.map +1 -0
  19. package/dist/mcp/handlers-agents.js +132 -0
  20. package/dist/mcp/handlers-agents.js.map +1 -0
  21. package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -1
  22. package/dist/mcp/handlers-n8n-manager.js +4 -1
  23. package/dist/mcp/handlers-n8n-manager.js.map +1 -1
  24. package/dist/mcp/handlers-official-tools.d.ts +6 -0
  25. package/dist/mcp/handlers-official-tools.d.ts.map +1 -0
  26. package/dist/mcp/handlers-official-tools.js +141 -0
  27. package/dist/mcp/handlers-official-tools.js.map +1 -0
  28. package/dist/mcp/official-mcp-access.d.ts +30 -0
  29. package/dist/mcp/official-mcp-access.d.ts.map +1 -0
  30. package/dist/mcp/official-mcp-access.js +112 -0
  31. package/dist/mcp/official-mcp-access.js.map +1 -0
  32. package/dist/mcp/server.d.ts.map +1 -1
  33. package/dist/mcp/server.js +11 -0
  34. package/dist/mcp/server.js.map +1 -1
  35. package/dist/mcp/tool-docs/discovery/index.d.ts +1 -0
  36. package/dist/mcp/tool-docs/discovery/index.d.ts.map +1 -1
  37. package/dist/mcp/tool-docs/discovery/index.js +3 -1
  38. package/dist/mcp/tool-docs/discovery/index.js.map +1 -1
  39. package/dist/mcp/tool-docs/discovery/n8n-explore-node-resources.d.ts +3 -0
  40. package/dist/mcp/tool-docs/discovery/n8n-explore-node-resources.d.ts.map +1 -0
  41. package/dist/mcp/tool-docs/discovery/n8n-explore-node-resources.js +62 -0
  42. package/dist/mcp/tool-docs/discovery/n8n-explore-node-resources.js.map +1 -0
  43. package/dist/mcp/tool-docs/index.d.ts.map +1 -1
  44. package/dist/mcp/tool-docs/index.js +4 -1
  45. package/dist/mcp/tool-docs/index.js.map +1 -1
  46. package/dist/mcp/tool-docs/workflow_management/index.d.ts +2 -0
  47. package/dist/mcp/tool-docs/workflow_management/index.d.ts.map +1 -1
  48. package/dist/mcp/tool-docs/workflow_management/index.js +5 -1
  49. package/dist/mcp/tool-docs/workflow_management/index.js.map +1 -1
  50. package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.d.ts.map +1 -1
  51. package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.js +3 -2
  52. package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.js.map +1 -1
  53. package/dist/mcp/tool-docs/workflow_management/n8n-list-catalog.d.ts +3 -0
  54. package/dist/mcp/tool-docs/workflow_management/n8n-list-catalog.d.ts.map +1 -0
  55. package/dist/mcp/tool-docs/workflow_management/n8n-list-catalog.js +55 -0
  56. package/dist/mcp/tool-docs/workflow_management/n8n-list-catalog.js.map +1 -0
  57. package/dist/mcp/tool-docs/workflow_management/n8n-manage-agents.d.ts +3 -0
  58. package/dist/mcp/tool-docs/workflow_management/n8n-manage-agents.d.ts.map +1 -0
  59. package/dist/mcp/tool-docs/workflow_management/n8n-manage-agents.js +48 -0
  60. package/dist/mcp/tool-docs/workflow_management/n8n-manage-agents.js.map +1 -0
  61. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js +1 -1
  62. package/dist/mcp/tools-documentation.d.ts.map +1 -1
  63. package/dist/mcp/tools-documentation.js +8 -2
  64. package/dist/mcp/tools-documentation.js.map +1 -1
  65. package/dist/mcp/tools-n8n-manager.d.ts.map +1 -1
  66. package/dist/mcp/tools-n8n-manager.js +56 -2
  67. package/dist/mcp/tools-n8n-manager.js.map +1 -1
  68. package/dist/mcp-engine.d.ts +2 -0
  69. package/dist/mcp-engine.d.ts.map +1 -1
  70. package/dist/mcp-engine.js +3 -1
  71. package/dist/mcp-engine.js.map +1 -1
  72. package/dist/services/n8n-api-client.d.ts +2 -1
  73. package/dist/services/n8n-api-client.d.ts.map +1 -1
  74. package/dist/services/n8n-api-client.js +10 -0
  75. package/dist/services/n8n-api-client.js.map +1 -1
  76. package/dist/services/n8n-official-mcp-client.d.ts +70 -0
  77. package/dist/services/n8n-official-mcp-client.d.ts.map +1 -0
  78. package/dist/services/n8n-official-mcp-client.js +276 -0
  79. package/dist/services/n8n-official-mcp-client.js.map +1 -0
  80. package/dist/services/n8n-validation.d.ts +4 -4
  81. package/dist/services/property-filter.d.ts +6 -0
  82. package/dist/services/property-filter.d.ts.map +1 -1
  83. package/dist/services/property-filter.js +22 -1
  84. package/dist/services/property-filter.js.map +1 -1
  85. package/dist/triggers/handlers/chat-handler.d.ts +2 -2
  86. package/dist/types/instance-context.d.ts +1 -0
  87. package/dist/types/instance-context.d.ts.map +1 -1
  88. package/dist/types/instance-context.js +13 -0
  89. package/dist/types/instance-context.js.map +1 -1
  90. package/dist/types/n8n-api.d.ts +14 -0
  91. package/dist/types/n8n-api.d.ts.map +1 -1
  92. package/dist/utils/redaction.d.ts.map +1 -1
  93. package/dist/utils/redaction.js +1 -0
  94. package/dist/utils/redaction.js.map +1 -1
  95. package/dist/utils/ssrf-protection.d.ts +10 -0
  96. package/dist/utils/ssrf-protection.d.ts.map +1 -1
  97. package/dist/utils/ssrf-protection.js +23 -5
  98. package/dist/utils/ssrf-protection.js.map +1 -1
  99. package/package.json +2 -1
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callOfficialTool = callOfficialTool;
4
+ exports.handleExploreNodeResources = handleExploreNodeResources;
5
+ exports.handleListCatalog = handleListCatalog;
6
+ const zod_1 = require("zod");
7
+ const official_mcp_access_1 = require("./official-mcp-access");
8
+ const n8n_official_mcp_client_1 = require("../services/n8n-official-mcp-client");
9
+ const agents_action_map_1 = require("./agents-action-map");
10
+ const logger_1 = require("../utils/logger");
11
+ const handlers_n8n_manager_1 = require("./handlers-n8n-manager");
12
+ const n8n_errors_1 = require("../utils/n8n-errors");
13
+ const exploreSchema = zod_1.z.object({
14
+ nodeType: zod_1.z.string().min(1),
15
+ version: zod_1.z.number(),
16
+ methodName: zod_1.z.string().min(1),
17
+ methodType: zod_1.z.enum(['listSearch', 'loadOptions']),
18
+ credentialType: zod_1.z.string().min(1),
19
+ credentialId: zod_1.z.string().min(1),
20
+ filter: zod_1.z.string().optional(),
21
+ paginationToken: zod_1.z.string().optional(),
22
+ currentNodeParameters: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
23
+ timeoutMs: zod_1.z.number().int().min(agents_action_map_1.MIN_TIMEOUT_MS).max(agents_action_map_1.MAX_TIMEOUT_MS).optional(),
24
+ }).strict();
25
+ const EXPLORE_TOOLS = ['explore_node_resources'];
26
+ async function callOfficialTool(context, toolAliases, args, timeoutMs, label, idempotent) {
27
+ const client = (0, official_mcp_access_1.getOfficialMcpClient)(context);
28
+ if (!client)
29
+ return (0, official_mcp_access_1.notConfiguredResponse)(context, label);
30
+ try {
31
+ const caps = await client.capabilities();
32
+ if (!caps.reachable)
33
+ return (0, official_mcp_access_1.officialFailure)(new n8n_official_mcp_client_1.OfficialMcpError(caps.error ?? 'OFFICIAL_MCP_TRANSPORT_ERROR', 'n8n MCP server is not reachable'), label);
34
+ const tool = toolAliases.find(t => caps.toolNames.includes(t));
35
+ if (!tool)
36
+ return (0, official_mcp_access_1.officialFailure)(new n8n_official_mcp_client_1.OfficialMcpError('OFFICIAL_MCP_TOOL_UNAVAILABLE', `This instance does not expose ${toolAliases.join(' / ')}`), label);
37
+ const result = await client.callTool(tool, args, { timeoutMs, idempotent });
38
+ const data = result.json ?? result.text;
39
+ if (result.text.startsWith('Input validation error'))
40
+ return { success: false, action: label, code: 'INVALID_ARGS', error: result.text.slice(0, 2000) };
41
+ if (result.isError || data?.ok === false) {
42
+ return { success: false, action: label, officialTool: tool, code: 'OFFICIAL_MCP_ERROR', error: (0, official_mcp_access_1.officialErrorText)(data, undefined), officialError: data };
43
+ }
44
+ return { success: true, action: label, officialTool: tool, data, ...(result.truncated ? { truncated: true } : {}) };
45
+ }
46
+ catch (err) {
47
+ const failure = (0, official_mcp_access_1.officialFailure)(err, label);
48
+ logger_1.logger.warn(`${label} failed`, { code: failure.code });
49
+ return failure;
50
+ }
51
+ }
52
+ async function handleExploreNodeResources(args, context) {
53
+ const parsed = exploreSchema.safeParse(args);
54
+ if (!parsed.success) {
55
+ return { success: false, action: 'explore_node_resources', code: 'INVALID_ARGS', error: parsed.error.issues.map(i => `${i.path.join('.') || 'input'}: ${i.message}`).join('; ') };
56
+ }
57
+ const { timeoutMs, ...forwarded } = parsed.data;
58
+ return callOfficialTool(context, EXPLORE_TOOLS, forwarded, timeoutMs ?? agents_action_map_1.DEFAULT_TIMEOUT_MS, 'explore_node_resources', true);
59
+ }
60
+ const CATALOG_TOOLS = ['search_projects'];
61
+ const catalogSchema = zod_1.z.object({
62
+ kind: zod_1.z.enum(['projects', 'tags']),
63
+ query: zod_1.z.string().optional(),
64
+ limit: zod_1.z.number().int().min(1).max(500).optional(),
65
+ }).strict();
66
+ function filterItems(items, query, limit) {
67
+ const q = query?.trim().toLowerCase();
68
+ const filtered = q ? items.filter(i => i.name.toLowerCase().includes(q)) : items;
69
+ return limit ? filtered.slice(0, limit) : filtered;
70
+ }
71
+ async function handleListCatalog(args, context) {
72
+ const parsed = catalogSchema.safeParse(args);
73
+ if (!parsed.success) {
74
+ return { success: false, code: 'INVALID_ARGS', error: parsed.error.issues.map(i => `${i.path.join('.') || 'input'}: ${i.message}`).join('; ') };
75
+ }
76
+ const { kind, query, limit } = parsed.data;
77
+ const api = (0, handlers_n8n_manager_1.getN8nApiClient)(context);
78
+ if (!api)
79
+ return { success: false, code: 'NOT_CONFIGURED', error: 'n8n API not configured. Set N8N_API_URL and N8N_API_KEY.' };
80
+ if (kind === 'tags') {
81
+ try {
82
+ const tags = (await api.listTags({ limit: 250 })).data.map(t => ({ id: String(t.id), name: t.name }));
83
+ return { success: true, kind, backend: 'public-api', data: { items: filterItems(tags, query, limit) } };
84
+ }
85
+ catch (err) {
86
+ return { success: false, kind, code: 'API_ERROR', error: err instanceof Error ? err.message : String(err) };
87
+ }
88
+ }
89
+ try {
90
+ const projects = (await api.listProjects()).map(p => ({ id: p.id, name: p.name, type: p.type, personal: p.type === 'personal' }));
91
+ return {
92
+ success: true,
93
+ kind,
94
+ backend: 'public-api',
95
+ data: { teamProjectsEnabled: true, items: filterItems(projects, query, limit) },
96
+ };
97
+ }
98
+ catch (err) {
99
+ const status = err instanceof n8n_errors_1.N8nApiError ? err.statusCode : undefined;
100
+ if (status !== 403 && status !== 404) {
101
+ return { success: false, kind, code: 'API_ERROR', error: err instanceof Error ? err.message : String(err) };
102
+ }
103
+ }
104
+ if ((0, official_mcp_access_1.getOfficialMcpClient)(context)) {
105
+ const official = await callOfficialTool(context, CATALOG_TOOLS, {}, agents_action_map_1.DEFAULT_TIMEOUT_MS, 'list_catalog', true);
106
+ if (!official.success)
107
+ return { ...official, kind, backend: 'official-mcp' };
108
+ const officialData = official.data;
109
+ const raw = (officialData?.data ?? []);
110
+ const items = raw.map(p => ({ id: String(p.id), name: String(p.name), type: p.type, personal: p.type === 'personal' }));
111
+ const teamProjectsEnabled = typeof officialData?.teamProjectsEnabled === 'boolean'
112
+ ? officialData.teamProjectsEnabled
113
+ : items.some(p => !p.personal);
114
+ return {
115
+ success: true,
116
+ kind,
117
+ backend: 'official-mcp',
118
+ data: { teamProjectsEnabled, items: filterItems(items, query, limit) },
119
+ };
120
+ }
121
+ try {
122
+ const personalId = await api.resolvePersonalProjectId();
123
+ return {
124
+ success: true,
125
+ kind,
126
+ backend: 'public-api',
127
+ data: { teamProjectsEnabled: false, items: filterItems([{ id: personalId, name: 'Personal', type: 'personal', personal: true }], query, limit) },
128
+ };
129
+ }
130
+ catch (err) {
131
+ return {
132
+ success: false,
133
+ kind,
134
+ backend: 'public-api',
135
+ code: 'API_ERROR',
136
+ error: err instanceof Error ? err.message : String(err),
137
+ hint: 'Team projects are not available through the Public API on this instance and the personal project could not be resolved. Pass projectId explicitly, or configure N8N_MCP_ACCESS_TOKEN so projects can be listed through n8n\'s MCP server.',
138
+ };
139
+ }
140
+ }
141
+ //# sourceMappingURL=handlers-official-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers-official-tools.js","sourceRoot":"","sources":["../../src/mcp/handlers-official-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { InstanceContext } from '../types/instance-context';
2
+ import { OfficialMcpConfig } from '../config/n8n-api';
3
+ import { N8nOfficialMcpClient, OfficialMcpErrorCode } from '../services/n8n-official-mcp-client';
4
+ export interface OfficialMcpFailure {
5
+ success: false;
6
+ action?: string;
7
+ code: string;
8
+ error: string;
9
+ hint?: string;
10
+ officialError?: unknown;
11
+ details?: Record<string, unknown>;
12
+ }
13
+ export declare function resolveOfficialMcpConfig(context?: InstanceContext): OfficialMcpConfig | null;
14
+ export declare function getOfficialMcpClient(context?: InstanceContext): N8nOfficialMcpClient | null;
15
+ export declare function notConfiguredResponse(context?: InstanceContext, action?: string): OfficialMcpFailure;
16
+ export declare function officialErrorText(data: unknown, officialCode: string | undefined): string;
17
+ export declare function officialFailure(err: unknown, action?: string): OfficialMcpFailure;
18
+ export interface OfficialMcpHealth {
19
+ configured: boolean;
20
+ endpoint?: string;
21
+ reachable?: boolean;
22
+ toolCount?: number;
23
+ agentTools?: boolean;
24
+ checkedAt?: string;
25
+ error?: OfficialMcpErrorCode;
26
+ hint?: string;
27
+ }
28
+ export declare function buildOfficialMcpHealth(context: InstanceContext | undefined, live: boolean): Promise<OfficialMcpHealth>;
29
+ export declare function clearOfficialMcpClientCache(): Promise<void>;
30
+ //# sourceMappingURL=official-mcp-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"official-mcp-access.d.ts","sourceRoot":"","sources":["../../src/mcp/official-mcp-access.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAyD,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7G,OAAO,EACL,oBAAoB,EAEpB,oBAAoB,EAGrB,MAAM,qCAAqC,CAAC;AAI7C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAkCD,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAS5F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,oBAAoB,GAAG,IAAI,CAmB3F;AA0BD,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAQpG;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAWzF;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAUjF;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAUD,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmB5H;AAOD,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjE"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveOfficialMcpConfig = resolveOfficialMcpConfig;
4
+ exports.getOfficialMcpClient = getOfficialMcpClient;
5
+ exports.notConfiguredResponse = notConfiguredResponse;
6
+ exports.officialErrorText = officialErrorText;
7
+ exports.officialFailure = officialFailure;
8
+ exports.buildOfficialMcpHealth = buildOfficialMcpHealth;
9
+ exports.clearOfficialMcpClientCache = clearOfficialMcpClientCache;
10
+ const n8n_api_1 = require("../config/n8n-api");
11
+ const n8n_official_mcp_client_1 = require("../services/n8n-official-mcp-client");
12
+ const cache_utils_1 = require("../utils/cache-utils");
13
+ const logger_1 = require("../utils/logger");
14
+ const clientCache = (0, cache_utils_1.createInstanceCache)((client, key) => {
15
+ client.close().catch(err => logger_1.logger.debug('Error closing evicted MCP client', { key: key.slice(0, 8), error: err.message }));
16
+ });
17
+ function resolveOfficialMcpConfig(context) {
18
+ if (context?.n8nApiUrl && (context?.n8nApiKey || context?.n8nMcpAccessToken)) {
19
+ return (0, n8n_api_1.getOfficialMcpConfigFromContext)(context);
20
+ }
21
+ if (process.env.ENABLE_MULTI_TENANT === 'true') {
22
+ logger_1.logger.warn('Refusing env-credential fallback for official MCP in multi-tenant mode');
23
+ return null;
24
+ }
25
+ return (0, n8n_api_1.getOfficialMcpConfig)();
26
+ }
27
+ function getOfficialMcpClient(context) {
28
+ const config = resolveOfficialMcpConfig(context);
29
+ if (!config)
30
+ return null;
31
+ const cacheKey = (0, cache_utils_1.createCacheKey)(`${config.endpoint}:${config.token}:${context?.instanceId ?? 'default'}`);
32
+ const cached = clientCache.get(cacheKey);
33
+ if (cached) {
34
+ cache_utils_1.cacheMetrics.recordHit();
35
+ return cached;
36
+ }
37
+ cache_utils_1.cacheMetrics.recordMiss();
38
+ const client = new n8n_official_mcp_client_1.N8nOfficialMcpClient({ endpoint: config.endpoint, token: config.token, instanceId: context?.instanceId });
39
+ clientCache.set(cacheKey, client);
40
+ cache_utils_1.cacheMetrics.recordSet();
41
+ logger_1.logger.info('Created n8n MCP client', { host: new URL(config.endpoint).host, cacheKey: cacheKey.slice(0, 8) + '...' });
42
+ return client;
43
+ }
44
+ const SETUP_HINT_MAX_LENGTH = 500;
45
+ function embedderSetupHint(context) {
46
+ const raw = context?.metadata?.officialMcpSetupHint;
47
+ if (typeof raw !== 'string')
48
+ return undefined;
49
+ const bounded = raw.slice(0, SETUP_HINT_MAX_LENGTH * 2);
50
+ const stripped = bounded
51
+ .replace(/[<>]/g, '')
52
+ .replace(/\s+/g, ' ')
53
+ .trim();
54
+ if (stripped.length === 0)
55
+ return undefined;
56
+ return stripped.slice(0, SETUP_HINT_MAX_LENGTH);
57
+ }
58
+ function notConfiguredResponse(context, action) {
59
+ return {
60
+ success: false,
61
+ action,
62
+ code: 'NOT_CONFIGURED',
63
+ error: 'n8n instance-level MCP access is not configured for this instance',
64
+ hint: embedderSetupHint(context) ?? n8n_official_mcp_client_1.OFFICIAL_MCP_HINTS.NOT_CONFIGURED,
65
+ };
66
+ }
67
+ function officialErrorText(data, officialCode) {
68
+ const obj = data;
69
+ const raw = typeof obj?.message === 'string'
70
+ ? obj.message
71
+ : typeof obj?.error === 'string'
72
+ ? obj.error
73
+ : typeof data === 'string'
74
+ ? data
75
+ : `n8n returned ${officialCode ?? 'an error'}`;
76
+ return String(raw).slice(0, 2000);
77
+ }
78
+ function officialFailure(err, action) {
79
+ const mapped = err instanceof n8n_official_mcp_client_1.OfficialMcpError ? err : (0, n8n_official_mcp_client_1.mapOfficialTransportError)(err);
80
+ return {
81
+ success: false,
82
+ action,
83
+ code: mapped.code,
84
+ error: mapped.message,
85
+ hint: mapped.hint,
86
+ ...(mapped.status !== undefined ? { details: { status: mapped.status } } : {}),
87
+ };
88
+ }
89
+ async function buildOfficialMcpHealth(context, live) {
90
+ const config = resolveOfficialMcpConfig(context);
91
+ if (!config)
92
+ return { configured: false, hint: embedderSetupHint(context) ?? n8n_official_mcp_client_1.OFFICIAL_MCP_HINTS.NOT_CONFIGURED };
93
+ const client = getOfficialMcpClient(context);
94
+ const caps = live ? await client.capabilities(true) : client.cachedCapabilities();
95
+ if (!caps)
96
+ return { configured: true, endpoint: config.endpoint };
97
+ return {
98
+ configured: true,
99
+ endpoint: config.endpoint,
100
+ reachable: caps.reachable,
101
+ toolCount: caps.toolCount,
102
+ agentTools: caps.agentTools,
103
+ checkedAt: new Date(caps.checkedAt).toISOString(),
104
+ ...(caps.error ? { error: caps.error, hint: n8n_official_mcp_client_1.OFFICIAL_MCP_HINTS[caps.error] } : {}),
105
+ };
106
+ }
107
+ async function clearOfficialMcpClientCache() {
108
+ const clients = [...clientCache.values()];
109
+ clientCache.clear();
110
+ await Promise.all(clients.map(c => c.close().catch(() => undefined)));
111
+ }
112
+ //# sourceMappingURL=official-mcp-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"official-mcp-access.js","sourceRoot":"","sources":["../../src/mcp/official-mcp-access.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,8 @@ const template_service_1 = require("../templates/template-service");
65
65
  const workflow_validator_1 = require("../services/workflow-validator");
66
66
  const n8n_api_1 = require("../config/n8n-api");
67
67
  const n8nHandlers = __importStar(require("./handlers-n8n-manager"));
68
+ const handlers_agents_1 = require("./handlers-agents");
69
+ const handlers_official_tools_1 = require("./handlers-official-tools");
68
70
  const handlers_workflow_diff_1 = require("./handlers-workflow-diff");
69
71
  const tools_documentation_1 = require("./tools-documentation");
70
72
  const version_1 = require("../utils/version");
@@ -950,6 +952,7 @@ class N8NDocumentationMCPServer {
950
952
  : { valid: false, errors: [{ field: 'action', message: 'action is required' }] };
951
953
  break;
952
954
  case 'n8n_manage_folders':
955
+ case 'n8n_manage_agents':
953
956
  validationResult = args.action
954
957
  ? { valid: true, errors: [] }
955
958
  : { valid: false, errors: [{ field: 'action', message: 'action is required' }] };
@@ -1432,6 +1435,14 @@ class N8NDocumentationMCPServer {
1432
1435
  throw new Error(`Unknown action: ${folderAction}. Valid actions: create, list, get, rename, move, delete`);
1433
1436
  }
1434
1437
  }
1438
+ case 'n8n_manage_agents':
1439
+ this.validateToolParams(name, args, ['action']);
1440
+ return (0, handlers_agents_1.handleManageAgents)(args, this.instanceContext);
1441
+ case 'n8n_explore_node_resources':
1442
+ return (0, handlers_official_tools_1.handleExploreNodeResources)(args, this.instanceContext);
1443
+ case 'n8n_list_catalog':
1444
+ this.validateToolParams(name, args, ['kind']);
1445
+ return (0, handlers_official_tools_1.handleListCatalog)(args, this.instanceContext);
1435
1446
  case 'n8n_manage_credentials': {
1436
1447
  this.validateToolParams(name, args, ['action']);
1437
1448
  const credAction = args.action;