{
  "nodes": [
    {
      "id": "24be8907-684e-4b57-9642-6f4a45ca7af3",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        -280
      ],
      "parameters": {
        "color": 7,
        "width": 680,
        "height": 660,
        "content": "## 1. MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70 \uc124\uc815\n\n[MCP Server Trigger\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger)"
      },
      "typeVersion": 1
    },
    {
      "id": "d5845d0a-648f-4bc1-b087-bc0d17506ed3",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        -400
      ],
      "parameters": {
        "color": 5,
        "width": 380,
        "height": 100,
        "content": "\ud56d\uc0c1 \uc11c\ubc84\ub97c \uc778\uc99d\ud558\uc138\uc694! \ud504\ub85c\ub355\uc158\uc5d0 \ubc30\ud3ec\ud558\uae30 \uc804\uc5d0, MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\uc5d0 \uc778\uc99d\uc744 \ud65c\uc131\ud654\ud558\ub294 \uac83\uc774 \ud56d\uc0c1 \uad8c\uace0\ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "fe9f1c8e-8334-4732-be3a-5ee49036e11e",
      "name": "FileSystem MCP Server",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        -180,
        -140
      ],
      "parameters": {
        "path": "0d93cfd5-2fbf-457e-9535-5bfc9a73ba9e"
      },
      "typeVersion": 1
    },
    {
      "id": "fb49782f-d8de-480b-a470-e37adb2e3036",
      "name": "ListDirectory",
      "type": "n8n-nodes-base.executeCommandTool",
      "position": [
        -300,
        60
      ],
      "parameters": {
        "command": "=ls /home/node/{{ $fromAI('path', 'optional, leave blank for project root directory.') }}",
        "toolDescription": "List directories under the project root folder. The project root directory is /home/node/"
      },
      "typeVersion": 1
    },
    {
      "id": "8fa93054-bcf5-4fbc-9825-df16be063eb2",
      "name": "CreateDirectory",
      "type": "n8n-nodes-base.executeCommandTool",
      "position": [
        -200,
        160
      ],
      "parameters": {
        "command": "=mkdir -p /home/node/{{ $fromAI('filename', 'name of directory. Will be scoped under the /home/node/ project root directory. Optionally use path to create within subdirectories') }}",
        "toolDescription": "Create directories under the project root folder. The project root folder is /home/node."
      },
      "typeVersion": 1
    },
    {
      "id": "aafe884d-0e6e-476a-92fe-b2111f624417",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        400,
        40
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "operation"
            },
            {
              "name": "filenames",
              "type": "array"
            },
            {
              "name": "contents",
              "type": "array"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "d85925b6-d58d-43b5-a6ca-3e43cbc81121",
      "name": "Operation",
      "type": "n8n-nodes-base.switch",
      "position": [
        580,
        40
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "writeOneOrMultipleFiles",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "c1da2138-e2df-46d4-b1f4-97525c05e778",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.operation }}",
                    "rightValue": "writeOneOrMultipleFiles"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "readOneOrMultipleFiles",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "cc02a5a2-609c-4dbe-bdb6-45f145947e47",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.operation }}",
                    "rightValue": "readOneOrMultipleFiles"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "e9ec2928-5e33-4213-a53a-92b7d840d49e",
      "name": "readOneOrMultipleFiles",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        840,
        140
      ],
      "parameters": {
        "command": "=cat {{ $json.filenames.join(' ') }}"
      },
      "typeVersion": 1
    },
    {
      "id": "77ba2a48-b4b9-4a23-818d-e028a7762514",
      "name": "ReadFiles",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        40,
        160
      ],
      "parameters": {
        "name": "readFil",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "=Call this tool to read the contents of a file. Include file extension.",
        "workflowInputs": {
          "value": {
            "contents": "[]",
            "filenames": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('filenames', `An array of filenames`, 'string') }}",
            "operation": "readOneOrMultipleFiles"
          },
          "schema": [
            {
              "id": "operation",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "operation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "filenames",
              "type": "array",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "filenames",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "contents",
              "type": "array",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "contents",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "2ddf9a9a-cade-41c0-a068-482345452d4b",
      "name": "WriteFiles",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        140,
        60
      ],
      "parameters": {
        "name": "write_file",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "Call this tool to write contents to one or more files. Filenames and Contents are matched by their respective Array Indexes. Eg. To write to a single file, use { filenames: [<filename1>,<filename2>], contents: [<content1>,<content2>] } ",
        "workflowInputs": {
          "value": {
            "contents": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('contents', `An array of strings for content to be written`, 'string') }}",
            "filenames": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('filenames', `An array of strings for filenames`, 'string') }}",
            "operation": "writeOneOrMultipleFiles"
          },
          "schema": [
            {
              "id": "operation",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "operation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "filenames",
              "type": "array",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "filenames",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "contents",
              "type": "array",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "contents",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "a5d9e11b-0583-4c67-b30b-be1d4185b891",
      "name": "writeOneOrMultipleFiles",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        840,
        -60
      ],
      "parameters": {
        "command": "={{\n$json.filenames.map((filename,idx) =>\n  `echo \"${$json.contents[idx] ?? ''}\" > /home/node/${filename}`\n).join('\\n')\n}}"
      },
      "typeVersion": 1
    },
    {
      "id": "de2f715c-b6d1-4702-9d39-2527108b5706",
      "name": "SearchDirectory",
      "type": "n8n-nodes-base.executeCommandTool",
      "position": [
        -80,
        240
      ],
      "parameters": {
        "command": "=find /home/node/ -name \"{{ $fromAI('filename', 'A name search paramter for the linux find tool') }}\"\n",
        "toolDescription": "Search the project folder for a file by name. The project root directory is /home/node/"
      },
      "typeVersion": 1
    },
    {
      "id": "a4918bb1-8882-45c8-a05c-a3e22912cc0f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        -280
      ],
      "parameters": {
        "color": 7,
        "width": 740,
        "height": 660,
        "content": "## 2. \ub354 \ubcf5\uc7a1\ud55c \uba85\ub839\uc744 \uc704\ud55c \ub9de\ucda4\ud615 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \ub3c4\uad6c \uc0ac\uc6a9\n\n[\uc2e4\ud589 \uba85\ub839 \ub3c4\uad6c\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executecommand/)"
      },
      "typeVersion": 1
    },
    {
      "id": "ebf6c15b-e4e0-4db0-bb4e-36e204fb6a47",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        -740
      ],
      "parameters": {
        "width": 460,
        "height": 1120,
        "content": "## \uc9c1\uc811 \ud574\ubcf4\uc138\uc694!\n### \uc774 n8n\uc740 \uac04\ub2e8\ud55c FileSystem MCP \uc11c\ubc84\ub97c \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \uc774 \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud558\uba74 MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc5d0\uc774\uc804\ud2b8\uac00 \ub85c\uceec \uba38\uc2e0 \ub610\ub294 \uc6d0\uaca9 \uc11c\ubc84\uc758 \ub514\ub809\ud130\ub9ac\uc640 \ud30c\uc77c\uc744 \ub098\uc5f4, \uc77d\uae30, \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n\uc774 MCP \uc608\uc81c\ub294 \uacf5\uc2dd MCP \ucc38\uc870 \uad6c\ud604\uc744 \uae30\ubc18\uc73c\ub85c \ud558\uba70, \uc5ec\uae30\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4 - https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem\n\n### \uc791\ub3d9 \uc6d0\ub9ac\n* MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\uac00 \uc0ac\uc6a9\ub418\uba70, 5\uac1c\uc758 \ub3c4\uad6c\uc5d0 \uc5f0\uacb0\ub429\ub2c8\ub2e4: 3\uac1c\uc758 Execute Command \ub3c4\uad6c\uc640 2\uac1c\uc758 \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c \ub3c4\uad6c.\n* 3\uac1c\uc758 Execute Command \ub3c4\uad6c\ub294 \ub514\ub809\ud130\ub9ac \ub098\uc5f4, \uac80\uc0c9 \ubc0f \uc0dd\uc131\uc744 \ud5c8\uc6a9\ud569\ub2c8\ub2e4.\n* 2\uac1c\uc758 \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c \ub3c4\uad6c\ub294 \ub514\uc2a4\ud06c\uc5d0 \ud30c\uc77c\uc744 \uc77d\uace0 \uc4f0\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.\n* MCP \uc5d0\uc774\uc804\ud2b8\uac00 \ub300\uc0c1 \uc11c\ubc84\uc5d0\uc11c \uc784\uc758\uc758 Linux \uba85\ub839\uc744 \uc2e4\ud589\ud558\uc9c0 \ubabb\ud558\ub3c4\ub85d \ud2b9\ubcc4\ud788 \uc8fc\uc758\ud588\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc5d0\uc774\uc804\ud2b8\uac00 \uc6d0\uc2dc \uba85\ub839\uc774 \uc544\ub2cc \ud30c\uc77c\uba85\uacfc \uacbd\ub85c\uc640 \uac19\uc740 \ub9e4\uac1c\ubcc0\uc218\ub9cc \uc81c\uacf5\ud558\ub3c4\ub85d \uc81c\ud55c\ud558\uc5ec \ub2ec\uc131\ub429\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uc774 Filesystem MCP \uc11c\ubc84\ub294 n8n \uc778\uc2a4\ud134\uc2a4\ub97c \ud638\uc2a4\ud305\ud558\ub294 \uc11c\ubc84\uc5d0 \uc4f0\uae30 \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4 - \uc774\ub294 \ub85c\uceec \uba38\uc2e0 \ub610\ub294 \uc6d0\uaca9 \uc11c\ubc84\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub300\uc0c1 \ud30c\uc77c \uc2dc\uc2a4\ud15c\uc774 \uc774 \ub458 \uc911 \ud558\ub098\uac00 \uc544\ub2cc \uacbd\uc6b0, \uba85\ub839\uc744 \uc218\uc815\ud558\uc5ec \uc6d0\ud558\ub294 \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud558\uc138\uc694.\n* MCP \ud074\ub77c\uc774\uc5b8\ud2b8\ub97c \uc5f0\uacb0\ud558\ub824\uba74 n8n \uc9c0\uce68\uc744 \ub530\ub974\uc138\uc694 - https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/#integrating-with-claude-desktop\n* MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \ub2e4\uc74c \ucffc\ub9ac\ub97c \uc2dc\ub3c4\ud558\uc138\uc694:\n  * \"\ud504\ub85c\uc81d\ud2b8 \ub514\ub809\ud130\ub9ac \uc544\ub798\uc758 \ubaa8\ub4e0 \ud3f4\ub354\ub97c \ub098\uc5f4\ud574 \uc8fc\uc138\uc694.\"\n  * \"Slack\uc5d0 \uc54c\ub9bc\uc744 \ubcf4\ub0b4\ub294 bash \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc0dd\uc131\ud574 \uc8fc\uc138\uc694.\"\n  * \"4\uc6d4 22\uc77c \ub85c\uadf8 \ud30c\uc77c\uc744 \uac80\uc0c9\ud558\uc5ec \ub0b4\uc6a9\uc744 \uc77d\uc5b4\uc8fc\uc138\uc694. \uc7a5\uc560\uc758 \uc6d0\uc778\uc740 \ubb34\uc5c7\uc774\uc5c8\ub098\uc694?\"\n\n### \uc694\uad6c \uc0ac\ud56d\n* \uc774 \uc608\uc81c \ud15c\ud50c\ub9bf\uc758 \uacbd\uc6b0 Linux \ud30c\uc77c \uc2dc\uc2a4\ud15c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. Windows\uc5d0\uc11c \uc791\uc5c5\ud558\ub294 \uacbd\uc6b0 \uc790\uc720\ub86d\uac8c \uc218\uc815\ud558\uc138\uc694.\n* MCP \ud074\ub77c\uc774\uc5b8\ud2b8 \ub610\ub294 \uc5d0\uc774\uc804\ud2b8(\uc608: Claude Desktop)\ub97c \uc0ac\uc6a9\ud558\uc138\uc694 - https://claude.ai/download\n\n### \uc774 \uc6cc\ud06c\ud50c\ub85c \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\n* \ud30c\uc77c \uc774\ub3d9 \ubc0f \uc774\ub984 \ubcc0\uacbd\uc744 \uad6c\ud604\ud558\ub824\uba74 MCP \uc11c\ubc84\uc5d0 \ub354 \ub9ce\uc740 \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c \ub3c4\uad6c\ub97c \ucd94\uac00\ud558\uc138\uc694.\n* \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c \uc774 MCP \uc11c\ubc84\ub97c \ub2e4\ub978 \uc0ac\ub78c\uacfc \uacf5\uc720\ud558\uae30 \uc804\uc5d0 \uc790\uaca9 \uc99d\uba85 \uc694\uad6c \uc124\uc815\uc744 \uc78a\uc9c0 \ub9c8\uc138\uc694!\n\n### \ucd9c\ub825"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Operation": {
      "main": [
        [
          {
            "node": "writeOneOrMultipleFiles",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "readOneOrMultipleFiles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ReadFiles": {
      "ai_tool": [
        [
          {
            "node": "FileSystem MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "WriteFiles": {
      "ai_tool": [
        [
          {
            "node": "FileSystem MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "ListDirectory": {
      "ai_tool": [
        [
          {
            "node": "FileSystem MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "CreateDirectory": {
      "ai_tool": [
        [
          {
            "node": "FileSystem MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "SearchDirectory": {
      "ai_tool": [
        [
          {
            "node": "FileSystem MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Operation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}