fix: integrate webhook autofixer with MCP server and improve template sanitization

- Register n8n_autofix_workflow handler in MCP server
- Export n8nAutofixWorkflowDoc in tool documentation indices
- Use normalizeNodeType utility in workflow validator for consistent type handling
- Add defensive null checks in template sanitizer to prevent runtime errors
- Update workflow validator test to handle new error message formats

These changes complete the webhook autofixer integration, ensuring the tool
is properly exposed through the MCP server and documentation system.

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
czlonkowski
2025-09-24 11:43:24 +02:00
parent 3b469d0afe
commit 4390b72d2a
7 changed files with 49 additions and 36 deletions

View File

@@ -516,6 +516,7 @@ export class N8NDocumentationMCPServer {
case 'n8n_update_full_workflow':
case 'n8n_delete_workflow':
case 'n8n_validate_workflow':
case 'n8n_autofix_workflow':
case 'n8n_get_execution':
case 'n8n_delete_execution':
validationResult = ToolValidation.validateWorkflowId(args);
@@ -828,6 +829,11 @@ export class N8NDocumentationMCPServer {
await this.ensureInitialized();
if (!this.repository) throw new Error('Repository not initialized');
return n8nHandlers.handleValidateWorkflow(args, this.repository, this.instanceContext);
case 'n8n_autofix_workflow':
this.validateToolParams(name, args, ['id']);
await this.ensureInitialized();
if (!this.repository) throw new Error('Repository not initialized');
return n8nHandlers.handleAutofixWorkflow(args, this.repository, this.instanceContext);
case 'n8n_trigger_webhook_workflow':
this.validateToolParams(name, args, ['webhookUrl']);
return n8nHandlers.handleTriggerWebhookWorkflow(args, this.instanceContext);

View File

@@ -43,6 +43,7 @@ import {
n8nDeleteWorkflowDoc,
n8nListWorkflowsDoc,
n8nValidateWorkflowDoc,
n8nAutofixWorkflowDoc,
n8nTriggerWebhookWorkflowDoc,
n8nGetExecutionDoc,
n8nListExecutionsDoc,
@@ -98,6 +99,7 @@ export const toolsDocumentation: Record<string, ToolDocumentation> = {
n8n_delete_workflow: n8nDeleteWorkflowDoc,
n8n_list_workflows: n8nListWorkflowsDoc,
n8n_validate_workflow: n8nValidateWorkflowDoc,
n8n_autofix_workflow: n8nAutofixWorkflowDoc,
n8n_trigger_webhook_workflow: n8nTriggerWebhookWorkflowDoc,
n8n_get_execution: n8nGetExecutionDoc,
n8n_list_executions: n8nListExecutionsDoc,

View File

@@ -8,6 +8,7 @@ export { n8nUpdatePartialWorkflowDoc } from './n8n-update-partial-workflow';
export { n8nDeleteWorkflowDoc } from './n8n-delete-workflow';
export { n8nListWorkflowsDoc } from './n8n-list-workflows';
export { n8nValidateWorkflowDoc } from './n8n-validate-workflow';
export { n8nAutofixWorkflowDoc } from './n8n-autofix-workflow';
export { n8nTriggerWebhookWorkflowDoc } from './n8n-trigger-webhook-workflow';
export { n8nGetExecutionDoc } from './n8n-get-execution';
export { n8nListExecutionsDoc } from './n8n-list-executions';