{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "fb5b682b-5e30-497e-b465-c3369bb3c2e3",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        -20
      ],
      "parameters": {
        "color": 7,
        "width": 680,
        "height": 660,
        "content": "## 1. MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70 \uc124\uc815  \n[MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\uc5d0 \ub300\ud574 \ub354 \uc77d\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger)"
      },
      "typeVersion": 1
    },
    {
      "id": "cfc2c7f1-a6ee-42a9-b955-e5bce012b6e1",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 380,
        "height": 100,
        "content": "\ud56d\uc0c1 \uc11c\ubc84\ub97c \uc778\uc99d\ud558\uc138\uc694! \ud504\ub85c\ub355\uc158\uc73c\ub85c \uac00\uae30 \uc804\uc5d0, MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\uc5d0\uc11c \uc778\uc99d\uc744 \ud65c\uc131\ud654\ud558\ub294 \uac83\uc774 \ud56d\uc0c1 \uad8c\uc7a5\ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "79586d35-0582-4da8-91da-5bc8451c2089",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        800,
        360
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "operation"
            },
            {
              "name": "folderId"
            },
            {
              "name": "fileId"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "02aee033-58e8-4f33-a18d-b872840e81d8",
      "name": "Google Drive MCP Server",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        160,
        160
      ],
      "parameters": {
        "path": "a289c719-fb71-4b08-97c6-79d12645dc7e"
      },
      "typeVersion": 1
    },
    {
      "id": "e0e50653-d98a-4ad4-a2ed-e1b73332c380",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        -20
      ],
      "parameters": {
        "color": 7,
        "width": 1340,
        "height": 860,
        "content": "## 2. \ubcc0\ud658 \ubc0f AI\ub97c \ud1b5\ud55c \uc5ec\ub7ec \uc774\uc9c4 \ud615\uc2dd \ucc98\ub9ac\n\n[PostgreSQL Node\uc5d0 \ub300\ud574 \ub354 \uc77d\uae30](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.postgres/)\n\nMCP \ud074\ub77c\uc774\uc5b8\ud2b8(\ub610\ub294 AI \uc5d0\uc774\uc804\ud2b8)\ub294 \uc5ec\uc804\ud788 \uc6b0\ub9ac MCP \uc11c\ubc84\ub85c\ubd80\ud130 \ud14d\uc2a4\ud2b8 \uc751\ub2f5\uc744 \uae30\ub300\ud558\uace0 \uc694\uad6c\ud569\ub2c8\ub2e4.\n\nN8N\uc740 PDF, CSV \ubc0f XML\uacfc \uac19\uc740 \ub300\ubd80\ubd84\uc758 \ud14d\uc2a4\ud2b8 \ud615\uc2dd\uc744 \uad6c\ubb38 \ubd84\uc11d\ud558\uae30 \uc704\ud55c \uc801\uc808\ud55c \ubcc0\ud658 \ub3c4\uad6c\ub97c \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n\uc774\ubbf8\uc9c0, \uc624\ub514\uc624 \ubc0f \ube44\ub514\uc624\uc758 \uacbd\uc6b0, \ud30c\uc77c\uc744 \uc124\uba85\ud558\uac70\ub098 \ud544\uc0ac\ud558\uae30 \uc704\ud574 \ub2e4\uc911 \ubaa8\ub2ec LLMs\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc744 \uace0\ub824\ud558\uc138\uc694."
      },
      "typeVersion": 1
    },
    {
      "id": "6be1ff49-5edc-42d2-87de-09d207ee7733",
      "name": "Download File1",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1160,
        360
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.fileId }}"
        },
        "options": {
          "googleFileConversion": {
            "conversion": {
              "docsToFormat": "text/plain",
              "slidesToFormat": "application/pdf"
            }
          }
        },
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "91b0a549-0494-48a1-bdf3-6c2b91409d01",
      "name": "FileType",
      "type": "n8n-nodes-base.switch",
      "position": [
        1340,
        320
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "pdf",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "7b6958ce-d553-4379-a5d6-743f39b342d0",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $binary.data.mimeType }}",
                    "rightValue": "application/pdf"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "csv",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "d0816a37-ac06-49e3-8d63-17fcd061e33f",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $binary.data.mimeType }}",
                    "rightValue": "text/csv"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "image",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "589540e1-1439-41e3-ba89-b27f5e936190",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{\n[\n  'image/jpeg',\n  'image/jpg',\n  'image/png',\n  'image/gif'\n].some(mimeType => $binary.data.mimeType === mimeType)\n}}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "audio",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "b8fc61a1-6057-4db3-960e-b8ddcbdd0f31",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $binary.data.mimeType }}",
                    "rightValue": "audio"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "video",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "959d65a6-372f-4978-b2d1-f28aa1e372c6",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $binary.data.mimeType }}",
                    "rightValue": "video"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "d88ed202-1121-41db-859d-b31d53d46292",
      "name": "Operation",
      "type": "n8n-nodes-base.switch",
      "position": [
        980,
        360
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "ReadFile",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "b03bb746-dc4e-469c-b8e6-a34c0aa8d0a6",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.operation }}",
                    "rightValue": "readFile"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "7e8791e6-24c2-441a-8efb-7f4375f2519b",
      "name": "Extract from PDF",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        1620,
        80
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "2b33623c-cea4-4a83-80ef-f852b9a3d126",
      "name": "Extract from CSV",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        1620,
        260
      ],
      "parameters": {
        "options": {
          "encoding": "utf-8",
          "headerRow": false,
          "relaxQuotes": true,
          "includeEmptyCells": true
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6ca2542d-225e-4a65-b5ce-3edafb11379c",
      "name": "Get PDF Response",
      "type": "n8n-nodes-base.set",
      "position": [
        1780,
        80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a481cde3-b8ec-4d97-aa13-4668bd66c24d",
              "name": "response",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "3d1c4aa6-cac1-4957-ab7e-3134368e4b53",
      "name": "Get CSV Response",
      "type": "n8n-nodes-base.set",
      "position": [
        1780,
        260
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a481cde3-b8ec-4d97-aa13-4668bd66c24d",
              "name": "response",
              "type": "string",
              "value": "={{\n$input.all()\n  .map(item => item.json.row.map(cell => `\"${cell}\"`).join(','))\n  .join('\\n')\n}}"
            }
          ]
        }
      },
      "executeOnce": true,
      "typeVersion": 3.4
    },
    {
      "id": "141444f9-e937-41f9-ab97-09624646ddba",
      "name": "Read File From GDrive",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        400,
        380
      ],
      "parameters": {
        "name": "ReadFile",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "Call this tool to download and read the contents of a file within google drive.",
        "workflowInputs": {
          "value": {
            "fileId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fileId', ``, 'string') }}",
            "folderId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('folderId', ``, 'string') }}",
            "operation": "readFile"
          },
          "schema": [
            {
              "id": "operation",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "operation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "folderId",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "folderId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "fileId",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "fileId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b5851527-0b57-447b-ac8c-10408a684862",
      "name": "Search Files from Gdrive",
      "type": "n8n-nodes-base.googleDriveTool",
      "position": [
        240,
        380
      ],
      "parameters": {
        "limit": 10,
        "filter": {
          "driveId": {
            "mode": "list",
            "value": "My Drive"
          },
          "whatToSearch": "files"
        },
        "options": {},
        "resource": "fileFolder",
        "queryString": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Search_Query', ``, 'string') }}"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "98197c91-c7e9-4fbb-a2b1-c16c873fa0a1",
      "name": "Analyse Image",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1620,
        440
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "resource": "image",
        "inputType": "base64",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "b44a787a-c670-47e1-b87e-d880425ce610",
      "name": "Transcribe Audio",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1620,
        620
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "1e1a358d-769e-48c9-bf27-6a3cfaaacb14",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -500,
        -420
      ],
      "parameters": {
        "width": 440,
        "height": 1060,
        "content": "## \uc9c1\uc811 \ud574\ubcf4\uc138\uc694!\n\n### \uc774 n8n\uc740 Google Drive\uc5d0\uc11c \ud30c\uc77c\uc744 \uac80\uc0c9\ud558\uace0 \ub0b4\uc6a9\uc744 \uac00\uc838\uc624\ub294 \uac04\ub2e8\ud55c Google Drive MCP \uc11c\ubc84\ub97c \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\uc90d\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/gdrive\n\n### \uc791\ub3d9 \uc6d0\ub9ac\n* MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\ub97c \uc0ac\uc6a9\ud558\uace0 1x Google Drive \ub3c4\uad6c\uc640 1x Custom Workflow \ub3c4\uad6c\uc5d0 \uc5f0\uacb0\ud569\ub2c8\ub2e4.\n* Google Drive \ub3c4\uad6c\ub294 Google Drive \ud3f4\ub354 \ub0b4 \ud30c\uc77c\uc744 \uac80\uc0c9\ud558\ub3c4\ub85d \uc124\uc815\ub429\ub2c8\ub2e4.\n* Custom Workflow \ub3c4\uad6c\ub294 \ub4dc\ub77c\uc774\ube0c\uc5d0\uc11c \ucc3e\uc740 \ub300\uc0c1 \ud30c\uc77c\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0 \ubc14\uc774\ub108\ub9ac\ub97c \ud14d\uc2a4\ud2b8 \ud45c\ud604\uc73c\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, PDF\uc758 \uacbd\uc6b0 \ud14d\uc2a4\ud2b8 \ub0b4\uc6a9\ub9cc \ucd94\ucd9c\ud558\uc5ec MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ubc18\ud658\ud569\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uc774 Google Drive MCP \uc11c\ubc84\ub97c \ud1b5\ud574 \ud638\ud658\ub418\ub294 MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uac1c\uc778 \ub610\ub294 \uacf5\uc720 Google Drive\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub4dc\ub77c\uc774\ube0c\ub97c \uc120\ud0dd\ud558\uac70\ub098 \ub354 \ub098\uc740 \uc81c\uc5b4\ub97c \uc704\ud574 \ub4dc\ub77c\uc774\ube0c \ub0b4 \ud2b9\uc815 \ud3f4\ub354\ub97c \uc9c0\uc815\ud558\uc5ec \uc791\uc5c5 \ubc94\uc704\ub97c \uc81c\ud55c\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\ud574 \ubcf4\uc138\uc694:\n  * \"\uc9c0\ub09c \ub2ec \uacbd\ube44 \ubcf4\uace0\uc11c\ub97c \uac80\uc0c9\ud574 \uc8fc\uc138\uc694.\"\n  * \"\ud68c\uc0ac \uc815\ucc45 \ubb38\uc11c\uc5d0\uc11c \ucde8\uc18c \ubc0f \ud658\ubd88\uc5d0 \ub300\ud574 \ubb50\ub77c\uace0 \ub098\uc640 \uc788\ub098\uc694?\"\n\n### \uc694\uad6c \uc0ac\ud56d\n* \ubb38\uc11c\ub97c \uc704\ud55c Google Drive.\n* \uc774\ubbf8\uc9c0 \ubc0f \uc624\ub514\uc624 \uc774\ud574\ub97c \uc704\ud55c OpenAI.\n* Claude Desktop\uacfc \uac19\uc740 \uc0ac\uc6a9\uc744 \uc704\ud55c MCP \ud074\ub77c\uc774\uc5b8\ud2b8 \ub610\ub294 \uc5d0\uc774\uc804\ud2b8 - https://claude.ai/download\n\n### \uc774 \uc6cc\ud06c\ud50c\ub85c \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\n* \ud30c\uc77c \uc774\ub984 \ubcc0\uacbd, \uc774\ub3d9 \ubc0f/\ub610\ub294 \uc0ad\uc81c\uc640 \uac19\uc740 \ucd94\uac00 \uae30\ub2a5\uc744 \ucd94\uac00\ud558\uc138\uc694.\n* \ud504\ub85c\ub355\uc158\uc5d0 \ubc30\ud3ec\ud558\uac70\ub098 \uc774 MCP \uc11c\ubc84\ub97c \ud0c0\uc778\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": {
    "FileType": {
      "main": [
        [
          {
            "node": "Extract from PDF",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract from CSV",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Analyse Image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Transcribe Audio",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Operation": {
      "main": [
        [
          {
            "node": "Download File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File1": {
      "main": [
        [
          {
            "node": "FileType",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from CSV": {
      "main": [
        [
          {
            "node": "Get CSV Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from PDF": {
      "main": [
        [
          {
            "node": "Get PDF Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read File From GDrive": {
      "ai_tool": [
        [
          {
            "node": "Google Drive MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Search Files from Gdrive": {
      "ai_tool": [
        [
          {
            "node": "Google Drive MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Operation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}