mcp-server-qdrant

Official

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

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

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

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

概要

Qdrantベクトル検索エンジンにおけるメモリの保存と取得のための公式モデルコンテキストプロトコルサーバー。Qdrantデータベース上のセマンティックメモリレイヤーとして機能します。

コンポーネント

ツール

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

環境変数

サーバーの構成は環境変数を使用して行われます。

名前説明デフォルト値
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_URLQDRANT_LOCAL_PATH両方を同時に提供することはできません。

[!重要] コマンドライン引数はサポートされなくなりました。すべての構成に環境変数を使用してください。

インストール

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 : サーバー送信イベントトランスポート、リモートクライアントに最適

指定されていない場合、デフォルトのトランスポートはstdioなります。

Dockerの使用

MCP サーバーを構築および実行するための Dockerfile が利用可能です。

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

Smithery経由でインストール

Smithery経由で Claude Desktop 用の Qdrant MCP Server を自動的にインストールするには:

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対応のあらゆるクライアントで使用できます。例えば、モデルコンテキストプロトコル(MCP)の組み込みサポートを提供するCursorVS Codeで使用できます。

カーソル/ウィンドサーフィンと併用

ツールの説明をカスタマイズすることで、この 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サーバーを追加する方法については、 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 で動作しない場合は、エージェントが新しいコードスニペットを生成する際に常に MCP ツールが使用されるように、 Cursor ルールを作成することを検討してください。**ルールを特定のファイルタイプにのみ適用するように制限することで、ドキュメントやその他の種類のコンテンツに MCP サーバーが使用されないようにすることができます。

Claude Codeと併用

Claude Code をこの MCP サーバーに接続することで、既存のコードベースでセマンティック検索が可能になり、その機能を強化できます。

mcp-server-qdrant の設定

  1. Claude Code に MCP サーバーを追加します。
    # 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_DESCRIPTIONおよびTOOL_FIND_DESCRIPTIONで指定されるツールの説明は、Claude Code に MCP サーバーの使用方法を案内します。上記の説明は例であり、特定のユースケースに合わせてカスタマイズする必要がある場合があります。ただし、Claude Code では既に以下のことが可能です。

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

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

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

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

VS Codeでの使用

ワンクリックでインストールするには、以下のいずれかのインストールボタンをクリックします。

手動インストール

VS Codeのユーザー設定(JSON)ファイルに、以下のJSONブロックを追加します。Ctrl 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 の改善方法についてご提案がある場合、またはバグを報告したい場合は、問題を報告してください。皆様からのあらゆる貢献を歓迎いたします。

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

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

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

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

ライセンス

このMCPサーバーはApache License 2.0に基づいてライセンスされています。つまり、Apache License 2.0の条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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

  1. Overview
    1. Components
      1. Tools
    2. Environment Variables
      1. Installation
        1. Using uvx
        2. Using Docker
        3. Installing via Smithery
        4. Manual configuration of Claude Desktop
      2. Support for other tools
        1. Using with Cursor/Windsurf
        2. Using with Claude Code
        3. Run MCP server in Development Mode
        4. Using with VS Code
      3. Contributing
        1. Testing mcp-server-qdrant locally
      4. License
        ID: 9ejy5scw5i