{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "e3ed1048-bad0-4e91-bfb5-aef3e1883de4",
      "name": "Simplify Workflows",
      "type": "n8n-nodes-base.set",
      "position": [
        -1740,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "821226b0-12ad-4d1d-81c3-dfa3c286cce4",
              "name": "id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "629d95d6-2501-4ad4-a5ed-e557237e1cc2",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "30699f7c-98d3-44ee-9749-c5528579f7e6",
              "name": "description",
              "type": "string",
              "value": "={{\n$json.nodes\n  .filter(node => node.type === 'n8n-nodes-base.stickyNote')\n  .filter(node => node.parameters.content.toLowerCase().includes('try it out'))\n  .map(node => node.parameters.content.substr(0,255) + '...')\n  .join('\\n')\n}}"
            },
            {
              "id": "6199c275-1ced-4f72-ba59-cb068db54c1b",
              "name": "parameters",
              "type": "string",
              "value": "={{\n(function(node) {\n  if (!node) return {};\n  const inputs = node.parameters.workflowInputs.values;\n  return {\n    \"type\": \"object\",\n    \"required\": inputs.map(input => input.name),\n    \"properties\": inputs.reduce((acc, input) => ({\n      ...acc,\n      [input.name]: { type: input.type ?? 'string' }\n    }), {})\n  }\n})(\n$json.nodes\n  .filter(node => node.type === 'n8n-nodes-base.executeWorkflowTrigger')\n  .first()\n)\n.toJsonString()\n}}"
            }
          ]
        }
      },
      "executeOnce": false,
      "typeVersion": 3.4
    },
    {
      "id": "a935f5b6-3a35-49e7-870c-87e4daf0ad13",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -3060,
        600
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "operation"
            },
            {
              "name": "workflowIds"
            },
            {
              "name": "parameters",
              "type": "object"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "2ff5e521-5288-47a9-af49-55a1bbbfb4f4",
      "name": "Operations",
      "type": "n8n-nodes-base.switch",
      "position": [
        -2660,
        560
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Add",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "3254a8f9-5fd3-4089-be16-cc3fd20639b8",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('When Executed by Another Workflow').first().json.operation }}",
                    "rightValue": "addWorkflow"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "remove",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "a33dd02d-5192-48c9-b569-eafddabd2462",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('When Executed by Another Workflow').first().json.operation }}",
                    "rightValue": "removeWorkflow"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "list",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "2d68dc3f-a213-47f8-8453-1bceae404653",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('When Executed by Another Workflow').first().json.operation }}",
                    "rightValue": "listWorkflows"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "search",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "2146a87e-1a50-4caa-a2ee-f7f6fc2b19c9",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('When Executed by Another Workflow').first().json.operation }}",
                    "rightValue": "searchWorkflows"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "execute",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "98b25a51-2cb5-49af-9609-827245595dc9",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('When Executed by Another Workflow').first().json.operation }}",
                    "rightValue": "executeWorkflow"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "5b78271a-6474-4d87-a344-72f7f63822dc",
      "name": "Get MCP-tagged Workflows",
      "type": "n8n-nodes-base.n8n",
      "position": [
        -2400,
        200
      ],
      "parameters": {
        "filters": {
          "tags": "mcp"
        },
        "requestOptions": {}
      },
      "credentials": {
        "n8nApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1197d29e-b124-4576-846d-876ad16de6e9",
      "name": "Filter Matching Ids",
      "type": "n8n-nodes-base.filter",
      "position": [
        -2180,
        200
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "90c97733-48de-4402-8388-5d49e3534388",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{\n$json.id\n  ? $('When Executed by Another Workflow').first().json.workflowIds.split(',').includes($json.id)\n  : false\n}}",
              "rightValue": "={{ $json.id }}"
            }
          ]
        }
      },
      "executeOnce": false,
      "typeVersion": 2.2,
      "alwaysOutputData": true
    },
    {
      "id": "81623298-c3e7-4e20-86a9-d2587b302f28",
      "name": "Store In Memory",
      "type": "n8n-nodes-base.redis",
      "position": [
        -1520,
        0
      ],
      "parameters": {
        "key": "mcp_n8n_tools",
        "value": "={{\n($('Get Memory').item.json.data?.parseJson() ?? [])\n  .concat($input.all().map(item => item.json))\n  .toJsonString()\n}}",
        "operation": "set"
      },
      "credentials": {
        "redis": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "5ff0ea2f-a2ee-4cc3-bdf9-153ce5973770",
      "name": "AddTool Success",
      "type": "n8n-nodes-base.set",
      "position": [
        -1300,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d921063f-e8ed-44a8-95a0-4402ecde6c5d",
              "name": "=response",
              "type": "string",
              "value": "={{ $('Simplify Workflows').all().length }} tools were added successfully."
            }
          ]
        }
      },
      "executeOnce": true,
      "typeVersion": 3.4
    },
    {
      "id": "1d3169cc-15cd-4296-9e63-bb162322e5e2",
      "name": "AddTool Error",
      "type": "n8n-nodes-base.set",
      "position": [
        -1740,
        200
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8c4e0763-a4ff-4e8a-a992-13e4e12a5685",
              "name": "response",
              "type": "string",
              "value": "Expected Tools matching Ids given, but none found."
            }
          ]
        }
      },
      "executeOnce": true,
      "typeVersion": 3.4
    },
    {
      "id": "6149a950-c1ed-44b4-aee6-3daeabf8ba01",
      "name": "Get Memory",
      "type": "n8n-nodes-base.redis",
      "position": [
        -2860,
        600
      ],
      "parameters": {
        "key": "mcp_n8n_tools",
        "options": {},
        "operation": "get",
        "propertyName": "data"
      },
      "credentials": {
        "redis": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3c538002-45f7-4a2f-9ef4-5aede63235ab",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -2180,
        400
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 1
    },
    {
      "id": "d41e48e0-d610-4e18-9942-842419c99c83",
      "name": "Filter Matching IDs",
      "type": "n8n-nodes-base.filter",
      "position": [
        -1960,
        400
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "d2c149fb-d115-449b-9b74-f3c2f8ff7950",
              "operator": {
                "type": "boolean",
                "operation": "false",
                "singleValue": true
              },
              "leftValue": "={{\n$json.id\n  ? $('Operations').first().json.workflowIds.split(',').includes($json.id)\n  : false\n}}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2,
      "alwaysOutputData": true
    },
    {
      "id": "21d8cdda-bb47-42cd-a056-809a5556b438",
      "name": "Store In Memory1",
      "type": "n8n-nodes-base.redis",
      "position": [
        -1520,
        500
      ],
      "parameters": {
        "key": "mcp_n8n_tools",
        "value": "={{ $input.all().flatMap(item => item.json.data).compact() }}",
        "operation": "set"
      },
      "credentials": {
        "redis": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "5a391d0a-ba13-4d54-85fd-eb2f6a935614",
      "name": "Remove Tool Success",
      "type": "n8n-nodes-base.set",
      "position": [
        -1300,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1368947f-6625-4e2e-ae27-0fcad0a1d12a",
              "name": "response",
              "type": "string",
              "value": "={{ $('When Executed by Another Workflow').first().json.workflowIds.split(',').length }} tool(s) removed successfully."
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "65dfecc4-43ba-4518-adbf-9676c5cb1377",
      "name": "Convert to JSON",
      "type": "n8n-nodes-base.set",
      "position": [
        -2400,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bce29a06-cff6-4409-96d2-04cc858a0e98",
              "name": "data",
              "type": "array",
              "value": "={{ $json.data.parseJson() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b8b64fc2-63cf-4b17-9b6d-9d94aec10065",
      "name": "listTools Success",
      "type": "n8n-nodes-base.set",
      "position": [
        -2400,
        600
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bce29a06-cff6-4409-96d2-04cc858a0e98",
              "name": "response",
              "type": "array",
              "value": "={{\n$json.data\n  ? $json.data.parseJson()\n  : []\n}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d4fd9e74-f040-4b3c-8ce0-371315a0d130",
      "name": "Get MCP-tagged Workflows1",
      "type": "n8n-nodes-base.n8n",
      "position": [
        -2180,
        600
      ],
      "parameters": {
        "filters": {
          "tags": "mcp"
        },
        "requestOptions": {}
      },
      "credentials": {
        "n8nApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d58922c4-b721-4228-83cb-0b1d9632bbc6",
      "name": "Simplify Workflows1",
      "type": "n8n-nodes-base.set",
      "position": [
        -1960,
        600
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "821226b0-12ad-4d1d-81c3-dfa3c286cce4",
              "name": "id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "629d95d6-2501-4ad4-a5ed-e557237e1cc2",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "30699f7c-98d3-44ee-9749-c5528579f7e6",
              "name": "description",
              "type": "string",
              "value": "={{\n$json.nodes\n  .filter(node => node.type === 'n8n-nodes-base.stickyNote')\n  .filter(node => node.parameters.content.toLowerCase().includes('try it out'))\n  .map(node => node.parameters.content.substr(0,255) + '...')\n  .join('\\n')\n}}"
            },
            {
              "id": "137221ef-f0a3-4441-bae7-d9d4a22e05b7",
              "name": "parameters",
              "type": "string",
              "value": "={{\n(function(node) {\n  if (!node) return {};\n  const inputs = node.parameters.workflowInputs.values;\n  return {\n    \"type\": \"object\",\n    \"required\": inputs.map(input => input.name),\n    \"properties\": inputs.reduce((acc, input) => ({\n      ...acc,\n      [input.name]: { type: input.type ?? 'string' }\n    }), {})\n  }\n})(\n$json.nodes\n  .filter(node => node.type === 'n8n-nodes-base.executeWorkflowTrigger')\n  .first()\n)\n.toJsonString()\n}}"
            }
          ]
        }
      },
      "executeOnce": false,
      "typeVersion": 3.4
    },
    {
      "id": "b44b1115-5153-4b98-979f-219a32b693de",
      "name": "listTools Success1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -1740,
        600
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "response"
      },
      "typeVersion": 1
    },
    {
      "id": "e9d9a33c-ebfa-4f74-a4da-fb6b6f6f6df5",
      "name": "Get Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        -1920,
        1020
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{ $('When Executed by Another Workflow').first().json.parameters }}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "c028324a-5c79-4ce9-afd6-097b6f75a74a",
      "name": "executeTool Result",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -1440,
        1020
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "response"
      },
      "typeVersion": 1
    },
    {
      "id": "9eeac3cb-af7e-44c7-8891-6ff4367d0b54",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -3600,
        1040
      ],
      "parameters": {
        "options": {
          "systemMessage": "=You are a helpful assistant who only uses workflows to answer questions and perform tasks.\n* When asked to complete a task, you will assume there is a workflow which you can use. Do not generate custom scripts or raw commands - use a workflow isntead.\n* Only use the available active workflows as listed using the \"listWorkflows\" tool.\n* Workflows returned by \"listWorkflows\" tool are active in the pool and do not need to be added again.\n* Always ask the user before adding workflows to the availble pool.\n* You do not need to confirm each step with the user when executing workflows.\n* When executing the workflow, the required parameters schema for it is listed in the workflow's profile. To get this profile, use the listWokflows tool.\n* If no available workflows are suitable and you are not able to complete the task, simply let the user know.\n* Do not search for workflows in the directory unless the user requests."
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "23601548-7863-403e-a671-267bf592b824",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -3840,
        1040
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "54ed210d-e1b8-4bd7-85e4-88678111a45e",
      "name": "MCP Client",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        -3360,
        1240
      ],
      "parameters": {
        "sseEndpoint": "=<Production URL of MCP Server>"
      },
      "typeVersion": 1
    },
    {
      "id": "c612da64-9cc1-4601-a987-cd2023fd1863",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -3500,
        1240
      ],
      "parameters": {
        "contextWindowLength": 30
      },
      "typeVersion": 1.3
    },
    {
      "id": "77a9fd22-c31c-49e4-9d5f-af572b137925",
      "name": "Convert to JSON1",
      "type": "n8n-nodes-base.set",
      "position": [
        -2360,
        1120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bce29a06-cff6-4409-96d2-04cc858a0e98",
              "name": "data",
              "type": "array",
              "value": "={{ $json.data.parseJson() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "3377aa25-4190-4bdc-be20-b4e324212060",
      "name": "Has Workflow Available?",
      "type": "n8n-nodes-base.if",
      "position": [
        -2140,
        1120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9c9df00b-b090-4773-8012-1824b4eeb13f",
              "operator": {
                "type": "object",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{\n$json.data.find(d => d.id === $('When Executed by Another Workflow').item.json.workflowIds)\n}}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "92b1bb21-d739-47f0-a278-92ffa5a10cbf",
      "name": "ExecuteTool Error",
      "type": "n8n-nodes-base.set",
      "position": [
        -1920,
        1220
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2fa3e311-e836-42f4-922a-fae19d8e0267",
              "name": "response",
              "type": "string",
              "value": "=Expected workflow to be available but not yet added. You can only use workflows which have been added to the available pool. Use the listWorkflows tool to see available workflows."
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "529e35e0-cf11-405a-9011-e6f7f2122a4e",
      "name": "Workflow Exists?",
      "type": "n8n-nodes-base.if",
      "position": [
        -1960,
        200
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "15aef770-639e-4df0-900f-29013ccd00c4",
              "operator": {
                "type": "object",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ba278834-c774-4a3d-8ebc-f64ac77317c2",
      "name": "N8N Workflows MCP Server",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        -3720,
        240
      ],
      "parameters": {
        "path": "4625bcf4-0dd9-4562-a70f-6fee41f6f12d"
      },
      "typeVersion": 1
    },
    {
      "id": "ed940612-4772-4377-afe2-5484a8978665",
      "name": "Add Workflow",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        -3800,
        460
      ],
      "parameters": {
        "name": "addWorkflow",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "Adds one or more workflows by ID to the available pool of workflows for the agent. You can get a list of workflows by calling the listTool tool.",
        "workflowInputs": {
          "value": {
            "operation": "addWorkflow",
            "parameters": "null",
            "workflowIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('workflowIds', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "operation",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "operation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "workflowIds",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "workflowIds",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "parameters",
              "type": "object",
              "display": true,
              "required": false,
              "displayName": "parameters",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e7d5096c-3545-43fd-aa1f-495dc041ccce",
      "name": "RemoveWorkflow",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        -3700,
        560
      ],
      "parameters": {
        "name": "removeWorkflow",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "Removes one or more workflows by ID from the available pool of workflows for the agent.",
        "workflowInputs": {
          "value": {
            "operation": "removeWorkflow",
            "parameters": "null",
            "workflowIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('workflowIds', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "operation",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "operation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "workflowIds",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "workflowIds",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "parameters",
              "type": "object",
              "display": true,
              "required": false,
              "displayName": "parameters",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c20b63dc-e768-4529-a08c-5370853fc4c9",
      "name": "List Workflows",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        -3580,
        660
      ],
      "parameters": {
        "name": "listTool",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "Lists the available pool of workflows for the agent.",
        "workflowInputs": {
          "value": {
            "operation": "listWorkflows",
            "parameters": "null",
            "workflowIds": "null"
          },
          "schema": [
            {
              "id": "operation",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "operation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "workflowIds",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "workflowIds",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "parameters",
              "type": "object",
              "display": true,
              "required": false,
              "displayName": "parameters",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "88fb8a1e-2f4c-4ff1-8be9-0f7afee2dd4d",
      "name": "SearchWorkflows",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        -3460,
        560
      ],
      "parameters": {
        "name": "searchTool",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "Returns all workflows which can be added to the pool of available workflows for the agent.",
        "workflowInputs": {
          "value": {
            "operation": "searchWorkflows",
            "parameters": "null",
            "workflowIds": "null"
          },
          "schema": [
            {
              "id": "operation",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "operation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "workflowIds",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "workflowIds",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "parameters",
              "type": "object",
              "display": true,
              "required": false,
              "displayName": "parameters",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c643c007-de89-4d94-9739-aeb2032c792f",
      "name": "ExecuteWorkflow",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        -3340,
        460
      ],
      "parameters": {
        "name": "executeTool",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "Executes a workflow which has been added to the pool of available workflows for the agent.",
        "workflowInputs": {
          "value": {
            "operation": "executeWorkflow",
            "parameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters', ``, 'string') }}",
            "workflowIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('workflowIds', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "operation",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "operation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "workflowIds",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "workflowIds",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "parameters",
              "type": "object",
              "display": true,
              "required": false,
              "displayName": "parameters",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "4f1c1559-8d50-48b1-94f2-542e0bb4d494",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3920,
        80
      ],
      "parameters": {
        "color": 7,
        "width": 720,
        "height": 740,
        "content": "## 1. MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70 \ucd94\uac00  \n[MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/)"
      },
      "typeVersion": 1
    },
    {
      "id": "54d61491-04dc-4263-96e0-67827842ca07",
      "name": "Execute Workflow with PassThrough Variables",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        -1660,
        1020
      ],
      "parameters": {
        "options": {
          "waitForSubWorkflow": true
        },
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('When Executed by Another Workflow').first().json.workflowIds }}"
        },
        "workflowInputs": {
          "value": {},
          "schema": [],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "executeOnce": false,
      "typeVersion": 1.2
    },
    {
      "id": "1042884f-a44c-4757-9ff9-3a5cc81058f2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2600,
        -140
      ],
      "parameters": {
        "color": 7,
        "width": 740,
        "height": 300,
        "content": "## 2. \"\uc0ac\uc6a9 \uac00\ub2a5\" \uc6cc\ud06c\ud50c\ub85c\uc6b0 \ubaa9\ub85d \ub3d9\uc801 \uad00\ub9ac  \n[n8n \ub178\ub4dc\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.n8n)  \n\n\uc544\uc774\ub514\uc5b4\ub294 \uc5d0\uc774\uc804\ud2b8\uac00 \uc811\uadfc\ud560 \uc218 \uc788\ub294 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc218\ub97c \uc81c\ud55c\ud558\uc5ec \uc6d0\ud558\uc9c0 \uc54a\ub294 \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub098 \uc720\uc0ac\ud55c \uc6cc\ud06c\ud50c\ub85c\uc6b0\uc758 \uc911\ubcf5\uc744 \ud53c\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc11c \uc6b0\ub9ac\ub294 Redis\ub97c \uc0ac\uc6a9\ud558\uc5ec \uba54\ubaa8\ub9ac\uc5d0\uc11c \uac00\uc0c1 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \ubaa9\ub85d\uc744 \uad00\ub9ac\ud569\ub2c8\ub2e4 - \ub0b4\ubd80\uc801\uc73c\ub85c\ub294 \ub2e8\uc9c0 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc138\ubd80 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \ubc30\uc5f4\uc785\ub2c8\ub2e4.  \n\n\uc8fc\uc694 \uc0ac\ud56d\uc73c\ub85c, \uc758\ub3c4\ub41c \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub294 **\uc11c\ube0c\uc6cc\ud06c\ud50c\ub85c\uc6b0 \ud2b8\ub9ac\uac70**\ub97c \uac00\uc838\uc57c \ud558\uba70, \uc774\uc0c1\uc801\uc73c\ub85c\ub294 \uc785\ub825 \uc2a4\ud0a4\ub9c8\ub3c4 \uc124\uc815\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774 \ud15c\ud50c\ub9bf\uc740 \uac01 \uc6cc\ud06c\ud50c\ub85c\uc6b0\uc758 JSON\uc744 \ubd84\uc11d\ud558\uace0 \uc785\ub825 \uc2a4\ud0a4\ub9c8\ub97c \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc124\uba85\uc758 \uc77c\ubd80\ub85c \ucea1\ucc98\ud569\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \uc2e4\ud589 \uc2dc\uc5d0 \uc5d0\uc774\uc804\ud2b8\uac00 \uc11c\ube0c\uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \ud638\ucd9c\ud560 \ub54c \ub9e4\uac1c\ubcc0\uc218\ub97c \uc5b4\ub5a4 \ud615\uc2dd\uc73c\ub85c \uc124\uc815\ud560\uc9c0 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "903ead44-3eab-4606-aa4e-e66378bb5f7e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2420,
        820
      ],
      "parameters": {
        "color": 7,
        "width": 1160,
        "height": 600,
        "content": "## 3. \uc5d0\uc774\uc804\ud2b8\uac00 \ubaa8\ub4e0 N8N \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \uc2e4\ud589\ud558\ub3c4\ub85d \ud558\ub2e4  \n[Execute Workflow node\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow/)  \n\n\ub9c8\uce68\ub0b4 \uc5d0\uc774\uc804\ud2b8\uac00 \ud544\uc694\ud55c \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \uc218\uc9d1\ud55c \ud6c4, \uc694\uccad\ub41c \uc791\uc5c5\uc744 \uc218\ud589\ud558\uae30 \uc2dc\uc791\ud558\uc5ec \ud558\ub098 \uc774\uc0c1\uc758 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4. \uc6d0\ud558\ub294 \ub3d9\uc791\uc740 \uc5d0\uc774\uc804\ud2b8\uac00 \"listWorkflows\"\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc5b4\ub5a4 \uc6cc\ud06c\ud50c\ub85c\uc6b0\uac00 \"active\"\uc778\uc9c0 \ud655\uc778\ud55c \ud6c4, \uc774\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc744 \uacc4\ud68d\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ud480\uc5d0 \ucd94\uac00\ud558\uae30 \uc804\uc5d0 \uc0ac\uc6a9\ud558\ub824\ub294 \uc2dc\ub3c4\ub294 \uc624\ub958 \uc751\ub2f5\uc744 \ucd08\ub798\ud569\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "194fbcbc-a7bb-41c8-9289-a214b1415386",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -3660,
        1240
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "aee33258-cf30-4cb4-ab58-7bef7ba27b65",
      "name": "Is Empty Array?",
      "type": "n8n-nodes-base.if",
      "position": [
        -1740,
        400
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2cd1b233-fb24-45d5-9efd-1db44b817809",
              "operator": {
                "type": "array",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $input.all().flatMap(item => item.json.data).compact() }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b367a25f-e679-4a71-910e-27f1aa686816",
      "name": "Delete Key",
      "type": "n8n-nodes-base.redis",
      "position": [
        -1520,
        300
      ],
      "parameters": {
        "key": "mcp_n8n_tools",
        "operation": "delete"
      },
      "credentials": {
        "redis": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "eec527e1-db4d-4294-a076-379ebd9640a9",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3920,
        860
      ],
      "parameters": {
        "color": 7,
        "width": 740,
        "height": 560,
        "content": "## 4. \ubaa8\ub4e0 \uc5d0\uc774\uc804\ud2b8\ub97c MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc5f0\uacb0\ud558\uc138\uc694. \uc774 \uc5d0\uc774\uc804\ud2b8\ub97c \uc0ac\uc6a9\ud558\uc5ec MCP \uc11c\ubc84\ub97c \ud14c\uc2a4\ud2b8\ud558\uc138\uc694. Note, i"
      },
      "typeVersion": 1
    },
    {
      "id": "c9b51f36-f9bd-4a60-b195-8da229462331",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2880,
        820
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 400,
        "content": "* **AddWorkflow**  \n  \uc774 \ub3c4\uad6c\ub294 \uc6cc\ud06c\ud50c\ub85c\ub97c \"\uc0ac\uc6a9 \uac00\ub2a5\" \ubaa9\ub85d\uc5d0 \ucd94\uac00(\ub354 \uc815\ud655\ud788\ub294 \ucd94\uac00)\ud569\ub2c8\ub2e4.  \n* **RemoveWorkflow**  \n  \uc774 \ub3c4\uad6c\ub294 \ubaa9\ub85d\uc5d0\uc11c \uc6cc\ud06c\ud50c\ub85c \ud56d\ubaa9\uc744 \uc81c\uac70\ud569\ub2c8\ub2e4.  \n* **listWorkflows**  \n  \uc774 \ub3c4\uad6c\ub294 \uc6cc\ud06c\ud50c\ub85c \ubaa9\ub85d\uc758 \ud604\uc7ac \uc0c1\ud0dc\uc640 \uadf8 \uc548\uc5d0 \uc788\ub294 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uc6cc\ud06c\ud50c\ub85c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4. \ubaa9\ub85d\uc5d0 \ucd94\uac00\ub41c \uc6cc\ud06c\ud50c\ub85c\ub97c \ud655\uc778\ud558\ub294 \ub370 \uc720\uc6a9\ud569\ub2c8\ub2e4.  \n* **searchWorkflows**  \n  \ud604\uc7ac\ub85c\uc11c\ub294 \uc774 \ub3c4\uad6c\ub294 n8n \uc778\uc2a4\ud134\uc2a4\uc5d0\uc11c \uae30\uc874 \uc6cc\ud06c\ud50c\ub85c\ub97c \uac00\uc838\uc640 \uc5d0\uc774\uc804\ud2b8\uc5d0\uac8c \ubc18\ud658\ud569\ub2c8\ub2e4. \ub354 \ub9ce\uc740 \uc790\uc6d0\uc774 \uc8fc\uc5b4\uc9c0\uba74 \uc0c9\uc778\ub41c \uac80\uc0c9\uc73c\ub85c \uad50\uccb4\ud558\ub294 \uac83\uc744 \uace0\ub824\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4(\uc790\uccb4\uc801\uc73c\ub85c \uad6c\ucd95\ud574\uc57c \ud569\ub2c8\ub2e4!)."
      },
      "typeVersion": 1
    },
    {
      "id": "91b2859a-7563-4ebd-ae61-c9a487e18d81",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4600,
        -180
      ],
      "parameters": {
        "width": 600,
        "height": 1440,
        "content": "## \uc2dc\ub3c4\ud574 \ubcf4\uc138\uc694!\n### \uc774 n8n \ud15c\ud50c\ub9bf\uc740 \uae30\uc874 n8n \uc6cc\ud06c\ud50c\ub85c\ub97c \uae30\ubc18\uc73c\ub85c MCP \uc11c\ubc84\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc5f0\uacb0\ub41c \ubaa8\ub4e0 MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ub2e8\uc21c\ud55c \ub3c4\uad6c\uac00 \uc544\ub2cc \uac15\ub825\ud55c \uc5d4\ub4dc\ud22c\uc5d4\ub4dc \uc6cc\ud06c\ud50c\ub85c\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub354 \ub9ce\uc740 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n\uacb0\uacfc \uc9c0\ud5a5\uc801\uc778 \uc5d0\uc774\uc804\ud2b8 \ub3c4\uad6c \uc124\uacc4\ub294 \uc81c\uac00 \uc624\ub7ab\ub3d9\uc548 \ucd94\ucc9c\ud574 \uc628 \uad00\ud589\uc774\uba70, MCP \uc11c\ubc84 \uad6c\ucd95\uc5d0\ub3c4 \uc798 \uc801\uc6a9\ub429\ub2c8\ub2e4. \uc694\uc57d\ud558\uc790\uba74, \uc5d0\uc774\uc804\ud2b8\uac00 \uc791\uc5c5\uc744 \uc644\ub8cc\ud558\uae30 \uc704\ud574 \ucd5c\uc18c\ud55c\uc758 \ud638\ucd9c\uc744 \ud558\ub294 \uac83\uc744 \uc120\ud638\ud569\ub2c8\ub2e4.\n\n\uc774\uac83\uc774 n8n\uc774 MCP \uc11c\ubc84\uc5d0 \uc801\ud569\ud55c \uc774\uc720\uc785\ub2c8\ub2e4! \uc774 \ud15c\ud50c\ub9bf\uc740 \uc5d0\uc774\uc804\ud2b8/MCP \ud074\ub77c\uc774\uc5b8\ud2b8(\uc608: Claude Desktop)\ub97c \uae30\uc874 \uc6cc\ud06c\ud50c\ub85c\uc5d0 \uc5f0\uacb0\ud558\uc5ec AI\uac00 \uac04\uc811\uc801\uc73c\ub85c \uc774\ub7ec\ud55c \uc6cc\ud06c\ud50c\ub85c\ub97c \ubc1c\uacac, \uad00\ub9ac \ubc0f \uc2e4\ud589\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4.\n\n### \uc791\ub3d9 \uc6d0\ub9ac\n* MCP \ud2b8\ub9ac\uac70\ub97c \uc0ac\uc6a9\ud558\uace0, \uae30\uc874 \uc6cc\ud06c\ud50c\ub85c\ub97c \ubc1c\uacac\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc704\ud55c 4\uac1c\uc758 \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c \ub3c4\uad6c\uc640 \uc2e4\ud589\uc744 \uc704\ud55c 1\uac1c\uc758 \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c \ub3c4\uad6c\ub97c \uc5f0\uacb0\ud569\ub2c8\ub2e4.\n* \"\uc0ac\uc6a9 \uac00\ub2a5\" \uc6cc\ud06c\ud50c\ub85c\ub77c\ub294 \uac1c\ub150\uc744 \ub3c4\uc785\ud558\uc5ec \uc5d0\uc774\uc804\ud2b8\uac00 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc6cc\ud06c\ud50c\ub85c\ub97c \uc81c\ud55c\ud569\ub2c8\ub2e4. \uc774\ub294 \ubaa8\ub4e0 \uc6cc\ud06c\ud50c\ub85c\ub97c \uc0ac\uc6a9\ud558\ub824 \ud560 \ub54c \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \ucda9\ub3cc\uc774\ub098 \ube44\ud504\ub85c\ub355\uc158 \ubb38\uc81c\ub97c \ud53c\ud558\uae30 \uc704\ud568\uc785\ub2c8\ub2e4.\n* n8n \ub178\ub4dc\ub294 n8n \uc778\uc2a4\ud134\uc2a4 API\uc5d0 \uc811\uadfc\ud558\uc5ec \ubaa8\ub4e0 \uc6cc\ud06c\ud50c\ub85c\ub098 \ud0dc\uadf8\ub85c \ud544\ud130\ub9c1\ub41c \uc6cc\ud06c\ud50c\ub85c\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4. \uc608\uc2dc\ub85c, \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc740 \uc6cc\ud06c\ud50c\ub85c\uc5d0 \"mcp\" \ud0dc\uadf8\ub97c \ubd99\uc600\uc73c\uba70, \uc774\ub294 \"\uc6cc\ud06c\ud50c\ub85c \uac80\uc0c9\" \ub3c4\uad6c\ub97c \ud1b5\ud574 \ub178\ucd9c\ub429\ub2c8\ub2e4.\n* Redis\ub97c \uc8fc\uc694 \uba54\ubaa8\ub9ac\ub85c \uc0ac\uc6a9\ud558\uc5ec \"\uc0ac\uc6a9 \uac00\ub2a5\" \uc6cc\ud06c\ud50c\ub85c\ub97c \ucd94\uc801\ud569\ub2c8\ub2e4. \ub3c4\uad6c\ub85c\ub294 \"\uc6cc\ud06c\ud50c\ub85c \ucd94\uac00\", \"\uc6cc\ud06c\ud50c\ub85c \uc81c\uac70\" \ubc0f \"\uc6cc\ud06c\ud50c\ub85c \ubaa9\ub85d\"\uc774 \uc788\uc73c\uba70, \uc5d0\uc774\uc804\ud2b8\uac00 \uc774\ub97c \uc790\uc728\uc801\uc73c\ub85c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n* \uc5d0\uc774\uc804\ud2b8\uac00 \uc6cc\ud06c\ud50c\ub85c\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\ub3c4\ub85d Subworkflow \ud2b8\ub9ac\uac70\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uac01 \uc6cc\ud06c\ud50c\ub85c\uc758 \uc785\ub825 \uc2a4\ud0a4\ub9c8\ub97c \ud30c\uc545\ud558\ub294 \uac83\uc774 \uae4c\ub2e4\ub85c\uc6e0\uc73c\ub098, \uc6cc\ud06c\ud50c\ub85c\uc758 \ud15c\ud50c\ub9bf JSON\uc5d0\uc11c \uc774 \uc815\ubcf4\ub97c \ucd94\ucd9c\ud558\uc5ec \"\uc0ac\uc6a9 \uac00\ub2a5\" \uc6cc\ud06c\ud50c\ub85c\uc758 \uc124\uba85\uc5d0 \ucd94\uac00\ud588\uc2b5\ub2c8\ub2e4. Subworkflow \ud2b8\ub9ac\uac70\ub97c \ud1b5\ud574 \ub9e4\uac1c\ubcc0\uc218\ub97c \uc804\ub2ec\ud558\ub824\uba74 passthrough \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc989, \ub178\ub4dc \ub0b4\uc5d0\uc11c \ub9e4\uac1c\ubcc0\uc218\uac00 \uba85\uc2dc\uc801\uc73c\ub85c \uc124\uc815\ub418\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \ub4e4\uc5b4\uc624\ub294 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.\n* \uc2e4\ud589 \uc2dc \uc5d0\uc774\uc804\ud2b8\ub294 \"\uc0ac\uc6a9 \uac00\ub2a5\" \uc6cc\ud06c\ud50c\ub85c\ub97c \uc989\uc2dc \ubcf4\uc9c0 \ubabb\ud558\uace0 \"\ubaa9\ub85d\" \ubc0f \"\uac80\uc0c9\"\uc744 \ud1b5\ud574 \ubc1c\uacac\ud574\uc57c \ud569\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\ub294 \uc5d0\uc774\uc804\ud2b8\uac00 \ucffc\ub9ac\uc5d0 \ub2f5\ud558\uac70\ub098 \uc791\uc5c5\uc744 \uc644\ub8cc\ud560 \ub54c \uc774\ub7ec\ud55c \uc6cc\ud06c\ud50c\ub85c\ub97c \uc6b0\uc120\uc801\uc73c\ub85c \uc0ac\uc6a9\ud558\ub3c4\ub85d \uc778\uc9c0\uc2dc\ucf1c\uc57c \ud569\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uba3c\uc800, MCP \uc11c\ubc84\uc5d0 \ud45c\uc2dc\ub420 \uc6cc\ud06c\ud50c\ub85c\ub97c \uacb0\uc815\ud569\ub2c8\ub2e4. \uc774 \uc608\uc2dc\uc5d0\uc11c\ub294 \"mcp\" \ud0dc\uadf8\ub97c \uc0ac\uc6a9\ud558\uc9c0\ub9cc, \ubaa8\ub4e0 \uc6cc\ud06c\ud50c\ub85c\ub098 \ub2e4\ub978 \ubc29\uc2dd\uc73c\ub85c \ud544\ud130\ub9c1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n* \ub2e4\uc74c\uc73c\ub85c, \uc774\ub7ec\ud55c \uc6cc\ud06c\ud50c\ub85c\uc5d0 \uc785\ub825 \uc2a4\ud0a4\ub9c8\uac00 \uc124\uc815\ub41c Subworkflow \ud2b8\ub9ac\uac70\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4. \uc774\ub294 MCP \uc11c\ubc84\uac00 \uc774\ub97c \uc2e4\ud589\ud558\ub294 \ubc29\uc2dd\uc785\ub2c8\ub2e4.\n* MCP \uc11c\ubc84\ub97c \"\ud65c\uc131\" \uc0c1\ud0dc\ub85c \uc124\uc815\ud558\uc5ec \ud504\ub85c\ub355\uc158 \ubaa8\ub4dc\ub97c \ucf1c\uace0 \ud504\ub85c\ub355\uc158 URL\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4.\n* \uc774 \ud504\ub85c\ub355\uc158 URL\uc744 MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. Claude Desktop\uc758 \uacbd\uc6b0, \uc5ec\uae30 - https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/#integrating-with-claude-desktop\uc5d0\uc11c \uc9c0\uce68\uc744 \ud655\uc778\ud558\uc138\uc694.\n* \uc774 MCP \uc11c\ubc84\uc640\uc758 \ucee4\ubba4\ub2c8\ucf00\uc774\uc158\uc5d0\ub294 \uc57d\uac04\uc758 \ud559\uc2b5 \uace1\uc120\uc774 \uc788\uc73c\ubbc0\ub85c \uc778\ub0b4\ub97c \uac00\uc9c0\uace0 \ud14c\uc2a4\ud2b8\ud558\uc138\uc694. \ubaa9\ud45c\uac00 \uba85\ud655\ud560\uc218\ub85d(\uc608: \uc5f0\uad6c \ubc0f \ubcf4\uace0) \ub354 \uc798 \uc791\ub3d9\ud569\ub2c8\ub2e4. \ub2e8\uc21c\ud788 \uad00\ub828 \uc5c6\ub294 \ub3c4\uad6c \ubaa8\uc74c\ubcf4\ub2e4\ub294\uc694.\n\n### \uc694\uad6c \uc0ac\ud56d\n* \uc120\ud0dd\ub41c \uc6cc\ud06c\ud50c\ub85c\ub97c \ud544\ud130\ub9c1\ud558\uae30 \uc704\ud55c N8N API \ud0a4.\n* Subworkflow \ud2b8\ub9ac\uac70\uac00 \uc788\ub294 N8N \uc6cc\ud06c\ud50c\ub85c!\n* \"\uc0ac\uc6a9 \uac00\ub2a5\" \uc6cc\ud06c\ud50c\ub85c\ub97c \uba54\ubaa8\ub9ac \ubc0f \ucd94\uc801\ud558\uae30 \uc704\ud55c Redis.\n* MCP \ud074\ub77c\uc774\uc5b8\ud2b8 \ub610\ub294 \uc5d0\uc774\uc804\ud2b8(\uc608: Claude Desktop - https://claude.ai/download) \uc0ac\uc6a9.\n\n### \uc774 \uc6cc\ud06c\ud50c\ub85c \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\n* \ub300\uc0c1 \uc6cc\ud06c\ud50c\ub85c\uac00 Subworkflow \ud2b8\ub9ac\uac70\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0, executeTool\uc744 \uc6f9\ud6c5\uc744 \uc704\ud55c HTTP \uc694\uccad\uc73c\ub85c \uc218\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n* \uc6cc\ud06c\ud50c\ub85c\uac00 \ub9ce\uace0 \uc77c\ubd80\uac00 \ub108\ubb34 \uc720\uc0ac\ud55c \uacbd\uc6b0 \"\uc0ac\uc6a9 \uac00\ub2a5\" \uc6cc\ud06c\ud50c\ub85c\ub97c \uad00\ub9ac\ud558\ub294 \uac83\uc774 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774 \ubb38\uc81c\uac00 \uc5c6\ub2e4\uba74 \"\uc0ac\uc6a9 \uac00\ub2a5\" \uac1c\ub150\uc744 \uc81c\uac70\ud558\uace0 \uc5d0\uc774\uc804\ud2b8\uac00 \ubaa8\ub4e0 \uc6cc\ud06c\ud50c\ub85c\ub97c \ubc1c\uacac\ud558\uace0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uac8c \ud558\uc138\uc694!\n\n### \ucd9c\ub825"
      },
      "typeVersion": 1
    },
    {
      "id": "ec3194d2-90c8-4019-a1b5-576c61e9a8b0",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2600,
        -280
      ],
      "parameters": {
        "color": 5,
        "width": 380,
        "height": 120,
        "content": "\uae30\uc874 \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \uc5bc\ub9c8\ub098 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub098\uc694?  \n\uc74c, \uc815\ub9d0\ub85c \uc6d0\ud558\ub294 \ub9cc\ud07c\uc694! \uc774 \uc608\uc81c\uc758 \uacbd\uc6b0, \"mcp\" \ud0dc\uadf8\uac00 \ubd99\uc740 \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub85c \uc81c\ud55c\ud588\uc9c0\ub9cc, \uc774 \ud544\ud130\ub97c \uc81c\uac70\ud558\uba74 \ubaa8\ub450 \ud5c8\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "5f587241-5604-4724-bc01-3c9bc3f7bdc2",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1720,
        1000
      ],
      "parameters": {
        "height": 440,
        "content": "### \ud83d\udea8 \uc774 \ub178\ub4dc\uac00 \uc785\ub825 \uc2a4\ud0a4\ub9c8\ub97c \uc124\uc815\ud558\uc9c0 \uc54a\uac8c \ud558\uc138\uc694!\n\n\ud328\uc2a4\uc4f0\ub8e8 \ud30c\ub77c\ubbf8\ud130\uac00 \uc791\ub3d9\ud558\ub824\uba74, \uc774 \ub178\ub4dc\uac00 \uc785\ub825 \uc2a4\ud0a4\ub9c8 \ud544\ub4dc\ub97c \uc81c\uacf5\ud558\uc9c0 \uc54a\uac8c \ud574\uc57c \ud569\ub2c8\ub2e4. \uc989, \uc785\ub825 \ud544\ub4dc\uac00 \ubcf4\uc774\uc9c0 \uc54a\uac8c \ud574\uc57c \ud569\ub2c8\ub2e4.\n\n\ub9cc\uc57d \uadf8\ub7f0 \uacbd\uc6b0\uac00 \uc788\uc73c\uba74, \ub178\ub4dc\ub97c \uc7ac\uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4!\n\n### \ucd9c\ub825"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Split Out": {
      "main": [
        [
          {
            "node": "Filter Matching IDs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete Key": {
      "main": [
        [
          {
            "node": "Remove Tool Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Memory": {
      "main": [
        [
          {
            "node": "Operations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MCP Client": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Operations": {
      "main": [
        [
          {
            "node": "Get MCP-tagged Workflows",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Convert to JSON",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "listTools Success",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get MCP-tagged Workflows1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Convert to JSON1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add Workflow": {
      "ai_tool": [
        [
          {
            "node": "N8N Workflows MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Get Parameters": {
      "main": [
        [
          {
            "node": "Execute Workflow with PassThrough Variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Workflows": {
      "ai_tool": [
        [
          {
            "node": "N8N Workflows MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "RemoveWorkflow": {
      "ai_tool": [
        [
          {
            "node": "N8N Workflows MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Convert to JSON": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ExecuteWorkflow": {
      "ai_tool": [
        [
          {
            "node": "N8N Workflows MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Is Empty Array?": {
      "main": [
        [
          {
            "node": "Delete Key",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Store In Memory1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SearchWorkflows": {
      "ai_tool": [
        [
          {
            "node": "N8N Workflows MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Store In Memory": {
      "main": [
        [
          {
            "node": "AddTool Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to JSON1": {
      "main": [
        [
          {
            "node": "Has Workflow Available?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store In Memory1": {
      "main": [
        [
          {
            "node": "Remove Tool Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Exists?": {
      "main": [
        [
          {
            "node": "Simplify Workflows",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AddTool Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Simplify Workflows": {
      "main": [
        [
          {
            "node": "Store In Memory",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Matching IDs": {
      "main": [
        [
          {
            "node": "Is Empty Array?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Matching Ids": {
      "main": [
        [
          {
            "node": "Workflow Exists?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simplify Workflows1": {
      "main": [
        [
          {
            "node": "listTools Success1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has Workflow Available?": {
      "main": [
        [
          {
            "node": "Get Parameters",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ExecuteTool Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get MCP-tagged Workflows": {
      "main": [
        [
          {
            "node": "Filter Matching Ids",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get MCP-tagged Workflows1": {
      "main": [
        [
          {
            "node": "Simplify Workflows1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Get Memory",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Workflow with PassThrough Variables": {
      "main": [
        [
          {
            "node": "executeTool Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}