This workflow follows the Execute Workflow Trigger → Postgres 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": "0c49141e-128c-424e-afdf-ea131b7a3dd8",
"name": "GetTableSchema",
"type": "n8n-nodes-base.postgresTool",
"position": [
-460,
220
],
"parameters": {
"query": "SELECT column_name, data_type FROM information_schema.columns WHERE table_name = $1",
"options": {
"queryReplacement": "={{ $fromAI('tableName', 'The name of the table.') }}"
},
"operation": "executeQuery",
"descriptionType": "manual",
"toolDescription": "Read a table's schema."
},
"credentials": {
"postgres": {
"name": "<your credential>"
}
},
"typeVersion": 2.6
},
{
"id": "8ffeefb9-357c-41bc-8239-0c07c706be97",
"name": "ListTables",
"type": "n8n-nodes-base.postgresTool",
"position": [
-340,
300
],
"parameters": {
"query": "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'",
"options": {},
"operation": "executeQuery",
"descriptionType": "manual",
"toolDescription": "List all available tables."
},
"credentials": {
"postgres": {
"name": "<your credential>"
}
},
"typeVersion": 2.6
},
{
"id": "efcf7ff3-976e-448a-9d47-47a98f3b0fcb",
"name": "When Executed by Another Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
280,
200
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "operation"
},
{
"name": "tableName"
},
{
"name": "values",
"type": "object"
},
{
"name": "where",
"type": "object"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "abd292d7-fc2b-4e98-a474-b50e44d16b6c",
"name": "CreateTableRecords",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
-240,
400
],
"parameters": {
"name": "CreateTableRows",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "Call this tool to create a row in the database.",
"workflowInputs": {
"value": {
"where": "={{ {} }}",
"values": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('values', `An object of key-value pair where key represents the column name.`, 'string') }}",
"operation": "insert",
"tableName": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('tableName', `Name of table to update`, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "tableName",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "tableName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "values",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "values",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "where",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "where",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "4a71d42a-99a5-489e-b449-09c3c5081505",
"name": "ReadTableRecord",
"type": "n8n-nodes-base.postgres",
"position": [
760,
0
],
"parameters": {
"query": "SELECT * FROM {{ $json.tableName }}\n{{ $json.where && Object.keys($json.where).length > 0\n ? `WHERE ` + Object.keys($json.where).map((key,idx) => `${key} = $${idx+1}`).join(' AND ')\n : ''\n}}",
"options": {
"queryReplacement": "={{ Object.values($json.where).join(',') }}"
},
"operation": "executeQuery"
},
"credentials": {
"postgres": {
"name": "<your credential>"
}
},
"typeVersion": 2.6,
"alwaysOutputData": true
},
{
"id": "bdc60aa8-9ab1-4bbd-8b9e-89c968d54043",
"name": "Operation",
"type": "n8n-nodes-base.switch",
"position": [
460,
200
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "READ",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "81b134bc-d671-4493-b3ad-8df9be3f49a6",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.operation }}",
"rightValue": "read"
}
]
},
"renameOutput": true
},
{
"outputKey": "INSERT",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8d57914f-6587-4fb3-88e0-aa1de6ba56c1",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.operation }}",
"rightValue": "insert"
}
]
},
"renameOutput": true
},
{
"outputKey": "UPDATE",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7c38f238-213a-46ec-aefe-22e0bcb8dffc",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.operation }}",
"rightValue": "update"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "cdb5b556-3638-4fa5-94c6-bff0c03f6c89",
"name": "UpdateTableRecord",
"type": "n8n-nodes-base.postgres",
"position": [
760,
400
],
"parameters": {
"query": "UPDATE {{ $json.tableName }}\nSET\n {{ Object.keys($json.values)\n .map((key,idx) => `${key} = $${idx+1}`)\n .join(',')\n}}\nWHERE\n {{ Object.keys($json.where)\n .map((key,idx) => `${key} = $${idx+Object.keys($json.values).length+1}`)\n .join(' AND ')\n}}",
"options": {
"queryReplacement": "={{ Object.values($json.values).join(',') }},{{ Object.values($json.where).join(',') }}"
},
"operation": "executeQuery"
},
"credentials": {
"postgres": {
"name": "<your credential>"
}
},
"typeVersion": 2.6
},
{
"id": "9263fc78-321e-4c83-90d3-890dd87d6aed",
"name": "UpdateTableRecords",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
-100,
320
],
"parameters": {
"name": "UpdateTableRows",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "Call this tool to create a row in the database.",
"workflowInputs": {
"value": {
"where": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('where', `An object of key-value pair where key represents the column name.`, 'string') }}",
"values": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('values', `An object of key-value pair where key represents the column name.`, 'string') }}",
"operation": "=update",
"tableName": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('tableName', `Table to update`, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "tableName",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "tableName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "values",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "values",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "where",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "where",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "dd7e28fb-b2c7-4084-bc9b-9aa3e0187682",
"name": "CreateTableRecord",
"type": "n8n-nodes-base.postgres",
"position": [
760,
200
],
"parameters": {
"query": "INSERT INTO {{ $json.tableName }}\n ({{ Object.keys($json.values).join(',') }})\nVALUES\n ({{ Object.keys($json.values).map((_,idx) => `$${idx+1}`).join(',') }})",
"options": {
"queryReplacement": "={{ Object.values($json.values).join(',') }}"
},
"operation": "executeQuery"
},
"credentials": {
"postgres": {
"name": "<your credential>"
}
},
"typeVersion": 2.6
},
{
"id": "324503c0-117b-45ec-97dd-7074eb1db22e",
"name": "ReadTableRows",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
20,
240
],
"parameters": {
"name": "ReadTableRows",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "Call this tool to read a row in the database.",
"workflowInputs": {
"value": {
"where": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('where', `An object of key-value pair where key represents the column name.`, 'string') }}",
"values": "{}",
"operation": "read",
"tableName": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('tableName', ``, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "tableName",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "tableName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "values",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "values",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "where",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "where",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "9cf39ca3-b704-49ce-b6e2-db2703c4acad",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-520,
-120
],
"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": "ac3d9b98-8f1e-4abd-972c-1725aac1ad1e",
"name": "PostgreSQL MCP Server",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-340,
20
],
"parameters": {
"path": "a5fd7047-e31b-4c0d-bd68-c36072c3da0d"
},
"typeVersion": 1
},
{
"id": "416a09d5-c327-410d-b951-a2d08402c6fe",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
180,
-120
],
"parameters": {
"color": 7,
"width": 820,
"height": 720,
"content": "## 2. \uc6d0\uc2dc SQL \ubb38 \ubc29\uc9c0\ub85c \ubcf4\uc548 \uc720\uc9c0\n[PostgreSQL Node\uc5d0 \ub300\ud574 \ub354 \uc77d\uae30](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.postgres/)\n\n\ub300\ub9ac\uc778\uc774 \uc804\uccb4 \uc6d0\uc2dc SQL \ubb38\uc744 \uc81c\uacf5\ud558\ub3c4\ub85d \ud558\ub294 \uac83\uc774 \ub354 \uc27d\uc9c0\ub9cc, \ucd5c\uc545\uc758 \uacbd\uc6b0 \ub370\uc774\ud130\uac00 \ubaa8\ub974\uac8c \uc720\ucd9c\ub418\uac70\ub098 \uc0ad\uc81c\ub420 \uc218 \uc788\ub294 \uc2e4\uc81c \ubcf4\uc548 \uc704\ud5d8\uc5d0 \ub2f9\uc2e0\uc774\ub098 \ub2f9\uc2e0\uc758 \uc870\uc9c1\uc744 \ub178\ucd9c\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n\ub300\ub9ac\uc778\uc774 \ucffc\ub9ac\uc758 \ub9e4\uac1c\ubcc0\uc218\ub9cc \uc81c\uacf5\ud558\ub3c4\ub85d \uac15\uc81c\ud558\uba74 \uc774 \uc704\ud5d8\uc5d0 \ub300\ud574 \uc5b4\ub290 \uc815\ub3c4 \ubc29\uc5b4\ud560 \uc218 \uc788\uc73c\uba70, SQL \uc778\uc81d\uc158 \uacf5\uaca9\uc5d0 \ub300\ud55c \ucd5c\uc120\uc758 \uad00\ud589\uc73c\ub85c \ucffc\ub9ac \ub9e4\uac1c\ubcc0\uc218\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"id": "0187fb3f-4c31-461d-84e9-4a4a0bf4188d",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1000,
-560
],
"parameters": {
"width": 440,
"height": 1320,
"content": "## \uc9c1\uc811 \ud574\ubcf4\uc138\uc694!\n### \uc774 n8n\uc740 \uac04\ub2e8\ud55c PostgreSQL MCP \uc11c\ubc84\ub97c \uad6c\ucd95\ud558\uc5ec HR, \uae09\uc5ec, \ud310\ub9e4, \uc7ac\uace0 \ubc0f \uae30\ud0c0\uc640 \uac19\uc740 PostgreSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uad00\ub9ac\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/postgres\n\n### \uc791\ub3d9 \uc6d0\ub9ac\n* MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\uac00 \uc0ac\uc6a9\ub418\uba70, 5\uac1c\uc758 \ub3c4\uad6c(2\uac1c\uc758 PostgreSQL \ubc0f 3\uac1c\uc758 \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c)\uc5d0 \uc5f0\uacb0\ub429\ub2c8\ub2e4.\n* 2\uac1c\uc758 PostgreSQL \ub3c4\uad6c\ub294 \uac04\ub2e8\ud55c \uc77d\uae30 \uc804\uc6a9 \ucffc\ub9ac\uc774\ubbc0\ub85c, PostgreSQL \ub3c4\uad6c\ub97c \uac04\ub2e8\ud788 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n* 3\uac1c\uc758 \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c \ub3c4\uad6c\ub294 \uc120\ud0dd, \uc0bd\uc785 \ubc0f \uc5c5\ub370\uc774\ud2b8 \ucffc\ub9ac\uc5d0 \uc0ac\uc6a9\ub418\uba70, \uc774\ub7ec\ud55c \uc791\uc5c5\uc740 \uc57d\uac04 \ub354 \uc2e0\uc911\ud55c \ucc98\ub9ac\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.\n* \uc5d0\uc774\uc804\ud2b8\uac00 \uc6d0\uc2dc SQL \ucffc\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \ub354 \uc27d\uc9c0\ub9cc, \ub9e4\uac1c\ubcc0\uc218\ub9cc \ud5c8\uc6a9\ud558\ub294 \uac83\uc774 \uc870\uae08 \ub354 \uc548\uc804\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uba74 \ub3c4\uad6c \uc785\ub825\uc5d0 \ub300\ud55c \uc81c\ud55c\ub41c \uc2a4\ud0a4\ub9c8\ub97c \uc815\uc758\ud558\uc5ec SQL \ubb38\uc744 \uc9c1\uc811 \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n* 3\uac1c\uc758 \ucee4\uc2a4\ud140 \uc6cc\ud06c\ud50c\ub85c \ub3c4\uad6c\ub294 \uc774 \ud15c\ud50c\ub9bf\uc758 \ub3d9\uc77c\ud55c \"\uc6cc\ud06c\ud50c\ub85c \uc2e4\ud589\" \ud2b8\ub9ac\uac70\ub97c \ud2b8\ub9ac\uac70\ud558\uba70, \uc2a4\uc704\uce58\ub97c \ud1b5\ud574 \uc791\uc5c5\uc744 \uc62c\ubc14\ub978 \ud578\ub4e4\ub7ec\ub85c \ub77c\uc6b0\ud305\ud569\ub2c8\ub2e4.\n* \ub9c8\uc9c0\ub9c9\uc73c\ub85c, \ud45c\uc900 PostgreSQL \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc120\ud0dd, \uc0bd\uc785 \ubc0f \uc5c5\ub370\uc774\ud2b8 \uc791\uc5c5\uc744 \ucc98\ub9ac\ud569\ub2c8\ub2e4. \uc751\ub2f5\uc740 MCP \ud074\ub77c\uc774\uc5b8\ud2b8\ub85c \ub2e4\uc2dc \ubcf4\ub0b4\uc9d1\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uc774 PostgreSQL MCP \uc11c\ubc84\ub294 \uc120\ud0dd, \uc0dd\uc131 \ubc0f \uc5c5\ub370\uc774\ud2b8 \uc791\uc5c5\uc744 \uc9c0\uc6d0\ud558\uc5ec \ud638\ud658\ub418\ub294 MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 PostgreSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc900\ube44\ud574\uc57c \ud569\ub2c8\ub2e4.\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 * \"Alex\uac00 users \ud14c\uc774\ube14\uc5d0 \ud56d\ubaa9\uc774 \uc788\ub294\uc9c0 \ud655\uc778\ud574 \uc8fc\uc138\uc694. \uc5c6\uc73c\uba74 \uadf8\ub140\uc758 \ub808\ucf54\ub4dc\ub97c \uc0dd\uc131\ud574 \uc8fc\uc138\uc694.\"\n * \"\uc9c0\ub09c \uc8fc\uc5d0 \uac00\uc7a5 \ub9ce\uc774 \ud314\ub9b0 \uc81c\ud488\uc740 \ubb34\uc5c7\uc778\uac00\uc694?\"\n * \"\uc624\ub298 \uc544\uce68\uc5d0 \uc5ec\uc804\ud788 \uc5f4\ub9b0 \ub192\uc740 \uc6b0\uc120\uc21c\uc704 \uc9c0\uc6d0 \ud2f0\ucf13\uc758 \uc218\ub294 \uc5bc\ub9c8\uc778\uac00\uc694?\"\n\n### \uc694\uad6c \uc0ac\ud56d\n* \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c PostgreSQL\uc744 \uc0ac\uc6a9\ud558\uc138\uc694. \uc774\ub294 Supabase\uc640 \uac19\uc740 \uc678\ubd80 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ub610\ub294 \ub0b4\ubd80\uc801\uc73c\ub85c \ud638\uc2a4\ud305\ud558\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\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 \uc0ac\uc6a9\uc790\ud654\n* \uc2a4\ud0a4\ub9c8\ub098 \ud14c\uc774\ube14\uc758 \ubc94\uc704\uac00 \ub108\ubb34 \ub113\ub2e4\uba74, \ube44\uc988\ub2c8\uc2a4 \uc6b4\uc601\uc5d0 \ud2b9\uc815 \ubaa9\uc801\uc744 \ub450\ub3c4\ub85d \uc81c\ud55c\ud574 \ubcf4\uc138\uc694. \uc608\ub97c \ub4e4\uc5b4, \ud574\ub2f9 \ubd80\uc11c\uc758 \uc0ac\ub78c\ub4e4\uc5d0\uac8c \uc561\uc138\uc2a4 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uae30 \uc804\uc5d0 \ucffc\ub9ac \ubc0f \ud3b8\uc9d1\uc744 HR \ud14c\uc774\ube14\uc5d0\ub9cc \ud55c\uc815\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
},
{
"id": "bc4e427f-f6fd-4243-844a-8edf2dc1a0e9",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-520,
-240
],
"parameters": {
"color": 5,
"width": 380,
"height": 100,
"content": "\ud56d\uc0c1 \uc11c\ubc84\ub97c \uc778\uc99d\ud558\uc138\uc694! \n\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\uace0\ub429\ub2c8\ub2e4."
},
"typeVersion": 1
}
],
"connections": {
"Operation": {
"main": [
[
{
"node": "ReadTableRecord",
"type": "main",
"index": 0
}
],
[
{
"node": "CreateTableRecord",
"type": "main",
"index": 0
}
],
[
{
"node": "UpdateTableRecord",
"type": "main",
"index": 0
}
]
]
},
"ListTables": {
"ai_tool": [
[
{
"node": "PostgreSQL MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"ReadTableRows": {
"ai_tool": [
[
{
"node": "PostgreSQL MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"GetTableSchema": {
"ai_tool": [
[
{
"node": "PostgreSQL MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"ReadTableRecord": {
"main": [
[]
]
},
"CreateTableRecords": {
"ai_tool": [
[
{
"node": "PostgreSQL MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"UpdateTableRecords": {
"ai_tool": [
[
{
"node": "PostgreSQL MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Operation",
"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.
postgres
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Workflow 3631. Uses postgresTool, executeWorkflowTrigger, toolWorkflow, postgres. Event-driven trigger; 15 nodes.
Source: https://github.com/n8nKOR/n8n-shared-workflow/blob/62a671327e906c22a40d290b339ff6d2373f8d75/workflows/n8n-workflows-by-Zie619/devops/3631_workflow_3631.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.
Stickynote Postgrestool. Uses postgresTool, executeWorkflowTrigger, toolWorkflow, postgres. Event-driven trigger; 15 nodes.
This MCP example is based off an official MCP reference implementation which can be found here -https://github.com/modelcontextprotocol/servers/tree/main/src/postgres A MCP server trigger is used and
Template was created in n8n v1.90.2 Execute Sub-workflow Trigger node Chat Trigger node Redis node Postgres node Google Calendar node Execute Sub-workflow If node, Switch node, Code node, Edit Fields
Agendamiento_v2. Uses n8n-nodes-evolution-api, redis, httpRequest, executeWorkflowTrigger. Event-driven trigger; 59 nodes.
Cancelacion_v2. Uses executeWorkflowTrigger, redis, httpRequest, n8n-nodes-evolution-api. Event-driven trigger; 46 nodes.