AutomationFlowsGeneral › Manage n8n Workflows via Webhooks

Manage n8n Workflows via Webhooks

Original n8n title: 🔧 Mcp Helper - Gestión De Workflows

🔧 MCP Helper - Gestión de Workflows. Uses httpRequest. Webhook trigger; 17 nodes.

Webhook trigger★★★★☆ complexity17 nodesHTTP Request
General Trigger: Webhook Nodes: 17 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "\ud83d\udd27 MCP Helper - Gesti\u00f3n de Workflows",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "GET",
        "path": "mcp-helper/list",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "webhook-list",
      "name": "\ud83d\udccb Webhook: Listar Workflows",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        260,
        100
      ]
    },
    {
      "parameters": {
        "httpMethod": "GET",
        "path": "mcp-helper/get/{{$request.params.id}}",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "webhook-get",
      "name": "\ud83d\udcc4 Webhook: Obtener Workflow",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        260,
        300
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "mcp-helper/create",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "webhook-create",
      "name": "\u2795 Webhook: Crear Workflow",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        260,
        500
      ]
    },
    {
      "parameters": {
        "httpMethod": "PUT",
        "path": "mcp-helper/update/{{$request.params.id}}",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "webhook-update",
      "name": "\u270f\ufe0f Webhook: Actualizar Workflow",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        260,
        700
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "mcp-helper/activate/{{$request.params.id}}",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "webhook-activate",
      "name": "\ud83d\udfe2 Webhook: Activar Workflow",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        260,
        900
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "mcp-helper/execute/{{$request.params.id}}",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "webhook-execute",
      "name": "\u25b6\ufe0f Webhook: Ejecutar Workflow",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        260,
        1100
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "={{ $env.N8N_BASE_URL || 'http://localhost:5678' }}/api/v1/workflows",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        },
        "options": {}
      },
      "id": "http-list",
      "name": "API: Listar Workflows",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        500,
        100
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "GET",
        "url": "={{ $env.N8N_BASE_URL || 'http://localhost:5678' }}/api/v1/workflows/{{ $json.params?.id || $json.query?.id }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "options": {}
      },
      "id": "http-get",
      "name": "API: Obtener Workflow",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        500,
        300
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $env.N8N_BASE_URL || 'http://localhost:5678' }}/api/v1/workflows",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": []
        },
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify($json.body) }}",
        "options": {}
      },
      "id": "http-create",
      "name": "API: Crear Workflow",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        500,
        500
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "PUT",
        "url": "={{ $env.N8N_BASE_URL || 'http://localhost:5678' }}/api/v1/workflows/{{ $json.params?.id || $json.query?.id }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify($json.body) }}",
        "options": {}
      },
      "id": "http-update",
      "name": "API: Actualizar Workflow",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        500,
        700
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $env.N8N_BASE_URL || 'http://localhost:5678' }}/api/v1/workflows/{{ $json.params?.id || $json.query?.id }}/activate",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "options": {}
      },
      "id": "http-activate",
      "name": "API: Activar Workflow",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        500,
        900
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $env.N8N_BASE_URL || 'http://localhost:5678' }}/api/v1/executions",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({ workflowId: $json.params?.id || $json.query?.id, data: $json.body || {} }) }}",
        "options": {}
      },
      "id": "http-execute",
      "name": "API: Ejecutar Workflow",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        500,
        1100
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "// Formatear respuesta de lista\nconst workflows = $input.first().json.data || [];\n\nreturn {\n  json: {\n    success: true,\n    count: workflows.length,\n    active: workflows.filter(w => w.active).length,\n    inactive: workflows.filter(w => !w.active).length,\n    workflows: workflows.map(w => ({\n      id: w.id,\n      name: w.name,\n      active: w.active,\n      createdAt: w.createdAt,\n      updatedAt: w.updatedAt\n    }))\n  }\n};"
      },
      "id": "code-format-list",
      "name": "Formatear Lista",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        740,
        100
      ]
    },
    {
      "parameters": {
        "jsCode": "// Formatear respuesta de operaci\u00f3n\nconst data = $input.first().json;\n\nreturn {\n  json: {\n    success: true,\n    message: 'Operaci\u00f3n completada',\n    data: data\n  }\n};"
      },
      "id": "code-format-response",
      "name": "Formatear Respuesta",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        740,
        500
      ]
    },
    {
      "parameters": {
        "httpMethod": "GET",
        "path": "mcp-helper/audit/{{$request.params.id}}",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "webhook-audit",
      "name": "\ud83d\udd0d Webhook: Auditar Workflow",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        260,
        1300
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "={{ $env.N8N_BASE_URL || 'http://localhost:5678' }}/api/v1/workflows/{{ $json.params?.id || $json.query?.id }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "options": {}
      },
      "id": "http-audit-get",
      "name": "API: Obtener para Auditar",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        500,
        1300
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "// Auditar workflow\nconst workflow = $input.first().json;\nconst nodes = workflow.nodes || [];\n\nconst nodeTypes = {};\nconst triggers = [];\nconst aiNodes = [];\nconst dbNodes = [];\nconst httpNodes = [];\nconst codeNodes = [];\nconst warnings = [];\nconst recommendations = [];\n\nfor (const node of nodes) {\n  const type = node.type || 'unknown';\n  const name = node.name || 'Sin nombre';\n  \n  // Contar tipos\n  nodeTypes[type] = (nodeTypes[type] || 0) + 1;\n  \n  // Clasificar nodos\n  if (type.toLowerCase().includes('trigger') || type.toLowerCase().includes('webhook')) {\n    triggers.push({ name, type });\n  }\n  if (['openai', 'langchain', 'agent', 'chat'].some(ai => type.toLowerCase().includes(ai))) {\n    aiNodes.push({ name, type });\n  }\n  if (['postgres', 'mysql', 'supabase', 'mongodb'].some(db => type.toLowerCase().includes(db))) {\n    dbNodes.push({ name, type });\n  }\n  if (type.toLowerCase().includes('http')) {\n    httpNodes.push({ name, type });\n  }\n  if (type.toLowerCase().includes('code') || type.toLowerCase().includes('function')) {\n    codeNodes.push({ name, type });\n  }\n}\n\n// Generar warnings\nif (triggers.length === 0) {\n  warnings.push('\u26a0\ufe0f No se encontraron triggers. El workflow no puede iniciar autom\u00e1ticamente.');\n}\nif (triggers.length > 1) {\n  warnings.push(`\u26a0\ufe0f Se encontraron ${triggers.length} triggers. Solo uno puede estar activo.`);\n}\n\n// Generar recomendaciones\nif (aiNodes.length > 0 && dbNodes.length === 0) {\n  recommendations.push('\ud83d\udca1 Considera agregar persistencia para conversaciones.');\n}\nif (codeNodes.length > 3) {\n  recommendations.push('\ud83d\udca1 Muchos nodos de c\u00f3digo. Considera modularizar.');\n}\n\nreturn {\n  json: {\n    success: true,\n    audit: {\n      workflowId: workflow.id,\n      name: workflow.name,\n      active: workflow.active,\n      totalNodes: nodes.length,\n      nodeTypes,\n      triggers,\n      aiNodes,\n      dbNodes,\n      httpNodes,\n      codeNodes,\n      warnings,\n      recommendations\n    }\n  }\n};"
      },
      "id": "code-audit",
      "name": "Analizar Workflow",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        740,
        1300
      ]
    }
  ],
  "connections": {
    "\ud83d\udccb Webhook: Listar Workflows": {
      "main": [
        [
          {
            "node": "API: Listar Workflows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API: Listar Workflows": {
      "main": [
        [
          {
            "node": "Formatear Lista",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcc4 Webhook: Obtener Workflow": {
      "main": [
        [
          {
            "node": "API: Obtener Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API: Obtener Workflow": {
      "main": [
        [
          {
            "node": "Formatear Respuesta",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u2795 Webhook: Crear Workflow": {
      "main": [
        [
          {
            "node": "API: Crear Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API: Crear Workflow": {
      "main": [
        [
          {
            "node": "Formatear Respuesta",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u270f\ufe0f Webhook: Actualizar Workflow": {
      "main": [
        [
          {
            "node": "API: Actualizar Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API: Actualizar Workflow": {
      "main": [
        [
          {
            "node": "Formatear Respuesta",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udfe2 Webhook: Activar Workflow": {
      "main": [
        [
          {
            "node": "API: Activar Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API: Activar Workflow": {
      "main": [
        [
          {
            "node": "Formatear Respuesta",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u25b6\ufe0f Webhook: Ejecutar Workflow": {
      "main": [
        [
          {
            "node": "API: Ejecutar Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API: Ejecutar Workflow": {
      "main": [
        [
          {
            "node": "Formatear Respuesta",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd0d Webhook: Auditar Workflow": {
      "main": [
        [
          {
            "node": "API: Obtener para Auditar",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API: Obtener para Auditar": {
      "main": [
        [
          {
            "node": "Analizar Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "1",
  "tags": [
    {
      "name": "MCP",
      "createdAt": "2026-01-07T00:00:00.000Z",
      "updatedAt": "2026-01-07T00:00:00.000Z"
    },
    {
      "name": "Antigravity",
      "createdAt": "2026-01-07T00:00:00.000Z",
      "updatedAt": "2026-01-07T00:00:00.000Z"
    }
  ]
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

How this works

This workflow streamlines the management of n8n workflows by providing a centralised interface to list, retrieve, create, update, activate, and execute them via simple webhook triggers, saving you hours of manual navigation and configuration. It's ideal for developers or teams handling multiple automations who need quick, programmatic control without delving into the n8n dashboard each time. The key step involves routing incoming webhook requests to targeted httpRequest nodes that interact directly with the n8n API, ensuring seamless operations across your workflow library.

Use this when building custom dashboards, chatbots, or scripts that require on-demand workflow management, such as integrating with tools like Slack for team notifications. Avoid it for one-off tasks or if you prefer the visual n8n editor for complex setups, as it focuses on API-driven automation rather than design. Common variations include adding authentication layers for secure access or extending it to monitor workflow executions with additional logging nodes.

About this workflow

🔧 MCP Helper - Gestión de Workflows. Uses httpRequest. Webhook trigger; 17 nodes.

Source: https://github.com/maurixio8/tus-aguacates/blob/632dd7e2c24239c590621b13dc501a7b181988d3/n8n-workflows/mcp-helper-workflow.json — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

&gt; Note: This template requires a self-hosted community edition of n8n. Does not work on cloud.

General

Convert The Json Data Received From The Cocktaildb Api In Xml. Uses manualTrigger, httpRequest, xml. Event-driven trigger; 3 nodes.

HTTP Request, XML
General

Portfolio Orchestrator. Uses httpRequest. Webhook trigger; 59 nodes.

HTTP Request
General

PUQ Docker NextCloud deploy. Uses respondToWebhook, stickyNote, httpRequest, ssh. Webhook trigger; 44 nodes.

HTTP Request, Ssh
General

GiveWP Donations to Beacon. Uses httpRequest, stopAndError. Webhook trigger; 43 nodes.

HTTP Request, Stop And Error