mcp-server-qdrant
Агентный RAG (Tavily + Context7 + Qdrant)
Что это делает
База знаний, которую агент строит для себя — один из нескольких источников контекстной инженерии, к которым агент может обращаться.
RAG — генерация с дополнением через поиск — означает предоставление модели релевантных документов для обоснования ответа. Обычный подход загружает документы в векторное хранилище заранее. Агентный RAG переворачивает этот подход: агент сам строит базу знаний, решая, что стоит сохранить, и сохраняя это по мере работы.
Здесь используется официальный MCP-сервер Qdrant. Qdrant — это векторная база данных, и сервер предоставляет два инструмента: один сохраняет фрагмент текста, другой находит наиболее релевантный сохраненный текст для запроса. Он работает полностью локально — QDRANT_LOCAL_PATH хранит всё на диске без необходимости запускать отдельную базу данных, а встраивание текста выполняется локальной моделью, поэтому дополнительный API-ключ не требуется.
Агент использует три MCP-сервера:
Сервер | Транспорт | Назначение |
Tavily ( | stdio через | Поиск в интернете в реальном времени, ограниченный |
Context7 ( | streamable HTTP | Актуальная документация по библиотекам, фреймворкам, SDK и API |
Qdrant ( | stdio через | Локальное векторное хранилище, в которое агент пишет и из которого читает |
Скрипт запускает две половины RAG как два отдельных агента:
Сохранение — один агент с поиском Tavily, Context7 и Qdrant. Он исследует последние новости об Nvidia в интернете, находит актуальную документацию OpenAI Agents SDK через Context7 и сохраняет ключевые факты из обоих источников.
Извлечение — второй агент только с Qdrant, без поиска в интернете и без Context7. Всё, что он говорит, он извлекает из того, что сохранил первый агент.
Related MCP server: Qdrant MCP Server
Зачем нужен Context7
Обучающие данные модели имеют временную отсечку, поэтому её память о быстро меняющейся библиотеке устаревает, и она будет уверенно выдумывать API, которых больше не существует. Context7 — это хостинговый MCP-сервер, который индексирует документацию библиотек и предоставляет актуальную версию по запросу. Два инструмента:
resolve-library-id— преобразует имя пакета или продукта ("openai-agents","next.js") в идентификатор библиотеки Context7.query-docs— получает актуальную документацию и примеры кода для этой библиотеки, суженные до вашего вопроса.
Инструкции агента направляют всё, что связано с библиотеками, в Context7, а не в память или в общий поиск в интернете — сначала определить идентификатор, затем запросить документацию. Поскольку это обычная HTTP-конечная точка, ничего устанавливать не нужно; она подключается через MCPServerStreamableHttp вместо 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:
...Здесь задействованы два тайм-аута, и они выполняют разные функции. timeout внутри параметров — это тайм-аут HTTP-запроса; client_session_timeout_seconds — это тайм-аут чтения MCP-сессии, и по умолчанию он составляет всего 5 секунд — настолько мало, что медленный запрос документации завершится ошибкой, поэтому здесь он увеличен до 60.
Настройка
Node 22+ (Tavily запускается через
npx; Qdrant запускается черезuvx, который уже предоставляетuv; для Context7 ничего устанавливать не нужно):Windows (PowerShell):
winget install OpenJS.NodeJS.LTSMac:
brew install nodeLinux / другие системы: установите через ваш пакетный менеджер или с nodejs.org
Получите бесплатный API-ключ Tavily на tavily.com (1000 поисков в месяц, без кредитной карты; начинается с
tvly-).Необязательно: получите бесплатный API-ключ Context7 на context7.com. Context7 работает анонимно — ключ только повышает лимит запросов.
Скопируйте
.env.exampleв.envи заполните:OPENAI_API_KEY=sk-... TAVILY_API_KEY=tvly-... CONTEXT7_API_KEY= # optional, leave blank to run anonymouslyУстановите зависимости:
uv syncЗапустите:
uv run main.py
Примечания
Первый запуск приостанавливается один раз, иногда на некоторое время: при первом сохранении или поиске загружается небольшая локальная модель встраивания Qdrant. Именно поэтому сервер Qdrant получает тайм-аут клиента 120 с вместо 60 с.
Векторное хранилище находится в
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", ...]}.
This server cannot be deployed
Maintenance
Related MCP Connectors
Universal persistent memory and knowledge retrieval layer for AI agents and LLMs.
Ingest, manage, and retrieve documents for RAG-powered AI applications
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Persistent memory for AI agents. Search, store, and recall across sessions.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides semantic memory capabilities using Qdrant vector database with configurable embedding providers, allowing storage and retrieval of information using vector similarity.2Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables 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 npm36MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Qdrant vector database for storing, searching, and managing vectors with automatic text embedding.1-