mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-01-30 06:22:04 +00:00
* 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>
61 lines
3.7 KiB
JavaScript
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
|