This workflow follows the Agent → Chat Trigger recipe pattern — see all workflows that pair these two integrations.
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 →
{
"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
}
]
]
}
}
}
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.
n8nApiopenAiApiredis
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 interconnected n8n automations by automatically discovering and linking workflows tagged with MCP, ensuring seamless data flow across complex setups without manual intervention. It's ideal for teams building scalable automation chains who need reliable event-driven responses to triggers from other workflows. The key step involves filtering and storing matching workflow IDs in Redis for quick retrieval, integrating n8n's API with an agent for intelligent processing.
Use this when orchestrating multi-workflow systems triggered by events, such as propagating updates across a suite of automations, to maintain efficiency in dynamic environments. Avoid it for simple, standalone tasks where basic triggers suffice, or if your setup lacks Redis for in-memory storage. Common variations include adapting the filter for custom tags or expanding the agent to handle additional integrations like chat triggers.
About this workflow
3770. Uses executeWorkflowTrigger, n8n, redis, agent. Event-driven trigger; 46 nodes.
Source: https://github.com/n8nKOR/n8n-shared-workflow/blob/62a671327e906c22a40d290b339ff6d2373f8d75/workflows/n8nworkflows/ai/3770.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
The AI-Powered Shopify SEO Content Automation is an enterprise-grade workflow that transforms product content creation for e-commerce stores. This sophisticated multi-agent system integrates GPT-4o, C
Splitout Redis. Uses executeWorkflowTrigger, n8n, redis, splitOut. Event-driven trigger; 46 nodes.
Designing agent tools for outcome rather than utility has been a long recommended practice of mine and it applies well when it comes to building MCP servers; In gist, agents to be making the least amo
🔥📈🤖 AI Agent for n8n Creators Leaderboard - Find Popular Workflows. Uses httpRequest, limit, lmChatOpenAi, executeWorkflowTrigger. Event-driven trigger; 43 nodes.
🔥📈🤖 AI Agent for n8n Creators Leaderboard - Find Popular Workflows. Uses httpRequest, limit, lmChatOpenAi, executeWorkflowTrigger. Event-driven trigger; 43 nodes.