Skip to main content
Glama
jiteshzope

mcp-server-qdrant

by jiteshzope

Agentic RAG(Tavily + Context7 + Qdrant)

できること

エージェントが自分自身で構築する知識ベース。エージェントが参照できる複数のコンテキストエンジニアリングソースの一つです。

RAG(検索拡張生成)は、モデルに関連するドキュメントを与えて回答を裏付ける手法です。通常の設定では、事前にドキュメントをベクトルストアに読み込んでおきます。Agentic RAG はこれを逆転させます: エージェントが自ら知識ベースを構築し、何を保持する価値があるかを判断しながら、作業の過程で保存していきます。

このセットアップでは、公式のQdrant MCP サーバーを使用します。Qdrant はベクトルデータベースであり、サーバーは2つのツールを公開します。1つはテキストの断片を保存し、もう1つはクエリに対して最も関連性の高い保存済みテキストを見つけます。これは完全にローカルで動作します — QDRANT_LOCAL_PATH によりすべてのデータをディスク上に保持し、別途データベースを起動する必要はなく、テキストの埋め込みにはローカルモデルを使用するため、追加のAPIキーも不要です。

エージェントは3つのMCPサーバーを利用します:

サーバー

トランスポート

目的

Tavily (tavily-mcp)

stdio 経由 npx

ライブWeb検索、tavily_search に絞り込み

Context7 (mcp.context7.com)

streamable HTTP

ライブラリ、フレームワーク、SDK、APIの最新ドキュメント

Qdrant (mcp-server-qdrant)

stdio 経由 uvx

エージェントが書き込み・読み取りを行うローカルベクトルストア

このスクリプトは、RAGの2つの部分を別々のエージェントとして実行します:

  1. 保存 — Tavily検索、Context7、Qdrantを持つ1つのエージェント。Nvidiaに関する最新情報をWebから調査し、Context7を通じて現在のOpenAI Agents SDKのドキュメントを参照し、両方から重要な事実を保存します。

  2. 取得 — Qdrantのみを持つ2番目のエージェント。Web検索もContext7もありません。エージェントが何を言うにしても、それは最初のエージェントが保存した内容を思い出しているものです。

Related MCP server: Qdrant MCP Server

Context7 の理由

モデルの学習データにはカットオフがあるため、急速に変化するライブラリに関する記憶は古くなっており、もはや存在しないAPIを自信を持ってでっち上げてしまいます。Context7 は、ライブラリのドキュメントをインデックス化し、要求に応じて最新バージョンを提供するホスト型MCPサーバーです。2つのツール:

  • resolve-library-id — パッケージ名や製品名("openai-agents"、"next.js")をContext7のライブラリIDに変換します。

  • query-docs — そのライブラリの最新のドキュメントとコード例を、質問に絞り込んで取得します。

エージェントの指示では、ライブラリに関連するものは、メモリや一般的なWeb検索ではなく、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:
    ...

2つのタイムアウトが関与しており、それぞれ異なる役割を果たします。パラメータ内の timeout はHTTPリクエストのタイムアウトです。client_session_timeout_seconds はMCPセッション読み取りのタイムアウトで、デフォルトはわずか5秒です — この値が低いと、遅いドキュメント取得が失敗する可能性があるため、ここでは60秒に引き上げています。

セットアップ

  1. Node 22+(Tavilyは npx 経由で実行、Qdrantは uvx 経由で実行(uv がすでに提供)、Context7はインストール不要):

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

    • Mac: brew install node

    • Linux / その他: パッケージマネージャーまたは nodejs.org からインストール

  2. 無料のTavily APIキーを tavily.com で取得(月1,000回の検索、クレジットカード不要、tvly- で始まります)。

  3. オプション: 無料のContext7 APIキーを context7.com で取得。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はリモートサーバーであるため、他の2つとは異なり、ローカルプロセスではなく 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