빌드 커스텀 Qdrant 벡터 스토리지 MCP 서버
고급
이것은Building Blocks, AI분야의자동화 워크플로우로, 44개의 노드를 포함합니다.주로 If, Set, Code, Filter, Switch 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. 개별 Qdrant 벡터 스토리지 MCP 서버 구축
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
- •Qdrant 서버 연결 정보
사용된 노드 (44)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "49620d3a-d4ec-4017-ade1-ff2ef5473c11",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-220,
-80
],
"parameters": {
"color": 7,
"width": 680,
"height": 660,
"content": "## 1. Set up an MCP Server Trigger\n[Read more about the MCP Server Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger)"
},
"typeVersion": 1
},
{
"id": "f0646a81-d328-4f07-a744-60f576b5a51e",
"name": "삽입",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
-40,
380
],
"parameters": {
"name": "insert_review",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "=Call this tool to insert a customer's review into our review database.",
"workflowInputs": {
"value": {
"text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('text', `The contents of the review`, 'string') }}",
"text2": "null",
"operation": "insert",
"companyIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('companyIds', `The company ID is their url address.`, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyIds",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "companyIds",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "21e8beac-dbd5-44d7-8472-4edff3f63308",
"name": "검색",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
80,
440
],
"parameters": {
"name": "search_reviews",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}",
"cachedResultName": "={{ $workflow.id }}"
},
"description": "Call this tool to search our reviews database.",
"workflowInputs": {
"value": {
"text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('text', `the query or search terms to use`, 'string') }}",
"text2": "null",
"operation": "search",
"companyIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('companyIds', `Optional, leave blank to search over all companies otherwise one or more company IDs comma-delimited. The company ID is their url address.`, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyIds",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "companyIds",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "ffb100a4-9108-4ccd-a897-e5cd9e752232",
"name": "추천",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
280,
240
],
"parameters": {
"name": "recommend_reviews",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "Call this tool to generate a recommendation for a review based on positive and/or negative preferences.",
"workflowInputs": {
"value": {
"text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('text', `preferences to include.`, 'string') }}",
"text2": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('text2', `preference to avoid.`, 'string') }}",
"operation": "recommend",
"companyIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('companyIds', `Optional, leave blank to search across all reviews otherwise one or more company IDs, comma-delimited. The company ID is their url address.`, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyIds",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "companyIds",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "d1d53cbc-0a22-409d-9336-d8c98eeaa170",
"name": "Qdrant MCP 서버",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-40,
60
],
"webhookId": "a1aff1b5-e5c7-4ca2-91eb-017c1fe32dab",
"parameters": {
"path": "a1aff1b5-e5c7-4ca2-91eb-017c1fe32dab"
},
"typeVersion": 1
},
{
"id": "82d747a5-ff5f-44ff-9f68-cc1aa01ba1de",
"name": "다른 워크플로우에 의해 실행 시",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
540,
280
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "operation"
},
{
"name": "text"
},
{
"name": "text2"
},
{
"name": "companyIds"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "c7a2e948-5cd5-4545-a633-c1157e63edec",
"name": "작업",
"type": "n8n-nodes-base.switch",
"position": [
760,
240
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "listCompanies",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fe782b0f-f501-4985-a9d2-f63f4019177f",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.operation }}",
"rightValue": "listCompanies"
}
]
},
"renameOutput": true
},
{
"outputKey": "insert",
"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": "insert"
}
]
},
"renameOutput": true
},
{
"outputKey": "search",
"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": "search"
}
]
},
"renameOutput": true
},
{
"outputKey": "compare",
"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": "compare"
}
]
},
"renameOutput": true
},
{
"outputKey": "recommend",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2c691501-786a-433f-a185-3a6e0d08d336",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.operation }}",
"rightValue": "recommend"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "18d805db-376c-4583-963a-db1e5d09aa50",
"name": "스티커 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
-140
],
"parameters": {
"color": 7,
"width": 580,
"height": 320,
"content": "## 2. Expand Functionality Beyond Vendor Implementation\n[Read more about the Qdrant Node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdrant)\n\nOfficially supported MCP servers are cool but may not always have the features you want. N8N MCP servers give you the freedom to expand and customise to fit your business or product needs and requirements.\n\nFor our Qdrant MCP server, we've added 2 additional capabilities from the Qdrant API; The Group Search and Recommendation API. With these, we can explore many more use-cases for our users.\n"
},
"typeVersion": 1
},
{
"id": "ab8aeea3-0564-4c96-a67c-ff319df3297b",
"name": "비교",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
220,
380
],
"parameters": {
"name": "compare_reviews",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}",
"cachedResultName": "={{ $workflow.id }}"
},
"description": "Call this tool to compare search results across 2 or more companies.",
"workflowInputs": {
"value": {
"text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('text', `the query or search terms to use`, 'string') }}",
"text2": "null",
"operation": "compare",
"companyIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('companyIds', `Two or more company IDs, comma-delimited. The company ID is their url address.`, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyIds",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "companyIds",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "4f0876cb-dc07-486e-937b-334fa2cb754f",
"name": "스티커 노트8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1920,
860
],
"parameters": {
"width": 213.30551928619226,
"height": 332.38559808882246,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### 🚨Configure Your Qdrant Connection\n* Be sure to enter your endpoint address"
},
"typeVersion": 1
},
{
"id": "02031bac-016f-4715-8413-6255cf73e103",
"name": "추천 API",
"type": "n8n-nodes-base.httpRequest",
"position": [
1980,
900
],
"parameters": {
"url": "=http://qdrant:6333/collections/trustpilot_reviews/points/recommend",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "strategy",
"value": "average_vector"
},
{
"name": "limit",
"value": "={{ 3 }}"
},
{
"name": "positive",
"value": "={{ [$json.embeddings[0]] }}"
},
{
"name": "negative",
"value": "={{ [$json.embeddings[1]] }}"
},
{
"name": "filter",
"value": "={{\n$('Operation').first().json.companyIds\n ? {\n \"must\": {\n \"key\": \"metadata.company_id\",\n \"match\": {\n \"any\": $('Operation').first().json.companyIds.split(',')\n }\n }\n }\n : {}\n}}"
},
{
"name": "with_payload",
"value": "={{ true }}"
}
]
},
"nodeCredentialType": "qdrantApi"
},
"credentials": {
"qdrantApi": {
"id": "NyinAS3Pgfik66w5",
"name": "QdrantApi account"
}
},
"typeVersion": 4.2
},
{
"id": "9d058dae-2f24-4e34-bdb6-ba5649a3b431",
"name": "임베딩 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
1580,
900
],
"parameters": {
"url": "https://api.openai.com/v1/embeddings",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "input",
"value": "={{ $json.text }}"
},
{
"name": "model",
"value": "text-embedding-3-small"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 4.2
},
{
"id": "dfbb9a02-91dd-4dc4-8738-0aff41db2156",
"name": "선호도를 항목으로 변환",
"type": "n8n-nodes-base.code",
"position": [
1380,
900
],
"parameters": {
"jsCode": "return [\n { text: $input.first().json.text },\n { text: $input.first().json.text2 }\n]"
},
"typeVersion": 2
},
{
"id": "7d6bda64-4f98-43d1-b181-343238f678bb",
"name": "임베딩 집계",
"type": "n8n-nodes-base.aggregate",
"position": [
1780,
900
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"renameField": true,
"outputFieldName": "embeddings",
"fieldToAggregate": "data[0].embedding"
}
]
}
},
"typeVersion": 1
},
{
"id": "8eacac44-9cfd-4aa0-be7d-534ae630a2d4",
"name": "임베딩 가져오기1",
"type": "n8n-nodes-base.httpRequest",
"position": [
1380,
560
],
"parameters": {
"url": "https://api.openai.com/v1/embeddings",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "input",
"value": "={{ $json.text }}"
},
{
"name": "model",
"value": "text-embedding-3-small"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 4.2
},
{
"id": "5b23221c-aeb8-4a4f-b33b-75d46ba7a4fd",
"name": "임베딩 집계1",
"type": "n8n-nodes-base.aggregate",
"position": [
1580,
560
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"renameField": true,
"outputFieldName": "embeddings",
"fieldToAggregate": "data[0].embedding"
}
]
}
},
"typeVersion": 1
},
{
"id": "bbbfaf2f-8294-401f-9f01-efeb58e99f15",
"name": "그룹 검색 API",
"type": "n8n-nodes-base.httpRequest",
"position": [
1780,
560
],
"parameters": {
"url": "http://qdrant:6333/collections/trustpilot_reviews/points/search/groups",
"method": "POST",
"options": {},
"jsonBody": "={{\n{\n \"vector\": $json.embeddings[0],\n \"group_by\": \"metadata.company_id\",\n \"limit\": 10,\n \"group_size\": 3,\n \"with_payload\": true\n}\n}}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "qdrantApi"
},
"credentials": {
"qdrantApi": {
"id": "NyinAS3Pgfik66w5",
"name": "QdrantApi account"
}
},
"typeVersion": 4.2
},
{
"id": "bbed1c97-eebb-47f1-9486-73bade35d290",
"name": "결과가 있습니까?",
"type": "n8n-nodes-base.if",
"position": [
2600,
560
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a83c0c10-74a7-4a52-b6c4-26dc8313023b",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e995b27a-f331-434c-a828-bc02f978b43c",
"name": "그룹 결과 단순화",
"type": "n8n-nodes-base.set",
"position": [
2180,
560
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "caf5bf23-087a-496f-8d20-56ab70e303a8",
"name": "category",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "db3c2c92-b951-4365-9c19-d5d0f8654a42",
"name": "results",
"type": "array",
"value": "={{\n$json.hits?.map(hit => ({\n content: hit.payload.content,\n metadata: hit.payload.metadata\n}))\n}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e0c327a5-ab2e-46ad-9d4b-0fe8cdd1605c",
"name": "비교 응답 비우기",
"type": "n8n-nodes-base.set",
"position": [
2820,
660
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "24ab771e-0e19-4bfe-bfee-2fed3a34f7fe",
"name": "response",
"type": "string",
"value": "no results."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "52890718-81b4-4880-9a12-b8456e96ad98",
"name": "비교 응답 집계",
"type": "n8n-nodes-base.aggregate",
"position": [
2820,
440
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "response"
},
"typeVersion": 1
},
{
"id": "bb87afe4-6910-4c79-9371-d49e77134ac3",
"name": "임베딩 OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
1340,
-40
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "ba6e426b-9629-445f-b96c-b8b51fcafe3d",
"name": "기본 데이터 로더",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
1460,
-40
],
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "company_id",
"value": "={{ $json.companyIds ?? 'unspecified' }}"
}
]
}
},
"jsonData": "={{ $json.text }}",
"jsonMode": "expressionData"
},
"typeVersion": 1
},
{
"id": "de9e7ffa-49e8-40de-acef-fd92216ec10c",
"name": "재귀적 문자 텍스트 분할기",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
1560,
80
],
"parameters": {
"options": {},
"chunkSize": 3000
},
"typeVersion": 1
},
{
"id": "9d639f7f-5c3e-478f-ba6f-70b2e06394de",
"name": "추천 응답 단순화",
"type": "n8n-nodes-base.set",
"position": [
2180,
900
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "56f12f89-75dc-4143-ae32-45f1561da19d",
"name": "content",
"type": "string",
"value": "={{ $json.result[0].payload.content }}"
},
{
"id": "57afc394-3793-4605-a751-8c0d446857e7",
"name": "metadata",
"type": "object",
"value": "={{ $json.result[0].payload.metadata }}"
}
]
}
},
"typeVersion": 3.4,
"alwaysOutputData": true
},
{
"id": "736d02f1-8658-4d84-bdc6-3f43ad712a76",
"name": "삽입 응답 가져오기",
"type": "n8n-nodes-base.set",
"position": [
1780,
-200
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "cb612470-0d50-4179-a9af-144e592369a8",
"name": "response",
"type": "string",
"value": "ok"
}
]
}
},
"executeOnce": true,
"typeVersion": 3.4
},
{
"id": "2a557659-8668-4dba-b3a7-2bc18981ca10",
"name": "검색 응답 가져오기",
"type": "n8n-nodes-base.aggregate",
"position": [
1780,
240
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "response"
},
"typeVersion": 1
},
{
"id": "017f0628-f08f-4d7c-b3da-83ada24bcfad",
"name": "스티커 노트9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1720,
500
],
"parameters": {
"width": 213.30551928619226,
"height": 332.38559808882246,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### 🚨Configure Your Qdrant Connection\n* Be sure to enter your endpoint address"
},
"typeVersion": 1
},
{
"id": "cbbc7999-e2c4-4d84-9c21-7ce47a70ef2d",
"name": "리뷰 삽입",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
1380,
-200
],
"parameters": {
"mode": "insert",
"options": {},
"qdrantCollection": {
"__rl": true,
"mode": "list",
"value": "trustpilot_reviews",
"cachedResultName": "trustpilot_reviews"
}
},
"credentials": {
"qdrantApi": {
"id": "NyinAS3Pgfik66w5",
"name": "QdrantApi account"
}
},
"typeVersion": 1.1
},
{
"id": "268dd3b8-631e-498c-8c50-33e61244ef7a",
"name": "리뷰 검색",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
1380,
240
],
"parameters": {
"mode": "load",
"topK": 10,
"prompt": "={{ $json.text }}",
"options": {
"searchFilterJson": "={{\n$json.companyIds\n ? {\n \"must\": [\n {\n \"key\": \"metadata.company_id\",\n \"match\": {\n \"any\": $json.companyIds.split(',')\n }\n }\n ]\n }\n : {}\n}}"
},
"qdrantCollection": {
"__rl": true,
"mode": "list",
"value": "trustpilot_reviews",
"cachedResultName": "trustpilot_reviews"
}
},
"credentials": {
"qdrantApi": {
"id": "NyinAS3Pgfik66w5",
"name": "QdrantApi account"
}
},
"typeVersion": 1.1
},
{
"id": "45ff74b6-0e9e-4698-98b9-e778f1605df2",
"name": "회사 분리",
"type": "n8n-nodes-base.splitOut",
"position": [
1980,
560
],
"parameters": {
"options": {},
"fieldToSplitOut": "result.groups"
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "1856fa8e-f184-4cef-b66f-6254e3f323ac",
"name": "CompanyId로 필터링",
"type": "n8n-nodes-base.filter",
"position": [
2380,
560
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6b6fac92-c001-4070-b8ed-0c63ef54d293",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{\n$('Operation').item.json.companyIds\n ? $('Operation').item.json.companyIds.split(',').includes($json.id)\n : true\n}}",
"rightValue": "={{ $json.id }}"
}
]
}
},
"typeVersion": 2.2,
"alwaysOutputData": true
},
{
"id": "3c468d41-9462-4ee0-b9c8-97e8213c0f32",
"name": "추천 응답 집계",
"type": "n8n-nodes-base.aggregate",
"position": [
2600,
780
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "response"
},
"typeVersion": 1
},
{
"id": "825ee679-b0bd-4b7a-8684-4a1f7959926e",
"name": "결과가 있습니까?1",
"type": "n8n-nodes-base.if",
"position": [
2380,
900
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a83c0c10-74a7-4a52-b6c4-26dc8313023b",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "bfa17c34-7f84-40e2-8c9b-f92c0475fa05",
"name": "비교 응답 비우기1",
"type": "n8n-nodes-base.set",
"position": [
2600,
1000
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "24ab771e-0e19-4bfe-bfee-2fed3a34f7fe",
"name": "response",
"type": "string",
"value": "no results."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "93860126-eb7a-40b1-8a4e-1824d0aebe01",
"name": "임베딩 OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
1480,
400
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "c3d89756-9073-4640-88ba-eb2c5cf370a1",
"name": "회사 목록",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
-120,
240
],
"parameters": {
"name": "listAvailableCompanies",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "Call this tool to list all available companies in the reviews database.",
"workflowInputs": {
"value": {
"text": "null",
"text2": "null",
"operation": "listCompanies",
"companyIds": "null"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "text2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyIds",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "companyIds",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "d9a02360-f9aa-4aea-b26f-f3482f55fc18",
"name": "패싯별 목록 API",
"type": "n8n-nodes-base.httpRequest",
"position": [
1380,
-440
],
"parameters": {
"url": "http://qdrant:6333/collections/trustpilot_reviews/facet",
"method": "POST",
"options": {},
"jsonBody": "{\n \"key\": \"metadata.company_id\"\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "qdrantApi"
},
"credentials": {
"qdrantApi": {
"id": "NyinAS3Pgfik66w5",
"name": "QdrantApi account"
}
},
"typeVersion": 4.2
},
{
"id": "6822aee2-7dfe-43ea-8238-ea0a3c8f0188",
"name": "스티커 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
-740
],
"parameters": {
"width": 440,
"height": 1320,
"content": "## Try It Out!\n### This n8n demonstrates how to build your own Qdrant MCP server to extend its functionality beyond that of the official implementation.\n\nThis n8n implementation exposes other cool API features from Qdrant such as facet search, grouped search and recommendations APIs. With this, we can build an easily customisable and maintainable Qdrant MCP server for business intelligence.\n\nThis MCP example is based off an official MCP reference implementation which can be found here -https://github.com/qdrant/mcp-server-qdrant/\n\n### How it works\n* A MCP server trigger is used and connected to 5 custom workflow tools. We're using custom workflow tools as there is quite a few nodes required for each task.\n* We use a mix of n8n supported Qdrant nodes for simple operations such as insert documents and similarity search, and HTTP node to hit the Qdrant API directly for Facet search, group search and recommendations.\n* We use \"Edit Field\" and \"Aggregate\" nodes to return suitable responses to the MCP client.\n\n### How to use\n* This Qdrant MCP server allows any compatible MCP client to manage a Qdrant Collection by supporting select and create operations. You will need to have a collection available before you can use this server. Use the Prerequisite manual steps to get started!\n* Connect your MCP client by following the n8n guidelines here - https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/#integrating-with-claude-desktop\n* Try the following queries in your MCP client:\n * \"Can you help me list the available companies in the collection?\"\n * \"What do customers say about product deliveries from company X?\"\n * \"What do customers of company X and company Y say about product ease of use?\"\n\n### Requirements\n* Qdrant for vector store. This can be an a cloud-hosted instance or one you can self-host internally.\n* MCP Client or Agent for usage such as Claude Desktop - https://claude.ai/download\n\n### Customising this workflow\n* Depending on what queries you'll receive, adjust the tool inputs to make it easier for the agent to set the right parameters.\n* Not interested in Reviews? The techniques shared in this template can be used for other types of collections.\n* Remember to set the MCP server to require credentials before going to production and sharing this MCP server with others!"
},
"typeVersion": 1
},
{
"id": "f0b1f04f-b3bd-4ad0-b128-17a96cf52b81",
"name": "패싯 인덱스 생성",
"type": "n8n-nodes-base.httpRequest",
"position": [
260,
-580
],
"parameters": {
"url": "http://qdrant:6333/collections/trustpilot_reviews/index",
"method": "PUT",
"options": {},
"jsonBody": "{\n \"field_name\": \"metadata.company_id\",\n \"field_schema\": \"keyword\"\n}",
"sendBody": true,
"specifyBody": "json"
},
"typeVersion": 4.2
},
{
"id": "481c298b-c9e7-412e-aaa0-2e1565fabda8",
"name": "컬렉션 생성",
"type": "n8n-nodes-base.httpRequest",
"position": [
60,
-580
],
"parameters": {
"url": "http://qdrant:6333/collections/trustpilot_reviews",
"method": "PUT",
"options": {},
"jsonBody": "{\n \"vectors\": {\n \"distance\": \"Cosine\",\n \"size\": 1536\n }\n}",
"sendBody": true,
"specifyBody": "json"
},
"typeVersion": 4.2
},
{
"id": "07e1f0f3-6f24-4a67-9b07-75667f496a9a",
"name": "스티커 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-220,
-740
],
"parameters": {
"color": 4,
"width": 700,
"height": 360,
"content": "## Prerequisite: Setup Qdrant Collection\nIf you don't have an existing Qdrant Collection, you can use this manual flow to get started.\n1. Creates a collection called \"trustpilot_reviews\"\n2. Creates an index to allow for facet search ie. list of values of a the \"company_id\" metadata key."
},
"typeVersion": 1
},
{
"id": "df0dacdb-4238-475b-9d98-ae7ce9e3142d",
"name": "'워크플로우 테스트' 클릭 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-140,
-580
],
"parameters": {},
"typeVersion": 1
},
{
"id": "8c0f0e65-82d2-427e-8c6d-2f89bd225f46",
"name": "스티커 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-220,
-200
],
"parameters": {
"color": 5,
"width": 380,
"height": 100,
"content": "### Always Authenticate Your Server!\nBefore going to production, it's always advised to enable authentication on your MCP server trigger."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"f0646a81-d328-4f07-a744-60f576b5a51e": {
"ai_tool": [
[
{
"node": "d1d53cbc-0a22-409d-9336-d8c98eeaa170",
"type": "ai_tool",
"index": 0
}
]
]
},
"21e8beac-dbd5-44d7-8472-4edff3f63308": {
"ai_tool": [
[
{
"node": "d1d53cbc-0a22-409d-9336-d8c98eeaa170",
"type": "ai_tool",
"index": 0
}
]
]
},
"ab8aeea3-0564-4c96-a67c-ff319df3297b": {
"ai_tool": [
[
{
"node": "d1d53cbc-0a22-409d-9336-d8c98eeaa170",
"type": "ai_tool",
"index": 0
}
]
]
},
"c7a2e948-5cd5-4545-a633-c1157e63edec": {
"main": [
[
{
"node": "d9a02360-f9aa-4aea-b26f-f3482f55fc18",
"type": "main",
"index": 0
}
],
[
{
"node": "cbbc7999-e2c4-4d84-9c21-7ce47a70ef2d",
"type": "main",
"index": 0
}
],
[
{
"node": "268dd3b8-631e-498c-8c50-33e61244ef7a",
"type": "main",
"index": 0
}
],
[
{
"node": "8eacac44-9cfd-4aa0-be7d-534ae630a2d4",
"type": "main",
"index": 0
}
],
[
{
"node": "dfbb9a02-91dd-4dc4-8738-0aff41db2156",
"type": "main",
"index": 0
}
]
]
},
"ffb100a4-9108-4ccd-a897-e5cd9e752232": {
"ai_tool": [
[
{
"node": "d1d53cbc-0a22-409d-9336-d8c98eeaa170",
"type": "ai_tool",
"index": 0
}
]
]
},
"bbed1c97-eebb-47f1-9486-73bade35d290": {
"main": [
[
{
"node": "52890718-81b4-4880-9a12-b8456e96ad98",
"type": "main",
"index": 0
}
],
[
{
"node": "e0c327a5-ab2e-46ad-9d4b-0fe8cdd1605c",
"type": "main",
"index": 0
}
]
]
},
"825ee679-b0bd-4b7a-8684-4a1f7959926e": {
"main": [
[
{
"node": "3c468d41-9462-4ee0-b9c8-97e8213c0f32",
"type": "main",
"index": 0
}
],
[
{
"node": "bfa17c34-7f84-40e2-8c9b-f92c0475fa05",
"type": "main",
"index": 0
}
]
]
},
"c3d89756-9073-4640-88ba-eb2c5cf370a1": {
"ai_tool": [
[
{
"node": "d1d53cbc-0a22-409d-9336-d8c98eeaa170",
"type": "ai_tool",
"index": 0
}
]
]
},
"02031bac-016f-4715-8413-6255cf73e103": {
"main": [
[
{
"node": "9d639f7f-5c3e-478f-ba6f-70b2e06394de",
"type": "main",
"index": 0
}
]
]
},
"9d058dae-2f24-4e34-bdb6-ba5649a3b431": {
"main": [
[
{
"node": "7d6bda64-4f98-43d1-b181-343238f678bb",
"type": "main",
"index": 0
}
]
]
},
"cbbc7999-e2c4-4d84-9c21-7ce47a70ef2d": {
"main": [
[
{
"node": "736d02f1-8658-4d84-bdc6-3f43ad712a76",
"type": "main",
"index": 0
}
]
]
},
"268dd3b8-631e-498c-8c50-33e61244ef7a": {
"main": [
[
{
"node": "2a557659-8668-4dba-b3a7-2bc18981ca10",
"type": "main",
"index": 0
}
]
]
},
"8eacac44-9cfd-4aa0-be7d-534ae630a2d4": {
"main": [
[
{
"node": "5b23221c-aeb8-4a4f-b33b-75d46ba7a4fd",
"type": "main",
"index": 0
}
]
]
},
"bbbfaf2f-8294-401f-9f01-efeb58e99f15": {
"main": [
[
{
"node": "45ff74b6-0e9e-4698-98b9-e778f1605df2",
"type": "main",
"index": 0
}
]
]
},
"481c298b-c9e7-412e-aaa0-2e1565fabda8": {
"main": [
[
{
"node": "f0b1f04f-b3bd-4ad0-b128-17a96cf52b81",
"type": "main",
"index": 0
}
]
]
},
"bb87afe4-6910-4c79-9371-d49e77134ac3": {
"ai_embedding": [
[
{
"node": "cbbc7999-e2c4-4d84-9c21-7ce47a70ef2d",
"type": "ai_embedding",
"index": 0
}
]
]
},
"93860126-eb7a-40b1-8a4e-1824d0aebe01": {
"ai_embedding": [
[
{
"node": "268dd3b8-631e-498c-8c50-33e61244ef7a",
"type": "ai_embedding",
"index": 0
}
]
]
},
"ba6e426b-9629-445f-b96c-b8b51fcafe3d": {
"ai_document": [
[
{
"node": "cbbc7999-e2c4-4d84-9c21-7ce47a70ef2d",
"type": "ai_document",
"index": 0
}
]
]
},
"1856fa8e-f184-4cef-b66f-6254e3f323ac": {
"main": [
[
{
"node": "bbed1c97-eebb-47f1-9486-73bade35d290",
"type": "main",
"index": 0
}
]
]
},
"45ff74b6-0e9e-4698-98b9-e778f1605df2": {
"main": [
[
{
"node": "e995b27a-f331-434c-a828-bc02f978b43c",
"type": "main",
"index": 0
}
]
]
},
"7d6bda64-4f98-43d1-b181-343238f678bb": {
"main": [
[
{
"node": "02031bac-016f-4715-8413-6255cf73e103",
"type": "main",
"index": 0
}
]
]
},
"dfbb9a02-91dd-4dc4-8738-0aff41db2156": {
"main": [
[
{
"node": "9d058dae-2f24-4e34-bdb6-ba5649a3b431",
"type": "main",
"index": 0
}
]
]
},
"5b23221c-aeb8-4a4f-b33b-75d46ba7a4fd": {
"main": [
[
{
"node": "bbbfaf2f-8294-401f-9f01-efeb58e99f15",
"type": "main",
"index": 0
}
]
]
},
"e995b27a-f331-434c-a828-bc02f978b43c": {
"main": [
[
{
"node": "1856fa8e-f184-4cef-b66f-6254e3f323ac",
"type": "main",
"index": 0
}
]
]
},
"9d639f7f-5c3e-478f-ba6f-70b2e06394de": {
"main": [
[
{
"node": "825ee679-b0bd-4b7a-8684-4a1f7959926e",
"type": "main",
"index": 0
}
]
]
},
"de9e7ffa-49e8-40de-acef-fd92216ec10c": {
"ai_textSplitter": [
[
{
"node": "ba6e426b-9629-445f-b96c-b8b51fcafe3d",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"82d747a5-ff5f-44ff-9f68-cc1aa01ba1de": {
"main": [
[
{
"node": "c7a2e948-5cd5-4545-a633-c1157e63edec",
"type": "main",
"index": 0
}
]
]
},
"df0dacdb-4238-475b-9d98-ae7ce9e3142d": {
"main": [
[
{
"node": "481c298b-c9e7-412e-aaa0-2e1565fabda8",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 빌딩 블록, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Qdrant, Mistral.ai, OpenAI를 사용하여 세금 법률 어시스턴트를 구축합니다.
Qdrant, Mistral.ai, OpenAI를 사용하여 세금 법률 어시스턴트를 구축합니다.
Set
Wait
Filter
+
Set
Wait
Filter
38 노드Jimleuk
금융
API 아키텍처 추출기
API 아키텍처 추출기
If
Set
Code
+
If
Set
Code
88 노드Polina Medvedieva
엔지니어링
自定义 API MCP 서버 구축
사용자 정의 API MCP 서버 구축
If
Set
Filter
+
If
Set
Filter
25 노드Jimleuk
엔지니어링
[템플릿] AI 반려동물 가게 v8
🐶 AI 펫 샵 어시스턴트 - GPT-4o, Google 캘린더 및 WhatsApp/Instagram/Facebook 통합
If
N8n
Set
+
If
N8n
Set
244 노드Amanda Benks
영업
빌드 커스텀 n8n 워크플로우 MCP 서버
구축할 수 있는 개별 n8n 워크플로우 MCP 서버
If
N8n
Set
+
If
N8n
Set
46 노드Jimleuk
기타
n8n, Apify, OpenAI o3 자체托管 AI 깊이 연구 대리자 사용
n8n, Apify, OpenAI o3을 사용하여 자체托管 AI 깊이 연구 대리자
If
Set
Code
+
If
Set
Code
87 노드Jimleuk
인공지능
워크플로우 정보
난이도
고급
노드 수44
카테고리2
노드 유형17
저자
Jimleuk
@jimleukFreelance consultant based in the UK specialising in AI-powered automations. I work with select clients tackling their most challenging projects. For business enquiries, send me an email at hello@jimle.uk LinkedIn: https://www.linkedin.com/in/jimleuk/ X/Twitter: https://x.com/jimle_uk
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유