n8n
Version:
n8n Workflow Automation Tool
80 lines • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BUILDER_TOOLS = exports.TOOLS_BY_SCOPE = void 0;
exports.getAllowedToolNames = getAllowedToolNames;
const api_types_1 = require("@n8n/api-types");
exports.TOOLS_BY_SCOPE = {
'workflow:read': [
'search_workflows',
'get_workflow_details',
'get_workflow_history',
'get_workflow_version',
'search_nodes',
'get_node_types',
'get_workflow_best_practices',
'get_sdk_reference',
'validate_workflow',
'validate_node_config',
],
'workflow:write': [
'create_workflow_from_code',
'update_workflow',
'archive_workflow',
'restore_workflow_version',
'publish_workflow',
'unpublish_workflow',
'search_nodes',
'get_node_types',
'get_workflow_best_practices',
'get_sdk_reference',
'validate_workflow',
'validate_node_config',
],
'workflow:execute': ['execute_workflow', 'test_workflow', 'prepare_test_pin_data'],
'execution:read': ['get_execution', 'search_executions'],
'credential:read': ['list_credentials', 'list_n8n_connect_services', 'explore_node_resources'],
'dataTable:read': ['search_data_tables'],
'dataTable:write': [
'search_data_tables',
'create_data_table',
'rename_data_table',
'add_data_table_column',
'delete_data_table_column',
'rename_data_table_column',
'add_data_table_rows',
],
'project:read': ['search_projects', 'search_folders'],
'tag:read': ['list_tags'],
};
exports.BUILDER_TOOLS = new Set([
'search_nodes',
'get_node_types',
'get_workflow_best_practices',
'get_sdk_reference',
'validate_workflow',
'validate_node_config',
'create_workflow_from_code',
'update_workflow',
'archive_workflow',
'restore_workflow_version',
'explore_node_resources',
'search_projects',
'search_folders',
]);
function isMcpScope(scope) {
return api_types_1.MCP_INSTANCE_SCOPES.includes(scope);
}
function getAllowedToolNames(grantedScopes) {
if (grantedScopes === undefined)
return undefined;
const allowed = new Set();
for (const scope of grantedScopes) {
if (!isMcpScope(scope))
continue;
for (const toolName of exports.TOOLS_BY_SCOPE[scope]) {
allowed.add(toolName);
}
}
return allowed;
}
//# sourceMappingURL=mcp-scopes.js.map