Skip to main content
Glama
jiteshzope

mcp-server-qdrant

by jiteshzope

RAG Agéntico (Tavily + Context7 + Qdrant)

Qué hace

Una base de conocimiento que el agente construye por sí mismo — una de varias fuentes de ingeniería de contexto que un agente puede utilizar.

RAG — generación aumentada por recuperación — significa proporcionar al modelo documentos relevantes para fundamentar su respuesta. La configuración habitual carga documentos en un almacén de vectores de antemano. El RAG agéntico invierte esto: el agente construye la base de conocimiento por sí mismo, decidiendo qué vale la pena conservar y almacenándolo mientras trabaja.

Esto utiliza el servidor MCP oficial de Qdrant. Qdrant es una base de datos vectorial, y el servidor expone dos herramientas: una almacena un fragmento de texto, la otra encuentra el texto almacenado más relevante para una consulta. Se ejecuta completamente en local — QDRANT_LOCAL_PATH mantiene todo en disco sin necesidad de una base de datos separada, y embebe texto con un modelo local, por lo que no se necesita una clave API adicional.

El agente utiliza tres servidores MCP:

Servidor

Transporte

Propósito

Tavily (tavily-mcp)

stdio vía npx

Búsqueda web en vivo, filtrada a tavily_search

Context7 (mcp.context7.com)

HTTP transmisible

Documentación actual de librerías, frameworks, SDKs y APIs

Qdrant (mcp-server-qdrant)

stdio vía uvx

El almacén vectorial local que el agente escribe y lee

El script ejecuta las dos mitades del RAG como dos agentes separados:

  1. Almacenar — un agente con búsqueda Tavily, Context7 y Qdrant. Investiga lo último sobre Nvidia en la web, consulta la documentación actual del SDK de OpenAI Agents a través de Context7, y almacena los datos clave de ambos.

  2. Recuperar — un segundo agente con solo Qdrant, sin búsqueda web ni Context7. Todo lo que diga, lo recuerda de lo que almacenó el primer agente.

Related MCP server: Qdrant MCP Server

Por qué Context7

Los datos de entrenamiento del modelo tienen un límite temporal, por lo que su memoria de una librería que cambia rápidamente está desactualizada e inventará con confianza APIs que ya no existen. Context7 es un servidor MCP alojado que indexa documentación de librerías y sirve la versión actual bajo demanda. Dos herramientas:

  • resolve-library-id — convierte un nombre de paquete o producto ("openai-agents", "next.js") en un ID de librería de Context7.

  • query-docs — obtiene documentación actualizada y ejemplos de código para esa librería, limitados a tu pregunta.

Las instrucciones del agente dirigen cualquier cosa relacionada con librerías a Context7 en lugar de a la memoria o a una búsqueda web general — primero resuelve el ID, luego consulta la documentación. Como es un endpoint HTTP simple, no hay nada que instalar; se conecta con MCPServerStreamableHttp en lugar de MCPServerStdio:

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

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

Hay dos tiempos de espera en juego y hacen cosas diferentes. timeout dentro de los parámetros es el tiempo de espera de la solicitud HTTP; client_session_timeout_seconds es el tiempo de espera de lectura de sesión MCP, y por defecto es de solo 5 segundos — lo suficientemente bajo como para que una consulta lenta de documentación falle, por lo que se eleva a 60 aquí.

Configuración

  1. Node 22+ (Tavily se ejecuta vía npx; Qdrant se ejecuta vía uvx, que uv ya proporciona; Context7 no necesita nada instalado):

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

    • Mac: brew install node

    • Linux / cualquier otro: instala a través de tu gestor de paquetes o desde nodejs.org

  2. Obtén una clave API gratuita de Tavily en tavily.com (1,000 búsquedas/mes, sin tarjeta de crédito; comienza con tvly-).

  3. Opcional: obtén una clave API gratuita de Context7 en context7.com. Context7 funciona de forma anónima — la clave solo aumenta el límite de velocidad.

  4. Copia .env.example a .env y completa:

    OPENAI_API_KEY=sk-...
    TAVILY_API_KEY=tvly-...
    CONTEXT7_API_KEY=          # optional, leave blank to run anonymously
  5. Instala las dependencias:

    uv sync
  6. Ejecútalo:

    uv run main.py

Notas

  • La primera ejecución se pausa una vez, a veces por un rato: la primera vez que se almacena o busca, se descarga el pequeño modelo de embebido local de Qdrant. Por eso el servidor Qdrant tiene un tiempo de espera de cliente de 120s en lugar de 60s.

  • El almacén vectorial se encuentra en memory/qdrant/ (colección knowledge), creado en relación con tu directorio de trabajo — ejecuta desde la carpeta del proyecto. Bórralo para empezar con una base de conocimiento vacía.

  • Ejecuta el script de nuevo y el paso 1 añade a lo que ya está almacenado en lugar de reemplazarlo.

  • Si CONTEXT7_API_KEY está configurada, se envía como un encabezado Authorization: Bearer ...; si está ausente, el encabezado se omite por completo y el servidor se usa de forma anónima.

  • El agente de recuperación se deja deliberadamente solo con Qdrant. Darle también Context7 difuminaría la demostración — ya no podrías saber si una respuesta provino de la base de conocimiento o de una consulta nueva de documentación.

  • Context7 es un servidor remoto, por lo que a diferencia de los otros dos, depende de la accesibilidad de red de mcp.context7.com en lugar de un proceso local.

  • Trazas en platform.openai.com/traces.

  • Windows, rutas con espacios: si npx falla al iniciar, usa {"command": "powershell", "args": ["/c", "npx", ...]} en su lugar.

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