n8n 2.13.2 → 2.14.1
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/dist/build.tsbuildinfo +1 -1
- package/dist/chat/chat-execution-manager.js +8 -2
- package/dist/chat/chat-execution-manager.js.map +1 -1
- package/dist/chat/utils.d.ts +3 -2
- package/dist/chat/utils.js +71 -1
- package/dist/chat/utils.js.map +1 -1
- package/dist/commands/start.d.ts +1 -0
- package/dist/commands/start.js +18 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/controllers/api-keys.controller.d.ts +4 -8
- package/dist/controllers/api-keys.controller.js +6 -23
- package/dist/controllers/api-keys.controller.js.map +1 -1
- package/dist/controllers/auth.controller.js +5 -1
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/binary-data.controller.js +9 -3
- package/dist/controllers/binary-data.controller.js.map +1 -1
- package/dist/controllers/invitation.controller.d.ts +0 -1
- package/dist/controllers/invitation.controller.js +1 -32
- package/dist/controllers/invitation.controller.js.map +1 -1
- package/dist/controllers/oauth/oauth2-credential.controller.js +14 -13
- package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
- package/dist/controllers/project.controller.js +2 -1
- package/dist/controllers/project.controller.js.map +1 -1
- package/dist/controllers/users.controller.js +1 -5
- package/dist/controllers/users.controller.js.map +1 -1
- package/dist/credentials/credential-dependency.service.d.ts +36 -0
- package/dist/credentials/credential-dependency.service.js +77 -0
- package/dist/credentials/credential-dependency.service.js.map +1 -0
- package/dist/credentials/credentials-finder.service.d.ts +1 -0
- package/dist/credentials/credentials-finder.service.js +35 -0
- package/dist/credentials/credentials-finder.service.js.map +1 -1
- package/dist/credentials/credentials.controller.js +6 -2
- package/dist/credentials/credentials.controller.js.map +1 -1
- package/dist/credentials/credentials.service.d.ts +14 -13
- package/dist/credentials/credentials.service.js +86 -52
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/credentials/external-secrets.utils.d.ts +4 -0
- package/dist/credentials/external-secrets.utils.js +51 -0
- package/dist/credentials/external-secrets.utils.js.map +1 -0
- package/dist/credentials/validation.d.ts +0 -2
- package/dist/credentials/validation.js +5 -32
- package/dist/credentials/validation.js.map +1 -1
- package/dist/errors/response-errors/scope-forbidden.error.d.ts +11 -0
- package/dist/errors/response-errors/scope-forbidden.error.js +13 -0
- package/dist/errors/response-errors/scope-forbidden.error.js.map +1 -0
- package/dist/evaluation.ee/test-runner/test-runner.service.ee.js +2 -0
- package/dist/evaluation.ee/test-runner/test-runner.service.ee.js.map +1 -1
- package/dist/evaluation.ee/test-runs.controller.ee.d.ts +2 -1
- package/dist/evaluation.ee/test-runs.controller.ee.js +13 -13
- package/dist/evaluation.ee/test-runs.controller.ee.js.map +1 -1
- package/dist/eventbus/message-event-bus/message-event-bus.d.ts +1 -2
- package/dist/eventbus/message-event-bus/message-event-bus.js +8 -8
- package/dist/eventbus/message-event-bus/message-event-bus.js.map +1 -1
- package/dist/events/maps/relay.event-map.d.ts +1 -0
- package/dist/events/relays/telemetry.event-relay.js +3 -2
- package/dist/events/relays/telemetry.event-relay.js.map +1 -1
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js +90 -9
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
- package/dist/executions/execution-redaction.d.ts +2 -1
- package/dist/executions/execution.service.d.ts +11 -2
- package/dist/executions/execution.service.js +19 -1
- package/dist/executions/execution.service.js.map +1 -1
- package/dist/executions/execution.types.d.ts +3 -0
- package/dist/executions/executions.controller.d.ts +5 -0
- package/dist/executions/executions.controller.js +13 -0
- package/dist/executions/executions.controller.js.map +1 -1
- package/dist/executions/pre-execution-checks/credentials-permission-checker.js +4 -0
- package/dist/executions/pre-execution-checks/credentials-permission-checker.js.map +1 -1
- package/dist/license.d.ts +0 -1
- package/dist/license.js +0 -3
- package/dist/license.js.map +1 -1
- package/dist/load-nodes-and-credentials.js +4 -0
- package/dist/load-nodes-and-credentials.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-title.service.d.ts +3 -1
- package/dist/modules/chat-hub/chat-hub-title.service.js +9 -3
- package/dist/modules/chat-hub/chat-hub-title.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-tool.service.d.ts +3 -1
- package/dist/modules/chat-hub/chat-hub-tool.service.js +13 -3
- package/dist/modules/chat-hub/chat-hub-tool.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-workflow.service.d.ts +5 -5
- package/dist/modules/chat-hub/chat-hub-workflow.service.js +18 -13
- package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.module.d.ts +2 -0
- package/dist/modules/chat-hub/chat-hub.settings.controller.d.ts +6 -0
- package/dist/modules/data-table/csv-parser.service.d.ts +12 -1
- package/dist/modules/data-table/csv-parser.service.js +81 -74
- package/dist/modules/data-table/csv-parser.service.js.map +1 -1
- package/dist/modules/data-table/data-table-csv-import.service.d.ts +21 -0
- package/dist/modules/data-table/data-table-csv-import.service.js +123 -0
- package/dist/modules/data-table/data-table-csv-import.service.js.map +1 -0
- package/dist/modules/data-table/data-table-rows.repository.js +3 -1
- package/dist/modules/data-table/data-table-rows.repository.js.map +1 -1
- package/dist/modules/data-table/data-table.controller.d.ts +7 -1
- package/dist/modules/data-table/data-table.controller.js +36 -0
- package/dist/modules/data-table/data-table.controller.js.map +1 -1
- package/dist/modules/data-table/data-table.service.d.ts +7 -6
- package/dist/modules/data-table/data-table.service.js +24 -47
- package/dist/modules/data-table/data-table.service.js.map +1 -1
- package/dist/modules/data-table/utils/sql-utils.js +2 -3
- package/dist/modules/data-table/utils/sql-utils.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js +15 -3
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js +13 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.d.ts +2 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js +32 -2
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.d.ts +5 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +7 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.d.ts +14 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js +77 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.d.ts +9 -2
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js +34 -3
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/index.d.ts +1 -0
- package/dist/modules/dynamic-credentials.ee/services/index.js +1 -0
- package/dist/modules/dynamic-credentials.ee/services/index.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/vault.d.ts +3 -0
- package/dist/modules/external-secrets.ee/providers/vault.js +77 -29
- package/dist/modules/external-secrets.ee/providers/vault.js.map +1 -1
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.d.ts +4 -2
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js +28 -6
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js.map +1 -1
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.d.ts +3 -0
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js +35 -25
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js.map +1 -1
- package/dist/modules/log-streaming.ee/log-streaming-destination.service.js +2 -2
- package/dist/modules/log-streaming.ee/log-streaming-destination.service.js.map +1 -1
- package/dist/modules/mcp/mcp-oauth-service.d.ts +5 -1
- package/dist/modules/mcp/mcp-oauth-service.js +36 -18
- package/dist/modules/mcp/mcp-oauth-service.js.map +1 -1
- package/dist/modules/mcp/mcp.oauth.controller.js +15 -0
- package/dist/modules/mcp/mcp.oauth.controller.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +3 -2
- package/dist/modules/mcp/mcp.service.js +11 -10
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/tools/get-execution.tool.d.ts +9 -0
- package/dist/modules/mcp/tools/get-execution.tool.js +95 -20
- package/dist/modules/mcp/tools/get-execution.tool.js.map +1 -1
- package/dist/modules/mcp/tools/search-folders.tool.d.ts +12 -0
- package/dist/modules/mcp/tools/search-folders.tool.js +107 -0
- package/dist/modules/mcp/tools/search-folders.tool.js.map +1 -0
- package/dist/modules/mcp/tools/search-projects.tool.d.ts +11 -0
- package/dist/modules/mcp/tools/search-projects.tool.js +93 -0
- package/dist/modules/mcp/tools/search-projects.tool.js.map +1 -0
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.d.ts +1 -0
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +25 -12
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +9 -7
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
- package/dist/modules/provisioning.ee/claims-context.builder.d.ts +4 -0
- package/dist/modules/provisioning.ee/claims-context.builder.js +31 -0
- package/dist/modules/provisioning.ee/claims-context.builder.js.map +1 -0
- package/dist/modules/provisioning.ee/role-resolver-types.d.ts +35 -0
- package/dist/modules/provisioning.ee/role-resolver-types.js +3 -0
- package/dist/modules/provisioning.ee/role-resolver-types.js.map +1 -0
- package/dist/modules/provisioning.ee/role-resolver.service.ee.d.ts +13 -0
- package/dist/modules/provisioning.ee/role-resolver.service.ee.js +103 -0
- package/dist/modules/provisioning.ee/role-resolver.service.ee.js.map +1 -0
- package/dist/modules/redaction/executions/execution-redaction.interfaces.d.ts +3 -0
- package/dist/modules/redaction/executions/execution-redaction.service.d.ts +1 -0
- package/dist/modules/redaction/executions/execution-redaction.service.js +42 -10
- package/dist/modules/redaction/executions/execution-redaction.service.js.map +1 -1
- package/dist/modules/redaction/executions/strategies/full-item-redaction.strategy.d.ts +1 -0
- package/dist/modules/redaction/executions/strategies/full-item-redaction.strategy.js +8 -1
- package/dist/modules/redaction/executions/strategies/full-item-redaction.strategy.js.map +1 -1
- package/dist/modules/redaction/executions/strategies/node-defined-field-redaction.strategy.d.ts +4 -1
- package/dist/modules/redaction/executions/strategies/node-defined-field-redaction.strategy.js +52 -16
- package/dist/modules/redaction/executions/strategies/node-defined-field-redaction.strategy.js.map +1 -1
- package/dist/modules/sso-oidc/oidc.service.ee.js +6 -5
- package/dist/modules/sso-oidc/oidc.service.ee.js.map +1 -1
- package/dist/modules/sso-saml/saml.controller.ee.d.ts +32 -1
- package/dist/modules/sso-saml/saml.controller.ee.js +9 -1
- package/dist/modules/sso-saml/saml.controller.ee.js.map +1 -1
- package/dist/modules/sso-saml/saml.service.ee.d.ts +9 -2
- package/dist/modules/sso-saml/saml.service.ee.js +110 -8
- package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
- package/dist/modules/workflow-index/workflow-dependency-query.service.d.ts +25 -0
- package/dist/modules/workflow-index/workflow-dependency-query.service.js +220 -0
- package/dist/modules/workflow-index/workflow-dependency-query.service.js.map +1 -0
- package/dist/modules/workflow-index/workflow-dependency.controller.d.ts +12 -0
- package/dist/modules/workflow-index/workflow-dependency.controller.js +60 -0
- package/dist/modules/workflow-index/workflow-dependency.controller.js.map +1 -0
- package/dist/public-api/v1/handlers/audit/audit.handler.d.ts +1 -4
- package/dist/public-api/v1/handlers/credentials/credentials.handler.d.ts +8 -11
- package/dist/public-api/v1/handlers/data-tables/data-tables.handler.d.ts +8 -8
- package/dist/public-api/v1/handlers/data-tables/data-tables.rows.handler.d.ts +10 -10
- package/dist/public-api/v1/handlers/discover/discover.handler.d.ts +10 -0
- package/dist/public-api/v1/handlers/discover/discover.handler.js +37 -0
- package/dist/public-api/v1/handlers/discover/discover.handler.js.map +1 -0
- package/dist/public-api/v1/handlers/discover/discover.service.d.ts +30 -0
- package/dist/public-api/v1/handlers/discover/discover.service.js +166 -0
- package/dist/public-api/v1/handlers/discover/discover.service.js.map +1 -0
- package/dist/public-api/v1/handlers/executions/executions.handler.d.ts +8 -8
- package/dist/public-api/v1/handlers/projects/projects.handler.d.ts +8 -32
- package/dist/public-api/v1/handlers/source-control/source-control.handler.d.ts +1 -4
- package/dist/public-api/v1/handlers/tags/tags.handler.d.ts +5 -20
- package/dist/public-api/v1/handlers/users/users.handler.ee.d.ts +5 -20
- package/dist/public-api/v1/handlers/variables/variables.handler.d.ts +4 -16
- package/dist/public-api/v1/handlers/variables/variables.handler.js +6 -19
- package/dist/public-api/v1/handlers/variables/variables.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +20 -20
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js +5 -2
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +122 -0
- package/dist/public-api/v1/shared/middlewares/global.middleware.d.ts +5 -6
- package/dist/public-api/v1/shared/middlewares/global.middleware.js +8 -14
- package/dist/public-api/v1/shared/middlewares/global.middleware.js.map +1 -1
- package/dist/public-api/v1/shared/services/pagination.service.d.ts +7 -0
- package/dist/public-api/v1/shared/services/pagination.service.js +11 -0
- package/dist/public-api/v1/shared/services/pagination.service.js.map +1 -1
- package/dist/scaling/job-processor.js +10 -0
- package/dist/scaling/job-processor.js.map +1 -1
- package/dist/scaling/scaling.types.d.ts +2 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/services/credentials-tester.service.js +2 -2
- package/dist/services/credentials-tester.service.js.map +1 -1
- package/dist/services/frontend.service.js +1 -3
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/import.service.d.ts +1 -1
- package/dist/services/import.service.js +3 -3
- package/dist/services/import.service.js.map +1 -1
- package/dist/services/project.service.ee.d.ts +4 -0
- package/dist/services/project.service.ee.js +27 -0
- package/dist/services/project.service.ee.js.map +1 -1
- package/dist/services/public-api-key.service.js +1 -0
- package/dist/services/public-api-key.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -11
- package/dist/services/user.service.js +11 -75
- package/dist/services/user.service.js.map +1 -1
- package/dist/task-runners/task-broker/task-broker.service.js +8 -0
- package/dist/task-runners/task-broker/task-broker.service.js.map +1 -1
- package/dist/task-runners/task-managers/data-request-response-builder.js +1 -0
- package/dist/task-runners/task-managers/data-request-response-builder.js.map +1 -1
- package/dist/task-runners/task-managers/data-request-response-stripper.js +1 -0
- package/dist/task-runners/task-managers/data-request-response-stripper.js.map +1 -1
- package/dist/task-runners/task-managers/local-task-requester.js +3 -1
- package/dist/task-runners/task-managers/local-task-requester.js.map +1 -1
- package/dist/task-runners/task-managers/task-requester.d.ts +1 -1
- package/dist/task-runners/task-managers/task-requester.js.map +1 -1
- package/dist/telemetry/index.d.ts +19 -0
- package/dist/telemetry/index.js +35 -0
- package/dist/telemetry/index.js.map +1 -1
- package/dist/user-management/email/node-mailer.d.ts +1 -0
- package/dist/user-management/email/node-mailer.js +23 -1
- package/dist/user-management/email/node-mailer.js.map +1 -1
- package/dist/webhooks/waiting-forms.d.ts +1 -1
- package/dist/webhooks/waiting-forms.js +32 -35
- package/dist/webhooks/waiting-forms.js.map +1 -1
- package/dist/webhooks/waiting-webhooks.d.ts +11 -3
- package/dist/webhooks/waiting-webhooks.js +47 -32
- package/dist/webhooks/waiting-webhooks.js.map +1 -1
- package/dist/webhooks/webhook-helpers.js +6 -1
- package/dist/webhooks/webhook-helpers.js.map +1 -1
- package/dist/webhooks/webhook.service.js +2 -5
- package/dist/webhooks/webhook.service.js.map +1 -1
- package/dist/workflow-helpers.d.ts +3 -2
- package/dist/workflow-helpers.js +18 -9
- package/dist/workflow-helpers.js.map +1 -1
- package/dist/workflow-runner.js +10 -2
- package/dist/workflow-runner.js.map +1 -1
- package/dist/workflows/workflow-creation.service.js +6 -6
- package/dist/workflows/workflow-creation.service.js.map +1 -1
- package/dist/workflows/workflow-execution.service.d.ts +3 -1
- package/dist/workflows/workflow-execution.service.js +16 -4
- package/dist/workflows/workflow-execution.service.js.map +1 -1
- package/dist/workflows/workflow.service.js +3 -1
- package/dist/workflows/workflow.service.js.map +1 -1
- package/package.json +22 -21
- package/templates/form-invalid-token.handlebars +131 -0
- package/templates/form-trigger-completion.handlebars +24 -3
- package/templates/form-trigger.handlebars +24 -2
|
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.McpOAuthService = exports.SUPPORTED_SCOPES = void 0;
|
|
13
13
|
const backend_common_1 = require("@n8n/backend-common");
|
|
14
|
+
const config_1 = require("@n8n/config");
|
|
14
15
|
const di_1 = require("@n8n/di");
|
|
15
16
|
const oauth_client_repository_1 = require("./database/repositories/oauth-client.repository");
|
|
16
17
|
const oauth_user_consent_repository_1 = require("./database/repositories/oauth-user-consent.repository");
|
|
@@ -18,9 +19,12 @@ const mcp_oauth_authorization_code_service_1 = require("./mcp-oauth-authorizatio
|
|
|
18
19
|
const mcp_oauth_token_service_1 = require("./mcp-oauth-token.service");
|
|
19
20
|
const oauth_session_service_1 = require("./oauth-session.service");
|
|
20
21
|
exports.SUPPORTED_SCOPES = ['tool:listWorkflows', 'tool:getWorkflowDetails'];
|
|
22
|
+
const MAX_REDIRECT_URIS = 10;
|
|
23
|
+
const MAX_REDIRECT_URI_LENGTH = 2048;
|
|
21
24
|
let McpOAuthService = class McpOAuthService {
|
|
22
|
-
constructor(logger, oauthSessionService, oauthClientRepository, tokenService, authorizationCodeService, userConsentRepository) {
|
|
25
|
+
constructor(logger, globalConfig, oauthSessionService, oauthClientRepository, tokenService, authorizationCodeService, userConsentRepository) {
|
|
23
26
|
this.logger = logger;
|
|
27
|
+
this.globalConfig = globalConfig;
|
|
24
28
|
this.oauthSessionService = oauthSessionService;
|
|
25
29
|
this.oauthClientRepository = oauthClientRepository;
|
|
26
30
|
this.tokenService = tokenService;
|
|
@@ -51,27 +55,40 @@ let McpOAuthService = class McpOAuthService {
|
|
|
51
55
|
};
|
|
52
56
|
},
|
|
53
57
|
registerClient: async (client) => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
catch (error) {
|
|
66
|
-
this.logger.error('Error registering OAuth client', {
|
|
67
|
-
error,
|
|
68
|
-
clientId: client.client_id,
|
|
69
|
-
});
|
|
70
|
-
}
|
|
58
|
+
this.validateClientRegistration(client);
|
|
59
|
+
await this.oauthClientRepository.insert({
|
|
60
|
+
id: client.client_id,
|
|
61
|
+
name: client.client_name,
|
|
62
|
+
redirectUris: client.redirect_uris,
|
|
63
|
+
grantTypes: client.grant_types,
|
|
64
|
+
clientSecret: client.client_secret ?? null,
|
|
65
|
+
clientSecretExpiresAt: client.client_secret_expires_at ?? null,
|
|
66
|
+
tokenEndpointAuthMethod: client.token_endpoint_auth_method ?? 'none',
|
|
67
|
+
});
|
|
68
|
+
await this.enforceClientLimit(client.client_id);
|
|
71
69
|
return client;
|
|
72
70
|
},
|
|
73
71
|
};
|
|
74
72
|
}
|
|
73
|
+
async enforceClientLimit(clientId) {
|
|
74
|
+
const clientCount = await this.oauthClientRepository.count();
|
|
75
|
+
if (clientCount > this.globalConfig.endpoints.mcpMaxRegisteredClients) {
|
|
76
|
+
await this.oauthClientRepository.delete({ id: clientId });
|
|
77
|
+
throw new Error(`Maximum number of registered clients (${this.globalConfig.endpoints.mcpMaxRegisteredClients}) reached`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
validateClientRegistration(client) {
|
|
81
|
+
if (client.redirect_uris) {
|
|
82
|
+
if (client.redirect_uris.length > MAX_REDIRECT_URIS) {
|
|
83
|
+
throw new Error(`redirect_uris exceeds maximum count of ${MAX_REDIRECT_URIS}`);
|
|
84
|
+
}
|
|
85
|
+
for (const uri of client.redirect_uris) {
|
|
86
|
+
if (uri.length > MAX_REDIRECT_URI_LENGTH) {
|
|
87
|
+
throw new Error(`redirect_uri exceeds maximum length of ${MAX_REDIRECT_URI_LENGTH} characters`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
75
92
|
async authorize(client, params, res) {
|
|
76
93
|
this.logger.debug('Starting OAuth authorization', { clientId: client.client_id });
|
|
77
94
|
try {
|
|
@@ -157,6 +174,7 @@ exports.McpOAuthService = McpOAuthService;
|
|
|
157
174
|
exports.McpOAuthService = McpOAuthService = __decorate([
|
|
158
175
|
(0, di_1.Service)(),
|
|
159
176
|
__metadata("design:paramtypes", [backend_common_1.Logger,
|
|
177
|
+
config_1.GlobalConfig,
|
|
160
178
|
oauth_session_service_1.OAuthSessionService,
|
|
161
179
|
oauth_client_repository_1.OAuthClientRepository,
|
|
162
180
|
mcp_oauth_token_service_1.McpOAuthTokenService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-oauth-service.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp-oauth-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAWA,wDAA6C;AAC7C,gCAAkC;AAIlC,6FAAwF;AACxF,yGAA8F;AAC9F,iGAA0F;AAC1F,uEAAiE;AACjE,mEAA8D;AAEjD,QAAA,gBAAgB,GAAG,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-oauth-service.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp-oauth-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAWA,wDAA6C;AAC7C,wCAA2C;AAC3C,gCAAkC;AAIlC,6FAAwF;AACxF,yGAA8F;AAC9F,iGAA0F;AAC1F,uEAAiE;AACjE,mEAA8D;AAEjD,QAAA,gBAAgB,GAAG,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;AAGlF,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAG7B,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAO9B,IAAM,eAAe,GAArB,MAAM,eAAe;IAC3B,YACkB,MAAc,EACd,YAA0B,EAC1B,mBAAwC,EACxC,qBAA4C,EAC5C,YAAkC,EAClC,wBAA0D,EAC1D,qBAA4C;QAN5C,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAc;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,iBAAY,GAAZ,YAAY,CAAsB;QAClC,6BAAwB,GAAxB,wBAAwB,CAAkC;QAC1D,0BAAqB,GAArB,qBAAqB,CAAuB;IAC3D,CAAC;IAEJ,IAAI,YAAY;QACf,OAAO;YACN,SAAS,EAAE,KAAK,EAAE,QAAgB,EAAmD,EAAE;gBACtF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,OAAO,SAAS,CAAC;gBAClB,CAAC;gBAED,OAAO;oBACN,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,WAAW,EAAE,MAAM,CAAC,IAAI;oBACxB,aAAa,EAAE,MAAM,CAAC,YAAY;oBAClC,WAAW,EAAE,MAAM,CAAC,UAAU;oBAC9B,0BAA0B,EAAE,MAAM,CAAC,uBAAuB;oBAC1D,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;oBAClE,GAAG,CAAC,MAAM,CAAC,qBAAqB,IAAI;wBACnC,wBAAwB,EAAE,MAAM,CAAC,qBAAqB;qBACtD,CAAC;oBACF,cAAc,EAAE,CAAC,MAAM,CAAC;oBACxB,KAAK,EAAE,wBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;oBACjC,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,SAAS;iBAClB,CAAC;YACH,CAAC;YACD,cAAc,EAAE,KAAK,EACpB,MAAkC,EACI,EAAE;gBACxC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;gBAExC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;oBACvC,EAAE,EAAE,MAAM,CAAC,SAAS;oBACpB,IAAI,EAAE,MAAM,CAAC,WAAW;oBACxB,YAAY,EAAE,MAAM,CAAC,aAAa;oBAClC,UAAU,EAAE,MAAM,CAAC,WAAW;oBAC9B,YAAY,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;oBAC1C,qBAAqB,EAAE,MAAM,CAAC,wBAAwB,IAAI,IAAI;oBAC9D,uBAAuB,EAAE,MAAM,CAAC,0BAA0B,IAAI,MAAM;iBACpE,CAAC,CAAC;gBAEH,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEhD,OAAO,MAAM,CAAC;YACf,CAAC;SACD,CAAC;IACH,CAAC;IAMO,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAC7D,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC;YACvE,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,KAAK,CACd,yCAAyC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,uBAAuB,WAAW,CACvG,CAAC;QACH,CAAC;IACF,CAAC;IAEO,0BAA0B,CAAC,MAAkC;QACpE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;gBACrD,MAAM,IAAI,KAAK,CAAC,0CAA0C,iBAAiB,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACxC,IAAI,GAAG,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBAC1C,MAAM,IAAI,KAAK,CACd,0CAA0C,uBAAuB,aAAa,CAC9E,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,SAAS,CACd,MAAkC,EAClC,MAA2B,EAC3B,GAAa;QAEb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,EAAE;gBAC3C,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;aAC3B,CAAC,CAAC;YAEH,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC3C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC7F,CAAC;IACF,CAAC;IAED,KAAK,CAAC,6BAA6B,CAClC,MAAkC,EAClC,iBAAyB;QAEzB,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAC1D,iBAAiB,EACjB,MAAM,CAAC,SAAS,CAChB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC9B,MAAkC,EAClC,iBAAyB,EACzB,aAAsB,EACtB,WAAoB;QAEpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,mCAAmC,CACzF,iBAAiB,EACjB,MAAM,CAAC,SAAS,EAChB,WAAW,CACX,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACxE,UAAU,CAAC,MAAM,EACjB,MAAM,CAAC,SAAS,CAChB,CAAC;QAEF,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CACpC,WAAW,EACX,YAAY,EACZ,MAAM,CAAC,SAAS,EAChB,UAAU,CAAC,MAAM,CACjB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;YAC3D,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,OAAO;YACN,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,YAAY;SAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,MAAkC,EAClC,YAAoB,EACpB,OAAkB;QAElB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,6BAA6B,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAa;QACpC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,MAAkC,EAClC,OAAoC;QAEpC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QAE3C,IAAI,CAAC,eAAe,IAAI,eAAe,KAAK,cAAc,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACnF,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO;YACR,CAAC;QACF,CAAC;QAED,IAAI,CAAC,eAAe,IAAI,eAAe,KAAK,eAAe,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACpF,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO;YACR,CAAC;QACF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE;YACjE,QAAQ,EAAE,MAAM,CAAC,SAAS;SAC1B,CAAC,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,aAAa,CAClB,MAAc;QAGd,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAGnF,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,MAAM,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YACnF,OAAO,eAAe,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,QAAgB;QAElC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,YAAY,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEzE,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;YACrD,QAAQ;YACR,UAAU,EAAE,MAAM,CAAC,IAAI;SACvB,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAxOY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,YAAO,GAAE;qCAGiB,uBAAM;QACA,qBAAY;QACL,2CAAmB;QACjB,+CAAqB;QAC9B,8CAAoB;QACR,uEAAgC;QACnC,qDAAqB;GARlD,eAAe,CAwO3B"}
|
|
@@ -19,7 +19,18 @@ const decorators_1 = require("@n8n/decorators");
|
|
|
19
19
|
const di_1 = require("@n8n/di");
|
|
20
20
|
const url_service_1 = require("../../services/url.service");
|
|
21
21
|
const mcp_oauth_service_1 = require("./mcp-oauth-service");
|
|
22
|
+
const mcp_constants_1 = require("./mcp.constants");
|
|
23
|
+
const mcp_settings_service_1 = require("./mcp.settings.service");
|
|
22
24
|
const mcpOAuthService = di_1.Container.get(mcp_oauth_service_1.McpOAuthService);
|
|
25
|
+
const mcpSettingsService = di_1.Container.get(mcp_settings_service_1.McpSettingsService);
|
|
26
|
+
const mcpEnabledGuard = async (_req, res, next) => {
|
|
27
|
+
const enabled = await mcpSettingsService.getEnabled();
|
|
28
|
+
if (!enabled) {
|
|
29
|
+
res.status(403).json({ error: mcp_constants_1.MCP_ACCESS_DISABLED_ERROR_MESSAGE });
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
next();
|
|
33
|
+
};
|
|
23
34
|
let McpOAuthController = class McpOAuthController {
|
|
24
35
|
constructor(urlService) {
|
|
25
36
|
this.urlService = urlService;
|
|
@@ -71,24 +82,28 @@ McpOAuthController.routers = [
|
|
|
71
82
|
path: '/mcp-oauth/register',
|
|
72
83
|
router: (0, register_js_1.clientRegistrationHandler)({ clientsStore: mcpOAuthService.clientsStore }),
|
|
73
84
|
skipAuth: true,
|
|
85
|
+
middlewares: [mcpEnabledGuard],
|
|
74
86
|
ipRateLimit: { limit: 10, windowMs: 5 * constants_1.Time.minutes.toMilliseconds },
|
|
75
87
|
},
|
|
76
88
|
{
|
|
77
89
|
path: '/mcp-oauth/authorize',
|
|
78
90
|
router: (0, authorize_js_1.authorizationHandler)({ provider: mcpOAuthService }),
|
|
79
91
|
skipAuth: true,
|
|
92
|
+
middlewares: [mcpEnabledGuard],
|
|
80
93
|
ipRateLimit: { limit: 50, windowMs: 5 * constants_1.Time.minutes.toMilliseconds },
|
|
81
94
|
},
|
|
82
95
|
{
|
|
83
96
|
path: '/mcp-oauth/token',
|
|
84
97
|
router: (0, token_js_1.tokenHandler)({ provider: mcpOAuthService }),
|
|
85
98
|
skipAuth: true,
|
|
99
|
+
middlewares: [mcpEnabledGuard],
|
|
86
100
|
ipRateLimit: { limit: 20, windowMs: 5 * constants_1.Time.minutes.toMilliseconds },
|
|
87
101
|
},
|
|
88
102
|
{
|
|
89
103
|
path: '/mcp-oauth/revoke',
|
|
90
104
|
router: (0, revoke_js_1.revocationHandler)({ provider: mcpOAuthService }),
|
|
91
105
|
skipAuth: true,
|
|
106
|
+
middlewares: [mcpEnabledGuard],
|
|
92
107
|
ipRateLimit: { limit: 30, windowMs: 5 * constants_1.Time.minutes.toMilliseconds },
|
|
93
108
|
},
|
|
94
109
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.oauth.controller.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.oauth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8FAAmG;AACnG,4FAAuG;AACvG,wFAA6F;AAC7F,sFAAuF;AACvF,8CAAsC;AACtC,gDAA0F;AAC1F,gCAAoC;AAGpC,wDAAoD;AAEpD,2DAAwE;
|
|
1
|
+
{"version":3,"file":"mcp.oauth.controller.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.oauth.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { Logger } from '@n8n/backend-common';
|
|
3
3
|
import { ExecutionsConfig, GlobalConfig } from '@n8n/config';
|
|
4
|
-
import { ExecutionRepository, ProjectRepository, SharedWorkflowRepository, User } from '@n8n/db';
|
|
4
|
+
import { ExecutionRepository, FolderRepository, ProjectRepository, SharedWorkflowRepository, User } from '@n8n/db';
|
|
5
5
|
import { InstanceSettings } from 'n8n-core';
|
|
6
6
|
import { type IDeferredPromise, type IRun } from 'n8n-workflow';
|
|
7
7
|
import { WorkflowBuilderToolsService } from './tools/workflow-builder/workflow-builder-tools.service';
|
|
@@ -33,10 +33,11 @@ export declare class McpService {
|
|
|
33
33
|
private readonly workflowCreationService;
|
|
34
34
|
private readonly nodeTypes;
|
|
35
35
|
private readonly projectRepository;
|
|
36
|
+
private readonly folderRepository;
|
|
36
37
|
private readonly sharedWorkflowRepository;
|
|
37
38
|
private readonly executionRepository;
|
|
38
39
|
private readonly pendingResponses;
|
|
39
|
-
constructor(logger: Logger, executionsConfig: ExecutionsConfig, _instanceSettings: InstanceSettings, workflowFinderService: WorkflowFinderService, workflowService: WorkflowService, urlService: UrlService, credentialsService: CredentialsService, activeExecutions: ActiveExecutions, globalConfig: GlobalConfig, telemetry: Telemetry, workflowRunner: WorkflowRunner, roleService: RoleService, projectService: ProjectService, workflowBuilderToolsService: WorkflowBuilderToolsService, workflowCreationService: WorkflowCreationService, nodeTypes: NodeTypes, projectRepository: ProjectRepository, sharedWorkflowRepository: SharedWorkflowRepository, executionRepository: ExecutionRepository);
|
|
40
|
+
constructor(logger: Logger, executionsConfig: ExecutionsConfig, _instanceSettings: InstanceSettings, workflowFinderService: WorkflowFinderService, workflowService: WorkflowService, urlService: UrlService, credentialsService: CredentialsService, activeExecutions: ActiveExecutions, globalConfig: GlobalConfig, telemetry: Telemetry, workflowRunner: WorkflowRunner, roleService: RoleService, projectService: ProjectService, workflowBuilderToolsService: WorkflowBuilderToolsService, workflowCreationService: WorkflowCreationService, nodeTypes: NodeTypes, projectRepository: ProjectRepository, folderRepository: FolderRepository, sharedWorkflowRepository: SharedWorkflowRepository, executionRepository: ExecutionRepository);
|
|
40
41
|
getServer(user: User): Promise<McpServer>;
|
|
41
42
|
private registerBuilderTools;
|
|
42
43
|
get isQueueMode(): boolean;
|
|
@@ -51,6 +51,8 @@ const n8n_core_1 = require("n8n-core");
|
|
|
51
51
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
52
52
|
const execute_workflow_tool_1 = require("./tools/execute-workflow.tool");
|
|
53
53
|
const get_execution_tool_1 = require("./tools/get-execution.tool");
|
|
54
|
+
const search_folders_tool_1 = require("./tools/search-folders.tool");
|
|
55
|
+
const search_projects_tool_1 = require("./tools/search-projects.tool");
|
|
54
56
|
const get_workflow_details_tool_1 = require("./tools/get-workflow-details.tool");
|
|
55
57
|
const publish_workflow_tool_1 = require("./tools/publish-workflow.tool");
|
|
56
58
|
const search_workflows_tool_1 = require("./tools/search-workflows.tool");
|
|
@@ -78,7 +80,7 @@ const workflow_creation_service_1 = require("../../workflows/workflow-creation.s
|
|
|
78
80
|
const workflow_finder_service_1 = require("../../workflows/workflow-finder.service");
|
|
79
81
|
const workflow_service_1 = require("../../workflows/workflow.service");
|
|
80
82
|
let McpService = class McpService {
|
|
81
|
-
constructor(logger, executionsConfig, _instanceSettings, workflowFinderService, workflowService, urlService, credentialsService, activeExecutions, globalConfig, telemetry, workflowRunner, roleService, projectService, workflowBuilderToolsService, workflowCreationService, nodeTypes, projectRepository, sharedWorkflowRepository, executionRepository) {
|
|
83
|
+
constructor(logger, executionsConfig, _instanceSettings, workflowFinderService, workflowService, urlService, credentialsService, activeExecutions, globalConfig, telemetry, workflowRunner, roleService, projectService, workflowBuilderToolsService, workflowCreationService, nodeTypes, projectRepository, folderRepository, sharedWorkflowRepository, executionRepository) {
|
|
82
84
|
this.logger = logger;
|
|
83
85
|
this.executionsConfig = executionsConfig;
|
|
84
86
|
this.workflowFinderService = workflowFinderService;
|
|
@@ -95,6 +97,7 @@ let McpService = class McpService {
|
|
|
95
97
|
this.workflowCreationService = workflowCreationService;
|
|
96
98
|
this.nodeTypes = nodeTypes;
|
|
97
99
|
this.projectRepository = projectRepository;
|
|
100
|
+
this.folderRepository = folderRepository;
|
|
98
101
|
this.sharedWorkflowRepository = sharedWorkflowRepository;
|
|
99
102
|
this.executionRepository = executionRepository;
|
|
100
103
|
this.pendingResponses = new Map();
|
|
@@ -140,12 +143,16 @@ let McpService = class McpService {
|
|
|
140
143
|
server.registerTool(validateTool.name, validateTool.config, validateTool.handler);
|
|
141
144
|
const createTool = (0, create_workflow_from_code_tool_1.createCreateWorkflowFromCodeTool)(user, this.workflowCreationService, this.urlService, this.telemetry, this.nodeTypes, this.credentialsService, this.projectRepository);
|
|
142
145
|
server.registerTool(createTool.name, createTool.config, createTool.handler);
|
|
146
|
+
const searchProjectsTool = (0, search_projects_tool_1.createSearchProjectsTool)(user, this.projectRepository, this.telemetry);
|
|
147
|
+
server.registerTool(searchProjectsTool.name, searchProjectsTool.config, searchProjectsTool.handler);
|
|
148
|
+
const searchFoldersTool = (0, search_folders_tool_1.createSearchFoldersTool)(user, this.folderRepository, this.projectService, this.telemetry);
|
|
149
|
+
server.registerTool(searchFoldersTool.name, searchFoldersTool.config, searchFoldersTool.handler);
|
|
143
150
|
const archiveTool = (0, delete_workflow_tool_1.createArchiveWorkflowTool)(user, this.workflowService, this.telemetry);
|
|
144
151
|
server.registerTool(archiveTool.name, archiveTool.config, archiveTool.handler);
|
|
145
152
|
const updateTool = (0, update_workflow_tool_1.createUpdateWorkflowTool)(user, this.workflowFinderService, this.workflowService, this.urlService, this.telemetry, this.nodeTypes, this.credentialsService, this.sharedWorkflowRepository);
|
|
146
153
|
server.registerTool(updateTool.name, updateTool.config, updateTool.handler);
|
|
147
154
|
server.resource('workflow-sdk-reference', 'n8n://workflow-sdk/reference', {
|
|
148
|
-
description: 'n8n Workflow SDK reference — patterns, expressions, and rules for building workflows',
|
|
155
|
+
description: 'n8n Workflow SDK reference — patterns, expressions, and rules for building workflows. Get this FIRST before building workflows to learn the SDK.',
|
|
149
156
|
}, async () => ({
|
|
150
157
|
contents: [
|
|
151
158
|
{
|
|
@@ -156,14 +163,7 @@ let McpService = class McpService {
|
|
|
156
163
|
],
|
|
157
164
|
}));
|
|
158
165
|
const sdkRefTool = (0, get_workflow_sdk_reference_tool_1.createGetWorkflowSdkReferenceTool)(user, this.telemetry);
|
|
159
|
-
|
|
160
|
-
registeredSdkRefTool.disable();
|
|
161
|
-
server.server.oninitialized = () => {
|
|
162
|
-
const capabilities = server.server.getClientCapabilities();
|
|
163
|
-
if (!capabilities || !('resources' in capabilities)) {
|
|
164
|
-
registeredSdkRefTool.enable();
|
|
165
|
-
}
|
|
166
|
-
};
|
|
166
|
+
server.registerTool(sdkRefTool.name, sdkRefTool.config, sdkRefTool.handler);
|
|
167
167
|
}
|
|
168
168
|
get isQueueMode() {
|
|
169
169
|
return this.executionsConfig.mode === 'queue';
|
|
@@ -240,6 +240,7 @@ exports.McpService = McpService = __decorate([
|
|
|
240
240
|
workflow_creation_service_1.WorkflowCreationService,
|
|
241
241
|
node_types_1.NodeTypes,
|
|
242
242
|
db_1.ProjectRepository,
|
|
243
|
+
db_1.FolderRepository,
|
|
243
244
|
db_1.SharedWorkflowRepository,
|
|
244
245
|
db_1.ExecutionRepository])
|
|
245
246
|
], McpService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA6C;AAC7C,wCAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,21 @@ import type { WorkflowFinderService } from '../../../workflows/workflow-finder.s
|
|
|
6
6
|
declare const inputSchema: z.ZodObject<{
|
|
7
7
|
workflowId: z.ZodString;
|
|
8
8
|
executionId: z.ZodString;
|
|
9
|
+
includeData: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
nodeNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
11
|
+
truncateData: z.ZodOptional<z.ZodNumber>;
|
|
9
12
|
}, "strip", z.ZodTypeAny, {
|
|
10
13
|
executionId: string;
|
|
11
14
|
workflowId: string;
|
|
15
|
+
includeData?: boolean | undefined;
|
|
16
|
+
nodeNames?: string[] | undefined;
|
|
17
|
+
truncateData?: number | undefined;
|
|
12
18
|
}, {
|
|
13
19
|
executionId: string;
|
|
14
20
|
workflowId: string;
|
|
21
|
+
includeData?: boolean | undefined;
|
|
22
|
+
nodeNames?: string[] | undefined;
|
|
23
|
+
truncateData?: number | undefined;
|
|
15
24
|
}>;
|
|
16
25
|
export declare const createGetExecutionTool: (user: User, executionRepository: ExecutionRepository, workflowFinderService: WorkflowFinderService, telemetry: Telemetry) => ToolDefinition<typeof inputSchema.shape>;
|
|
17
26
|
export {};
|
|
@@ -12,6 +12,20 @@ const workflow_validation_utils_1 = require("./workflow-validation.utils");
|
|
|
12
12
|
const inputSchema = zod_1.default.object({
|
|
13
13
|
workflowId: zod_1.default.string().describe('The ID of the workflow the execution belongs to'),
|
|
14
14
|
executionId: zod_1.default.string().describe('The ID of the execution to retrieve'),
|
|
15
|
+
includeData: zod_1.default
|
|
16
|
+
.boolean()
|
|
17
|
+
.optional()
|
|
18
|
+
.describe('Whether to include the full execution result data. Defaults to false (metadata only). Set to true to include node inputs/outputs.'),
|
|
19
|
+
nodeNames: zod_1.default
|
|
20
|
+
.array(zod_1.default.string())
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('When includeData is true, return data only for these node names. If omitted, data for all nodes is included.'),
|
|
23
|
+
truncateData: zod_1.default
|
|
24
|
+
.number()
|
|
25
|
+
.int()
|
|
26
|
+
.positive()
|
|
27
|
+
.optional()
|
|
28
|
+
.describe('When includeData is true, limit the number of data items returned per node output to this value. If omitted, all items are returned.'),
|
|
15
29
|
});
|
|
16
30
|
const outputSchema = {
|
|
17
31
|
execution: zod_1.default
|
|
@@ -29,13 +43,16 @@ const outputSchema = {
|
|
|
29
43
|
.passthrough()
|
|
30
44
|
.nullable()
|
|
31
45
|
.describe('Execution metadata, or null if an error occurred'),
|
|
32
|
-
data: zod_1.default
|
|
46
|
+
data: zod_1.default
|
|
47
|
+
.unknown()
|
|
48
|
+
.optional()
|
|
49
|
+
.describe('Execution result data (only present when includeData is true)'),
|
|
33
50
|
error: zod_1.default.string().optional().describe('Error message if the request failed'),
|
|
34
51
|
};
|
|
35
52
|
const createGetExecutionTool = (user, executionRepository, workflowFinderService, telemetry) => ({
|
|
36
53
|
name: 'get_execution',
|
|
37
54
|
config: {
|
|
38
|
-
description: 'Get
|
|
55
|
+
description: 'Get execution details by execution ID and workflow ID. By default returns metadata only. Set includeData to true to include node execution data, optionally filtered by nodeNames and truncated by truncateData.',
|
|
39
56
|
inputSchema: inputSchema.shape,
|
|
40
57
|
outputSchema,
|
|
41
58
|
annotations: {
|
|
@@ -46,17 +63,26 @@ const createGetExecutionTool = (user, executionRepository, workflowFinderService
|
|
|
46
63
|
openWorldHint: false,
|
|
47
64
|
},
|
|
48
65
|
},
|
|
49
|
-
handler: async ({ workflowId, executionId }) => {
|
|
66
|
+
handler: async ({ workflowId, executionId, includeData, nodeNames, truncateData, }) => {
|
|
50
67
|
const telemetryPayload = {
|
|
51
68
|
user_id: user.id,
|
|
52
69
|
tool_name: 'get_execution',
|
|
53
|
-
parameters: { workflowId, executionId },
|
|
70
|
+
parameters: { workflowId, executionId, includeData, nodeNames, truncateData },
|
|
54
71
|
};
|
|
55
72
|
try {
|
|
56
73
|
await (0, workflow_validation_utils_1.getMcpWorkflow)(workflowId, user, ['workflow:read'], workflowFinderService);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
74
|
+
let execution;
|
|
75
|
+
let executionData;
|
|
76
|
+
if (includeData) {
|
|
77
|
+
const fullExecution = await executionRepository.findWithUnflattenedData(executionId, [
|
|
78
|
+
workflowId,
|
|
79
|
+
]);
|
|
80
|
+
execution = fullExecution;
|
|
81
|
+
executionData = fullExecution?.data ?? null;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
execution = await executionRepository.findIfAccessible(executionId, [workflowId]);
|
|
85
|
+
}
|
|
60
86
|
if (!execution) {
|
|
61
87
|
const executionExists = await executionRepository.existsBy({ id: executionId });
|
|
62
88
|
if (!executionExists) {
|
|
@@ -64,20 +90,30 @@ const createGetExecutionTool = (user, executionRepository, workflowFinderService
|
|
|
64
90
|
}
|
|
65
91
|
throw new mcp_errors_1.WorkflowAccessError(`Execution '${executionId}' does not belong to workflow '${workflowId}'`, 'execution_workflow_mismatch');
|
|
66
92
|
}
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
waitTill: execution.waitTill?.toISOString() ?? null,
|
|
78
|
-
},
|
|
79
|
-
data: execution.data,
|
|
93
|
+
const executionMeta = {
|
|
94
|
+
id: execution.id,
|
|
95
|
+
workflowId: execution.workflowId,
|
|
96
|
+
mode: execution.mode,
|
|
97
|
+
status: execution.status,
|
|
98
|
+
startedAt: execution.startedAt?.toISOString() ?? null,
|
|
99
|
+
stoppedAt: execution.stoppedAt?.toISOString() ?? null,
|
|
100
|
+
retryOf: execution.retryOf ?? null,
|
|
101
|
+
retrySuccessId: execution.retrySuccessId ?? null,
|
|
102
|
+
waitTill: execution.waitTill?.toISOString() ?? null,
|
|
80
103
|
};
|
|
104
|
+
let filteredData;
|
|
105
|
+
if (executionData) {
|
|
106
|
+
filteredData = executionData;
|
|
107
|
+
if (nodeNames !== undefined || truncateData) {
|
|
108
|
+
filteredData = filterExecutionData(filteredData, nodeNames, truncateData);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else if (executionData === null) {
|
|
112
|
+
filteredData = null;
|
|
113
|
+
}
|
|
114
|
+
const output = filteredData !== undefined
|
|
115
|
+
? { execution: executionMeta, data: filteredData }
|
|
116
|
+
: { execution: executionMeta };
|
|
81
117
|
telemetryPayload.results = {
|
|
82
118
|
success: true,
|
|
83
119
|
data: {
|
|
@@ -123,4 +159,43 @@ const createGetExecutionTool = (user, executionRepository, workflowFinderService
|
|
|
123
159
|
},
|
|
124
160
|
});
|
|
125
161
|
exports.createGetExecutionTool = createGetExecutionTool;
|
|
162
|
+
function filterExecutionData(data, nodeNames, truncateData) {
|
|
163
|
+
const filtered = { ...data, resultData: { ...data.resultData } };
|
|
164
|
+
let runData = filtered.resultData.runData ?? {};
|
|
165
|
+
if (nodeNames !== undefined) {
|
|
166
|
+
const filteredRunData = {};
|
|
167
|
+
for (const name of nodeNames) {
|
|
168
|
+
if (name in runData) {
|
|
169
|
+
filteredRunData[name] = runData[name];
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
runData = filteredRunData;
|
|
173
|
+
if (filtered.resultData.pinData) {
|
|
174
|
+
const filteredPinData = {};
|
|
175
|
+
for (const name of nodeNames) {
|
|
176
|
+
if (name in filtered.resultData.pinData) {
|
|
177
|
+
filteredPinData[name] = filtered.resultData.pinData[name];
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
filtered.resultData.pinData = filteredPinData;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (truncateData) {
|
|
184
|
+
const truncated = {};
|
|
185
|
+
for (const [nodeName, taskDataArray] of Object.entries(runData)) {
|
|
186
|
+
truncated[nodeName] = taskDataArray.map((taskData) => {
|
|
187
|
+
if (!taskData.data)
|
|
188
|
+
return taskData;
|
|
189
|
+
const truncatedConnections = {};
|
|
190
|
+
for (const [connType, outputs] of Object.entries(taskData.data)) {
|
|
191
|
+
truncatedConnections[connType] = outputs.map((items) => items ? items.slice(0, truncateData) : items);
|
|
192
|
+
}
|
|
193
|
+
return { ...taskData, data: truncatedConnections };
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
runData = truncated;
|
|
197
|
+
}
|
|
198
|
+
filtered.resultData.runData = runData;
|
|
199
|
+
return filtered;
|
|
200
|
+
}
|
|
126
201
|
//# sourceMappingURL=get-execution.tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-execution.tool.js","sourceRoot":"","sources":["../../../../src/modules/mcp/tools/get-execution.tool.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"get-execution.tool.js","sourceRoot":"","sources":["../../../../src/modules/mcp/tools/get-execution.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FolderRepository, User } from '@n8n/db';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import type { ToolDefinition } from '../mcp.types';
|
|
4
|
+
import type { ProjectService } from '../../../services/project.service.ee';
|
|
5
|
+
import type { Telemetry } from '../../../telemetry';
|
|
6
|
+
declare const inputSchema: {
|
|
7
|
+
projectId: z.ZodString;
|
|
8
|
+
query: z.ZodOptional<z.ZodString>;
|
|
9
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
};
|
|
11
|
+
export declare const createSearchFoldersTool: (user: User, folderRepository: FolderRepository, projectService: ProjectService, telemetry: Telemetry) => ToolDefinition<typeof inputSchema>;
|
|
12
|
+
export {};
|