MCP 문서 관리

메뉴

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 설정

  1. Claude Desktop 구성 파일을 엽니다:
  2. macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. Windows: %APPDATA%/Claude/claude_desktop_config.json

  4. 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_URLQDRANT_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

활용 사례

  1. 코드 저장소 검색: 코드 스니펫과 문서를 저장하고 자연어로 검색
  2. 시맨틱 메모리: AI 어시스턴트에 대한 장기 메모리 기능 제공
  3. RAG(Retrieval-Augmented Generation): 문서, 코드, 사용 사례 등의 내부 지식으로 AI 응답 보강
  4. 대화 히스토리 보존: 이전 대화의 내용을 벡터화하여 저장하고 필요할 때 관련 컨텍스트 검색
  5. 코드 패턴 및 모범 사례: 팀의 코딩 표준과 모범 사례를 저장하고 개발 중에 참조

예시 사용 패턴

코드 스니펫 저장

코드 스니펫을 저장해줘:
정보: "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으로 로드하는 방법을 알려줘

연결된 구성 요소