Qdrant MCP

公式

Qdrantベクターデータベースを使用したセマンティック検索。

Qdrant MCPで何ができますか?

QdrantをAIアシスタントのセマンティックメモリ層として使用し、正確なキーワードではなく意味によって情報を保存および取得できるようにします。

  • セマンティックメモリを保存する — アシスタントに、後で取得するためにオプションのメタデータとともに情報をqdrant-store経由でQdrantに保存するよう依頼します。
  • 関連するメモリを取得するqdrant-findを使用して、自然言語クエリで保存された情報を検索し、一致する結果を取得します。
  • コードスニペットライブラリを構築する — 説明付きのコードスニペットを保存し、CursorやClaude Codeのセットアップで示されているように、セマンティックに取得します。
  • 特定のコレクションを対象にするcollection_nameを使用して名前付きコレクションに保存または検索するか、COLLECTION_NAMEで設定されたデフォルトに依存します。

ドキュメント

mcp-server-qdrant: Qdrant MCP サーバー

smithery badge

Model Context Protocol (MCP) は、LLM アプリケーションと外部データソースおよびツールとのシームレスな統合を可能にするオープンプロトコルです。AI を活用した IDE の構築、チャットインターフェースの拡張、カスタム AI ワークフローの作成など、MCP は LLM が必要とするコンテキストに接続する標準化された方法を提供します。

このリポジトリは、ベクトル検索エンジンである Qdrant 用の MCP サーバーを作成する方法の例です。

概要

Qdrant ベクトル検索エンジンに記憶を保存・取得するための公式 Model Context Protocol サーバーです。Qdrant データベースの上にセマンティックメモリレイヤーとして機能します。

コンポーネント

ツール

  1. qdrant-store
    • 情報を Qdrant データベースに保存します
    • 入力:
      • information (文字列): 保存する情報
      • metadata (JSON): 保存する任意のメタデータ
      • collection_name (文字列): 情報を保存するコレクションの名前。デフォルトのコレクション名がない場合は必須です。デフォルトのコレクション名がある場合、このフィールドは使用できません。
    • 戻り値: 確認メッセージ
  2. qdrant-find
    • Qdrant データベースから関連情報を取得します
    • 入力:
      • query (文字列): 検索に使用するクエリ
      • collection_name (文字列): 情報を保存するコレクションの名前。デフォルトのコレクション名がない場合は必須です。デフォルトのコレクション名がある場合、このフィールドは使用できません。
    • 戻り値: Qdrant データベースに保存された情報を個別のメッセージとして返します

環境変数

設定は環境変数によって行われます。コマンドライン引数は --transport のみで、トランスポートプロトコル の選択に使用されます。

[!NOTE] QDRANT_URLQDRANT_LOCAL_PATH を同時に指定することはできません。

名前説明デフォルト値
QDRANT_URLQdrant サーバーの URLなし
QDRANT_API_KEYQdrant サーバーの API キーなし
COLLECTION_NAME使用するデフォルトコレクションの名前なし
QDRANT_LOCAL_PATHローカル Qdrant データベースへのパス (QDRANT_URL の代替)なし
EMBEDDING_PROVIDER使用する埋め込みプロバイダー (現在は "fastembed" のみサポート)fastembed
EMBEDDING_MODEL使用する埋め込みモデルの名前sentence-transformers/all-MiniLM-L6-v2
TOOL_STORE_DESCRIPTIONストアツールのカスタム説明settings.py のデフォルトを参照
TOOL_FIND_DESCRIPTIONファインドツールのカスタム説明settings.py のデフォルトを参照
QDRANT_SEARCH_LIMIT検索から返す最大結果数10
QDRANT_READ_ONLY読み取り専用モードを有効にする (qdrant-store ツールを無効化)false

FastMCP 環境変数

mcp-server-qdrant は FastMCP に基づいているため、すべての FastMCP 環境変数もサポートしています。最も重要なものは以下のとおりです:

環境変数説明デフォルト値
FASTMCP_LOG_LEVELログレベルを設定 (DEBUG、INFO、WARNING、ERROR、CRITICAL)INFO
FASTMCP_SERVER_DEBUGデバッグモードを有効にするfalse
FASTMCP_SERVER_HOSTサーバーをバインドするホストアドレス127.0.0.1
FASTMCP_SERVER_PORTサーバーを実行するポート8000
FASTMCP_SERVER_ON_DUPLICATE_RESOURCES重複リソースの動作 (warn、error、replace、ignore)warn
FASTMCP_SERVER_ON_DUPLICATE_TOOLS重複ツールの動作 (warn、error、replace、ignore)warn
FASTMCP_SERVER_ON_DUPLICATE_PROMPTS重複プロンプトの動作 (warn、error、replace、ignore)warn
FASTMCP_SERVER_DEPENDENCIESサーバー環境にインストールする依存関係のリスト[]

[!NOTE] サーバー固有の設定には FASTMCP_SERVER_ プレフィックスが使用されます。これは将来のバージョンで変更される可能性があります。

インストール

uvx を使用する場合

uvx を使用する場合、mcp-server-qdrant を直接実行するための特定のインストールは必要ありません。

QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
EMBEDDING_MODEL="sentence-transformers/all-MiniLM-L6-v2" \
uvx mcp-server-qdrant

トランスポートプロトコル

サーバーは、--transport フラグを使用して指定できるさまざまなトランスポートプロトコルをサポートしています:

QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
uvx mcp-server-qdrant --transport sse

サポートされているトランスポートプロトコル:

  • stdio (デフォルト): 標準入出力トランスポート。ローカルの MCP クライアントでのみ使用可能
  • sse: Server-Sent Events トランスポート。リモートクライアントに最適
  • streamable-http: Streamable HTTP トランスポート。リモートクライアントに最適で、SSE より新しい

指定がない場合のデフォルトトランスポートは stdio です。

SSE トランスポートを使用する場合、サーバーは指定されたポートで待機し、着信接続を待ちます。デフォルトのポートは 8000 ですが、FASTMCP_SERVER_PORT 環境変数を使用して変更できます。

QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
FASTMCP_SERVER_PORT=1234 \
uvx mcp-server-qdrant --transport sse

Docker を使用する場合

MCP サーバーをビルドして実行するための Dockerfile が用意されています:

# Build the container
docker build -t mcp-server-qdrant .

# Run the container
docker run -p 8000:8000 \
  -e FASTMCP_SERVER_HOST="0.0.0.0" \
  -e QDRANT_URL="http://your-qdrant-server:6333" \
  -e QDRANT_API_KEY="your-api-key" \
  -e COLLECTION_NAME="your-collection" \
  mcp-server-qdrant

[!TIP] Docker コンテナ内でサーバーを実行する場合、すべてのネットワークインターフェースで待機するように FASTMCP_SERVER_HOST="0.0.0.0" を設定していることに注意してください。これは Docker コンテナ内でサーバーを実行する際に必要です。

Smithery を使用したインストール

Smithery を介して Claude Desktop 用の Qdrant MCP サーバーを自動的にインストールするには:

npx @smithery/cli install mcp-server-qdrant --client claude

Claude Desktop の手動設定

このサーバーを Claude Desktop アプリで使用するには、claude_desktop_config.json の "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 モードの場合:

{
  "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"
    }
  }
}

この MCP サーバーは、指定された名前のコレクションが存在しない場合、自動的に作成します。

デフォルトでは、サーバーは sentence-transformers/all-MiniLM-L6-v2 埋め込みモデルを使用して記憶をエンコードします。現時点では、FastEmbed モデルのみがサポートされています。

他のツールのサポート

この MCP サーバーは、MCP 互換の任意のクライアントで使用できます。たとえば、Model Context Protocol の組み込みサポートを提供する CursorVS Code で使用できます。

Cursor/Windsurf での使用

ツールの説明をカスタマイズすることで、この MCP サーバーを Cursor または Windsurf のコード検索ツールとして構成できます:

QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="code-snippets" \
TOOL_STORE_DESCRIPTION="Store reusable code snippets for later retrieval. \
The 'information' parameter should contain a natural language description of what the code does, \
while the actual code should be included in the 'metadata' parameter as a 'code' property. \
The value of 'metadata' is a Python dictionary with strings as keys. \
Use this whenever you generate some code snippet." \
TOOL_FIND_DESCRIPTION="Search for relevant code snippets based on natural language descriptions. \
The 'query' parameter should describe what you're looking for, \
and the tool will return the most relevant code snippets. \
Use this when you need to find existing code snippets for reuse or reference." \
uvx mcp-server-qdrant --transport sse # Enable SSE transport

Cursor/Windsurf では、SSE トランスポートプロトコルを使用してこの実行中のサーバーをポイントすることで、設定で MCP サーバーを構成できます。Cursor に MCP サーバーを追加する方法の説明は、https://docs.cursor.com/context/model-context-protocol#adding-an-mcp-server-to-cursor にあります。Cursor/Windsurf をローカルで実行している場合は、次の URL を使用できます:

http://localhost:8000/sse

[!TIP] Cursor/Windsurf を MCP サーバーに接続する方法として、リモート接続をサポートできる SSE トランスポートを推奨します。これにより、サーバーをチームで共有したり、クラウド環境で使用したりすることが簡単になります。

この設定により、Qdrant MCP サーバーは専門的なコード検索ツールに変換され、以下のことが可能になります:

  1. コードスニペット、ドキュメント、実装の詳細を保存する
  2. セマンティック検索に基づいて関連するコード例を取得する
  3. 開発者が特定の実装や使用パターンを見つけるのを支援する

コードスニペットの自然言語による説明を information パラメータに、実際のコードを metadata.code プロパティに保存してデータベースを構築し、探しているものを説明する自然言語クエリで検索できます。

[!NOTE] 上記のツールの説明は例であり、特定のユースケースに合わせてカスタマイズする必要がある場合があります。チームのワークフローや、保存・取得したいコードスニペットの特定の種類に合わせて説明を調整することを検討してください。

mcp-server-qdrant を正常にインストールしたにもかかわらず、Cursor で動作しない場合は、Cursor rules の作成を検討してください。これにより、エージェントが新しいコードスニペットを生成する際に MCP ツールが常に使用されるようになります。 ルールを特定のファイルタイプのみに制限して、ドキュメントや他の種類のコンテンツに MCP サーバーを使用しないようにすることもできます。

Claude Code での使用

この MCP サーバーに接続することで Claude Code の機能を拡張し、既存のコードベースに対するセマンティック検索を有効にできます。

mcp-server-qdrant の設定

  1. MCP サーバーを Claude Code に追加します:

    # Add mcp-server-qdrant configured for code search
    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. The 'information' parameter should contain a natural language description of what the code does, while the actual code should be included in the 'metadata' parameter as a 'code' property." \
    -e TOOL_FIND_DESCRIPTION="Search for relevant code snippets using natural language. The 'query' parameter should describe the functionality you're looking for." \
    -- uvx mcp-server-qdrant
    
  2. サーバーが追加されたことを確認します:

    claude mcp list
    

Claude Code でのセマンティックコード検索の使用

TOOL_STORE_DESCRIPTIONTOOL_FIND_DESCRIPTION で指定されたツールの説明は、Claude Code に MCP サーバーの使用方法をガイドします。上記のものは例であり、特定のユースケースに合わせてカスタマイズする必要がある場合があります。ただし、Claude Code はすでに以下のことができるはずです:

  1. qdrant-store ツールを使用して、説明付きのコードスニペットを保存します。
  2. qdrant-find ツールを使用して、自然言語で関連するコードスニペットを検索します。

開発モードで MCP サーバーを実行する

mcp dev コマンドを使用して、MCP サーバーを開発モードで実行できます。これによりサーバーが起動し、ブラウザで MCP インスペクターが開きます。

COLLECTION_NAME=mcp-dev fastmcp dev src/mcp_server_qdrant/server.py

VS Code での使用

ワンクリックインストールの場合は、以下のインストールボタンのいずれかをクリックしてください:

Install with UVX in VS Code Install with UVX in VS Code Insiders

Install with Docker in VS Code Install with Docker in VS Code Insiders

手動インストール

VS Code のユーザー設定 (JSON) ファイルに次の JSON ブロックを追加します。これは、Ctrl + Shift + P を押して Preferences: Open User Settings (JSON) と入力することで実行できます。

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "qdrantUrl",
        "description": "Qdrant URL"
      },
      {
        "type": "promptString",
        "id": "qdrantApiKey",
        "description": "Qdrant API Key",
        "password": true
      },
      {
        "type": "promptString",
        "id": "collectionName",
        "description": "Collection Name"
      }
    ],
    "servers": {
      "qdrant": {
        "command": "uvx",
        "args": ["mcp-server-qdrant"],
        "env": {
          "QDRANT_URL": "${input:qdrantUrl}",
          "QDRANT_API_KEY": "${input:qdrantApiKey}",
          "COLLECTION_NAME": "${input:collectionName}"
        }
      }
    }
  }
}

または、Docker を使用したい場合は、代わりに次の設定を追加します:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "qdrantUrl",
        "description": "Qdrant URL"
      },
      {
        "type": "promptString",
        "id": "qdrantApiKey",
        "description": "Qdrant API Key",
        "password": true
      },
      {
        "type": "promptString",
        "id": "collectionName",
        "description": "Collection Name"
      }
    ],
    "servers": {
      "qdrant": {
        "command": "docker",
        "args": [
          "run",
          "-p", "8000:8000",
          "-i",
          "--rm",
          "-e", "QDRANT_URL",
          "-e", "QDRANT_API_KEY",
          "-e", "COLLECTION_NAME",
          "mcp-server-qdrant"
        ],
        "env": {
          "QDRANT_URL": "${input:qdrantUrl}",
          "QDRANT_API_KEY": "${input:qdrantApiKey}",
          "COLLECTION_NAME": "${input:collectionName}"
        }
      }
    }
  }
}

あるいは、ワークスペースに次の内容の .vscode/mcp.json ファイルを作成することもできます:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "qdrantUrl",
      "description": "Qdrant URL"
    },
    {
      "type": "promptString",
      "id": "qdrantApiKey",
      "description": "Qdrant API Key",
      "password": true
    },
    {
      "type": "promptString",
      "id": "collectionName",
      "description": "Collection Name"
    }
  ],
  "servers": {
    "qdrant": {
      "command": "uvx",
      "args": ["mcp-server-qdrant"],
      "env": {
        "QDRANT_URL": "${input:qdrantUrl}",
        "QDRANT_API_KEY": "${input:qdrantApiKey}",
        "COLLECTION_NAME": "${input:collectionName}"
      }
    }
  }
}

Docker を使用したワークスペース設定の場合は、.vscode/mcp.json で次を使用します:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "qdrantUrl",
      "description": "Qdrant URL"
    },
    {
      "type": "promptString",
      "id": "qdrantApiKey",
      "description": "Qdrant API Key",
      "password": true
    },
    {
      "type": "promptString",
      "id": "collectionName",
      "description": "Collection Name"
    }
  ],
  "servers": {
    "qdrant": {
      "command": "docker",
      "args": [
        "run",
        "-p", "8000:8000",
        "-i",
        "--rm",
        "-e", "QDRANT_URL",
        "-e", "QDRANT_API_KEY",
        "-e", "COLLECTION_NAME",
        "mcp-server-qdrant"
      ],
      "env": {
        "QDRANT_URL": "${input:qdrantUrl}",
        "QDRANT_API_KEY": "${input:qdrantApiKey}",
        "COLLECTION_NAME": "${input:collectionName}"
      }
    }
  }
}

コントリビューション

mcp-server-qdrant を改善するための提案がある場合、またはバグを報告したい場合は、issue を開いてください! あらゆるコントリビューションを歓迎します。

mcp-server-qdrant をローカルでテストする

MCP inspector は、MCP サーバーをテストおよびデバッグするための開発者ツールです。クライアント UI (デフォルトポート 5173) と MCP プロキシサーバー (デフォルトポート 3000) の両方を実行します。ブラウザでクライアント UI を開いてインスペクターを使用します。

QDRANT_URL=":memory:" COLLECTION_NAME="test" \
fastmcp dev src/mcp_server_qdrant/server.py

起動したら、ブラウザで http://localhost:5173 を開いてインスペクターインターフェースにアクセスします。

ライセンス

このMCPサーバーはApache License 2.0の下でライセンスされています。これは、Apache License 2.0の規約および条件に従う限り、ソフトウェアを自由に使用、変更、配布できることを意味します。詳細については、プロジェクトリポジトリ内のLICENSEファイルをご覧ください。

プライバシーとサポート