Qdrant MCP Server について
Qdrant MCP Serverは、MCPクライアントからQdrantベクトルデータベースを操作するためのツールを提供します。テキストの保存や類似検索に向けて、テキストの自動埋め込み、バッチ登録、メタデータ絞り込み、ポイント管理に対応します。
主な機能
- 01FastEmbedによるテキストの自動埋め込み
- 02テキスト保存と類似検索
- 03テキストのバッチ埋め込みと保存
- 04メタデータ条件付きベクトル検索
- 05IDによるポイントの取得、削除、集計
活用シーン
- 01埋め込みを生成してテキストをQdrantに保存
- 02テキストクエリに類似する内容の検索
- 03メタデータによるベクトル検索結果の絞り込み
- 04ポイントIDによるレコードの管理や集計
MCP 対応
このMCPサーバーは、保存、類似検索、絞り込み、取得、削除、集計など、Qdrantのテキスト・ベクトル・ポイント操作ツールをクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Qdrant MCP サーバー
Qdrant ベクトルデータベースと連携する MCP サーバーです。このサーバーは、MCP(Master Control Program)フレームワークを使用して、ベクトルの管理、類似検索の実行、テキストからベクトルへの自動埋め込みを行うツールを提供します。
特徴
- FastEmbed を使用した、テキストからベクトルへの自動埋め込み
- ベクトル検索によるテキストコンテンツの保存と取得
- 環境変数を使用したデフォルトのコレクション設定
- コンテンツによるテキスト類似検索
- 最適化されたモデルによる効率的な埋め込み
設定
.env.example テンプレートを基に .env ファイルを作成します。
# Qdrant connection settings
QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_API_KEY=
QDRANT_VERIFY_SSL=True # Set to False if using self-signed certificates
# Default settings
DEFAULT_COLLECTION_NAME=default_collection
EMBEDDING_MODEL=BAAI/bge-small-en-v1.5
埋め込みモデルは、FastEmbed がサポートする任意のモデルに変更できます。
使用方法
ローカルでの実行
- パッケージをインストールします。
pip install -e .
- サーバーを実行します。
qdrant-mcp-server
Docker での実行
- Docker イメージをビルドします。
docker build -t qdrant-mcp-server .
- コンテナを実行します。
docker run -p 8000:8000 --env QDRANT_HOST=<your-qdrant-host> --env QDRANT_PORT=<your-qdrant-port> --env QDRANT_VERIFY_SSL=<True|False> qdrant-mcp-server
テスト
このパッケージには、機能を検証するためのテストスイートが含まれています。テストを実行するには、次の手順に従います。
- 開発用依存関係をインストールします。
pip install -e ".[dev]"
- テストを実行します。
cd tests
./run_tests.py
または、pytest を直接使用できます。
pytest -xvs tests/
自己署名証明書の使用
Qdrant サーバーが自己署名証明書を使用している場合は、.env ファイル、または Docker コンテナの実行時に QDRANT_VERIFY_SSL=False を設定します。これにより、SSL 証明書の検証が無効になります。
ツール
サーバーは次のツールを提供します。
テキストツール
store_text:テキストを埋め込みベクトルに変換し、データベースに保存しますsearch_similar_text:クエリテキストを埋め込みに変換し、類似するベクトルを検索しますstore_texts:複数のテキストを埋め込みに変換し、一括で保存します
ベクトルツール
search_vectors:コレクション内の類似ベクトルを検索しますupsert_vectors:ベクトルをコレクションにアップロードしますfilter_search:メタデータフィルターを使ってコレクションを検索します
ポイントツール
get_points:コレクションから ID を指定してポイントを取得しますdelete_points:コレクションから ID を指定してポイントを削除しますcount_points:コレクション内のポイント数をカウントします
使用例
テキストの保存
await store_text(
text="What is the capital of France?",
metadata={"category": "geography", "type": "question"}
)
類似テキストの検索
await search_similar_text(
query="What is Paris the capital of?",
limit=5
)
複数のテキストの保存
await store_texts(
texts=["Paris is in France", "London is in England", "Berlin is in Germany"],
metadatas=[
{"category": "geography", "country": "France"},
{"category": "geography", "country": "England"},
{"category": "geography", "country": "Germany"}
]
)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。