역링크
Qdrant
Qdrant
Qdrant MCP 서버는 벡터 검색 엔진인 Qdrant와 상호작용할 수 있는 Model Context Protocol 구현체입니다. 이 서버는 Qdrant 데이터베이스 위에서 시맨틱 메모리 레이어로 작동하여 AI 어시스턴트가 정보를 저장하고 검색할 수 있게 합니다.
특징
- 시맨틱 메모리: 벡터 임베딩을 사용한 정보 저장 및 검색
- 메타데이터 저장: 추가 컨텍스트를 제공하는 메타데이터 지원
- 코드 검색: 코드 스니펫을 저장하고 자연어로 검색 가능
- 다양한 임베딩 모델: 다양한 FastEmbed 모델 지원
- 로컬 또는 클라우드: 로컬 Qdrant 인스턴스 또는 Qdrant 클라우드와 통합
- 컬렉션 자동 생성: 지정된 컬렉션이 없는 경우 자동 생성
- 다양한 전송 프로토콜: stdio 및 SSE(Server-Sent Events) 지원
API
리소스
Qdrant MCP 서버는 벡터 데이터베이스 내에 저장된 정보를 리소스로 제공합니다.
도구
qdrant-store
Qdrant 데이터베이스에 정보를 저장합니다.
- 입력:
- information (문자열): 저장할 정보
- metadata (JSON): 저장할 메타데이터 (선택 사항)
- collection_name (문자열): 정보를 저장할 컬렉션 이름 (기본 컬렉션 이름이 없는 경우 필수)
- 출력: 저장 확인 메시지
qdrant-find
Qdrant 데이터베이스에서 관련 정보를 검색합니다.
- 입력:
- query (문자열): 검색에 사용할 쿼리
- collection_name (문자열): 검색할 컬렉션 이름 (기본 컬렉션 이름이 없는 경우 필수)
- 출력: Qdrant 데이터베이스에 저장된 정보를 별도의 메시지로 반환
사용 방법
설치 및 구성
필수 조건
- Qdrant 인스턴스 (로컬 또는 클라우드)
- 환경 변수 설정 (Qdrant URL, API 키 등)
Claude Desktop 설정
- Claude Desktop 구성 파일을 엽니다:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json -
Windows:
%APPDATA%/Claude/claude_desktop_config.json -
mcpServers객체에 Qdrant 서버 설정을 추가합니다:
{
"mcpServers": {
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_URL": "https://xyz-example.eu-central.aws.cloud.qdrant.io:6333",
"QDRANT_API_KEY": "your_api_key",
"COLLECTION_NAME": "your-collection-name",
"EMBEDDING_MODEL": "sentence-transformers/all-MiniLM-L6-v2"
}
}
}
}
로컬 Qdrant 모드를 사용하는 경우:
{
"mcpServers": {
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_LOCAL_PATH": "/path/to/qdrant/database",
"COLLECTION_NAME": "your-collection-name",
"EMBEDDING_MODEL": "sentence-transformers/all-MiniLM-L6-v2"
}
}
}
}
Smithery를 통한 자동 설치 (Claude Desktop)
다음 명령을 사용하여 Qdrant MCP 서버를 Claude Desktop에 자동으로 설치할 수 있습니다:
npx @smithery/cli install mcp-server-qdrant --client claude
Claude Code 설정
Claude Code 터미널에서 다음 명령을 사용해 MCP 서버를 추가할 수 있습니다:
claude mcp add code-search \
-e QDRANT_URL="http://localhost:6333" \
-e COLLECTION_NAME="code-repository" \
-e EMBEDDING_MODEL="sentence-transformers/all-MiniLM-L6-v2" \
-e TOOL_STORE_DESCRIPTION="Store code snippets with descriptions." \
-e TOOL_FIND_DESCRIPTION="Search for relevant code snippets using natural language." \
-- uvx mcp-server-qdrant
Docker를 통한 실행
Docker를 통해 MCP 서버를 실행할 수도 있습니다:
# 컨테이너 빌드
docker build -t mcp-server-qdrant .
# 컨테이너 실행
docker run -p 8000:8000 \
-e QDRANT_URL="http://your-qdrant-server:6333" \
-e QDRANT_API_KEY="your-api-key" \
-e COLLECTION_NAME="your-collection" \
mcp-server-qdrant
환경 변수 옵션
| 환경 변수 | 설명 | 기본값 |
|---|---|---|
| QDRANT_URL | Qdrant 서버의 URL | 없음 |
| QDRANT_API_KEY | Qdrant 서버의 API 키 | 없음 |
| COLLECTION_NAME | 사용할 기본 컬렉션 이름 | 없음 |
| QDRANT_LOCAL_PATH | 로컬 Qdrant 데이터베이스 경로 (QDRANT_URL 대신 사용) | 없음 |
| EMBEDDING_PROVIDER | 사용할 임베딩 제공자 (현재 "fastembed"만 지원됨) | fastembed |
| EMBEDDING_MODEL | 사용할 임베딩 모델 이름 | sentence-transformers/all-MiniLM-L6-v2 |
| TOOL_STORE_DESCRIPTION | 저장 도구의 사용자 정의 설명 | 기본 설명 |
| TOOL_FIND_DESCRIPTION | 검색 도구의 사용자 정의 설명 | 기본 설명 |
참고: QDRANT_URL과 QDRANT_LOCAL_PATH를 동시에 제공할 수 없습니다.
코드 검색 도구 설정
Cursor나 Windsurf와 같은 개발 환경에서 코드 검색 도구로 MCP 서버를 구성할 수 있습니다:
QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="code-snippets" \
TOOL_STORE_DESCRIPTION="코드 스니펫을 저장합니다. 'information' 파라미터에는 코드가 수행하는 작업에 대한 자연어 설명을, 'metadata' 파라미터의 'code' 속성에는 실제 코드를 포함시키세요." \
TOOL_FIND_DESCRIPTION="자연어 설명을 기반으로 관련 코드 스니펫을 검색합니다. 'query' 파라미터에 찾고자 하는 기능을 설명하세요." \
uvx mcp-server-qdrant --transport sse
활용 사례
- 코드 저장소 검색: 코드 스니펫과 문서를 저장하고 자연어로 검색
- 시맨틱 메모리: AI 어시스턴트에 대한 장기 메모리 기능 제공
- RAG(Retrieval-Augmented Generation): 문서, 코드, 사용 사례 등의 내부 지식으로 AI 응답 보강
- 대화 히스토리 보존: 이전 대화의 내용을 벡터화하여 저장하고 필요할 때 관련 컨텍스트 검색
- 코드 패턴 및 모범 사례: 팀의 코딩 표준과 모범 사례를 저장하고 개발 중에 참조
예시 사용 패턴
코드 스니펫 저장
코드 스니펫을 저장해줘:
정보: "Python으로 Excel 파일에서 데이터를 읽고 pandas DataFrame으로 변환하는 함수"
메타데이터: {"code": "import pandas as pd\n\ndef read_excel_to_df(file_path, sheet_name=0):\n return pd.read_excel(file_path, sheet_name=sheet_name)"}
코드 스니펫 검색
Python으로 Excel 파일을 DataFrame으로 로드하는 방법을 알려줘