Files
n8n-mcp/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.js
Romuald Członkowski b92e511463 perf: optimize workflow tool responses for token efficiency (v2.29.0) (#479)
* perf: optimize workflow tool responses for token efficiency (v2.29.0)

Reduce response sizes by 75-90% for 4 workflow management tools:

- n8n_update_partial_workflow: Returns {id, name, active, operationsApplied}
- n8n_create_workflow: Returns {id, name, active, nodeCount}
- n8n_update_full_workflow: Returns {id, name, active, nodeCount}
- n8n_delete_workflow: Returns {id, name, deleted: true}

AI agents can use n8n_get_workflow with mode 'structure' if they need
to verify the current workflow state after operations.

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update tests and add nodeCount to partial update response

- Fix handleCreateWorkflow test to expect minimal response
- Fix handleDeleteWorkflow test to expect minimal response
- Add nodeCount to n8n_update_partial_workflow response for consistency
- Update documentation and CHANGELOG

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update handlers-workflow-diff tests for minimal response

Update 3 more tests that expected full workflow in response:
- should apply diff operations successfully
- should activate workflow after successful update
- should deactivate workflow after successful update

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update integration tests to use minimal response format

Integration tests now verify minimal response format and use
client.getWorkflow() to fetch actual workflow state for verification.

Conceived by Romuald Czlonkowski - www.aiadvisors.pl/en

* fix: update create/update workflow integration tests for minimal response

Integration tests now verify minimal response and use client.getWorkflow()
to fetch actual workflow state for detailed verification.

Conceived by Romuald Czlonkowski - www.aiadvisors.pl/en

* fix: add type assertions to fix TypeScript errors in tests

Conceived by Romuald Czlonkowski - www.aiadvisors.pl/en

---------

Co-authored-by: Romuald Członkowski <romualdczlonkowski@MacBook-Pro-Romuald.local>
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-09 16:36:17 +01:00

61 lines
3.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.n8nUpdateFullWorkflowDoc = void 0;
exports.n8nUpdateFullWorkflowDoc = {
name: 'n8n_update_full_workflow',
category: 'workflow_management',
essentials: {
description: 'Full workflow update. Requires complete nodes[] and connections{}. For incremental use n8n_update_partial_workflow.',
keyParameters: ['id', 'nodes', 'connections'],
example: 'n8n_update_full_workflow({id: "wf_123", nodes: [...], connections: {...}})',
performance: 'Network-dependent',
tips: [
'Include intent parameter in every call - helps to return better responses',
'Must provide complete workflow',
'Use update_partial for small changes',
'Validate before updating'
]
},
full: {
description: 'Performs a complete workflow update by replacing the entire workflow definition. Requires providing the complete nodes array and connections object, even for small changes. This is a full replacement operation - any nodes or connections not included will be removed.',
parameters: {
id: { type: 'string', required: true, description: 'Workflow ID to update' },
name: { type: 'string', description: 'New workflow name (optional)' },
nodes: { type: 'array', description: 'Complete array of workflow nodes (required if modifying structure)' },
connections: { type: 'object', description: 'Complete connections object (required if modifying structure)' },
settings: { type: 'object', description: 'Workflow settings to update (timezone, error handling, etc.)' },
intent: { type: 'string', description: 'Intent of the change - helps to return better response. Include in every tool call. Example: "Migrate workflow to new node versions".' }
},
returns: 'Minimal summary (id, name, active, nodeCount) for token efficiency. Use n8n_get_workflow with mode "structure" to verify current state if needed.',
examples: [
'n8n_update_full_workflow({id: "abc", intent: "Rename workflow for clarity", name: "New Name"}) - Rename with intent',
'n8n_update_full_workflow({id: "abc", name: "New Name"}) - Rename only',
'n8n_update_full_workflow({id: "xyz", intent: "Add error handling nodes", nodes: [...], connections: {...}}) - Full structure update',
'const wf = n8n_get_workflow({id}); wf.nodes.push(newNode); n8n_update_full_workflow({...wf, intent: "Add data processing node"}); // Add node'
],
useCases: [
'Major workflow restructuring',
'Bulk node updates',
'Workflow imports/cloning',
'Complete workflow replacement',
'Settings changes'
],
performance: 'Network-dependent - typically 200-500ms. Larger workflows take longer. Consider update_partial for better performance.',
bestPractices: [
'Always include intent parameter - it helps provide better responses',
'Get workflow first, modify, then update',
'Validate with validate_workflow before updating',
'Use update_partial for small changes',
'Test updates in non-production first'
],
pitfalls: [
'Requires N8N_API_URL and N8N_API_KEY configured',
'Must include ALL nodes/connections',
'Missing nodes will be deleted',
'Can break active workflows',
'No partial updates - use update_partial instead'
],
relatedTools: ['n8n_get_workflow', 'n8n_update_partial_workflow', 'validate_workflow', 'n8n_create_workflow']
}
};
//# sourceMappingURL=n8n-update-full-workflow.js.map