Skip to main content
Glama
jiteshzope

mcp-server-qdrant

by jiteshzope

에이전틱 RAG (Tavily + Context7 + Qdrant)

기능

에이전트가 스스로 구축하는 지식 베이스 — 에이전트가 활용할 수 있는 여러 컨텍스트 엔지니어링 소스 중 하나입니다.

RAG(검색 증강 생성)는 모델이 답변을 뒷받침할 관련 문서를 제공하는 것을 의미합니다. 일반적인 설정은 미리 문서를 벡터 저장소에 로드합니다. 에이전틱 RAG는 이를 뒤집습니다: 에이전트가 스스로 지식 베이스를 구축하여, 무엇을 보관할 가치가 있는지 결정하고 작업하면서 저장합니다.

이것은 공식 Qdrant MCP 서버를 사용합니다. Qdrant는 벡터 데이터베이스이며, 서버는 두 가지 도구를 제공합니다. 하나는 텍스트 조각을 저장하고, 다른 하나는 쿼리에 가장 관련성 높은 저장된 텍스트를 찾습니다. 완전히 로컬에서 실행됩니다 — QDRANT_LOCAL_PATH는 별도의 데이터베이스를 실행할 필요 없이 모든 것을 디스크에 보관하며, 로컬 모델로 텍스트를 임베딩하므로 추가 API 키가 필요하지 않습니다.

에이전트는 세 가지 MCP 서버를 활용합니다:

서버

전송 방식

목적

Tavily (tavily-mcp)

stdio via npx

실시간 웹 검색, tavily_search로 필터링됨

Context7 (mcp.context7.com)

streamable HTTP

라이브러리, 프레임워크, SDK 및 API에 대한 최신 문서

Qdrant (mcp-server-qdrant)

stdio via uvx

에이전트가 쓰고 읽는 로컬 벡터 저장소

스크립트는 RAG의 두 부분을 두 개의 별도 에이전트로 실행합니다:

  1. 저장 — Tavily 검색, Context7 및 Qdrant를 사용하는 하나의 에이전트. 웹에서 Nvidia에 대한 최신 정보를 조사하고, Context7을 통해 최신 OpenAI Agents SDK 문서를 찾아보고, 두 소스의 주요 사실을 저장합니다.

  2. 검색 — 오직 Qdrant만 사용하는 두 번째 에이전트, 웹 검색이나 Context7 없음. 말하는 모든 것은 첫 번째 에이전트가 저장한 내용을 회상하는 것입니다.

Related MCP server: Qdrant MCP Server

Context7을 사용하는 이유

모델의 학습 데이터에는 기준 시점이 있으므로 빠르게 변화하는 라이브러리에 대한 기억은 오래되었고 더 이상 존재하지 않는 API를 자신 있게 지어낼 것입니다. Context7은 라이브러리 문서를 인덱싱하고 요청 시 최신 버전을 제공하는 호스팅 MCP 서버입니다. 두 가지 도구:

  • resolve-library-id — 패키지 또는 제품 이름("openai-agents", "next.js")을 Context7 라이브러리 ID로 변환합니다.

  • query-docs — 해당 라이브러리에 대한 최신 문서와 코드 예제를 가져오며, 질문에 맞게 좁혀집니다.

에이전트의 지침은 라이브러리 형태의 모든 것을 메모리나 일반 웹 검색 대신 Context7로 라우팅합니다 — 먼저 ID를 확인한 다음 문서를 쿼리합니다. 일반 HTTP 엔드포인트이므로 설치할 것이 없습니다. MCPServerStdio 대신 MCPServerStreamableHttp로 연결됩니다:

context7_params = {"url": "https://mcp.context7.com/mcp", "timeout": 60}

async with MCPServerStreamableHttp(params=context7_params, client_session_timeout_seconds=60) as docs_server:
    ...

두 가지 타임아웃이 작동하며 서로 다른 역할을 합니다. params 내부의 timeout은 HTTP 요청 타임아웃이고, client_session_timeout_seconds는 MCP 세션 읽기 타임아웃이며 기본값이 5초에 불과합니다 — 느린 문서 가져오기가 실패할 정도로 낮기 때문에 여기서는 60으로 높였습니다.

설정

  1. Node 22+ (Tavily는 npx를 통해 실행되고, Qdrant는 uv가 이미 제공하는 uvx를 통해 실행되며, Context7은 설치가 필요 없습니다):

    • Windows (PowerShell): winget install OpenJS.NodeJS.LTS

    • Mac: brew install node

    • Linux / 기타: 패키지 관리자 또는 nodejs.org에서 설치

  2. tavily.com에서 무료 Tavily API 키를 받으세요 (월 1,000회 검색, 신용카드 불필요; tvly-로 시작).

  3. 선택 사항: context7.com에서 무료 Context7 API 키를 받으세요. Context7은 익명으로 작동합니다 — 키는 속도 제한만 높여줍니다.

  4. .env.example을 .env로 복사하고 다음을 입력하세요:

    OPENAI_API_KEY=sk-...
    TAVILY_API_KEY=tvly-...
    CONTEXT7_API_KEY=          # optional, leave blank to run anonymously
  5. 의존성 설치:

    uv sync
  6. 실행:

    uv run main.py

참고 사항

  • 첫 실행 시 한 번 일시 중지되며, 때로는 꽤 오래 걸립니다: 첫 저장 또는 검색 시 Qdrant의 작은 로컬 임베딩 모델을 다운로드합니다. 이것이 Qdrant 서버가 60초가 아닌 120초의 클라이언트 타임아웃을 받는 이유입니다.

  • 벡터 저장소는 memory/qdrant/ (컬렉션 knowledge)에 있으며, 작업 디렉토리를 기준으로 생성됩니다 — 프로젝트 폴더에서 실행하세요. 빈 지식 베이스로 시작하려면 삭제하세요.

  • 스크립트를 다시 실행하면 1단계가 이미 저장된 내용을 대체하지 않고 추가합니다.

  • CONTEXT7_API_KEY가 설정되면 Authorization: Bearer ... 헤더로 전송됩니다. 없으면 헤더가 완전히 생략되고 서버가 익명으로 사용됩니다.

  • 검색 에이전트는 의도적으로 Qdrant만 사용하도록 남겨졌습니다. Context7도 함께 제공하면 데모가 모호해집니다 — 답변이 지식 베이스에서 왔는지 새로운 문서 조회에서 왔는지 구분할 수 없게 됩니다.

  • Context7은 원격 서버이므로 다른 두 서버와 달리 로컬 프로세스가 아닌 mcp.context7.com의 네트워크 연결 가능성에 의존합니다.

  • 추적은 platform.openai.com/traces에서 확인하세요.

  • Windows, 경로에 공백이 있는 경우: npx 실행이 실패하면 대신 {"command": "powershell", "args": ["/c", "npx", ...]}를 사용하세요.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides semantic memory capabilities using Qdrant vector database with configurable embedding providers, allowing storage and retrieval of information using vector similarity.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables semantic search and document management using a local Qdrant vector database with OpenAI embeddings. Supports natural language queries, metadata filtering, and collection management for AI-powered document retrieval.
    33 npm
    36
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables storing and retrieving information using semantic search with Qdrant vector database. Acts as a memory layer for LLMs to persistently store and semantically search through information and metadata.
    Apache 2.0