Milvus について
Milvus は、LLM アプリから Milvus のデータベース操作を利用できる MCP サーバーです。ベクトルデータの検索や管理を行う開発者向けで、全文・ベクトル・ハイブリッド検索とコレクション操作を備えています。
主な機能
- 01全文・ベクトル・ハイブリッド検索
- 02フィルターによるコレクション検索
- 03コレクションの作成と管理
- 04データの挿入と削除
- 05uvx による起動
活用シーン
- 01ドキュメントコレクション内のテキスト検索
- 02クエリベクトルによる類似レコードの検索
- 03コレクションの作成とデータ登録
MCP 対応
MCP クライアントに Milvus の検索、クエリ、コレクション管理、データ操作のツールを提供します。stdio と SSE に対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Milvus 用 MCP サーバー
Model Context Protocol(MCP)は、LLM アプリケーションと外部のデータソースやツールをシームレスに統合できるオープンプロトコルです。AI 搭載 IDE の構築、チャットインターフェースの強化、カスタム AI ワークフローの作成など、MCP は LLM を必要なコンテキストに接続する標準的な方法を提供します。
このリポジトリには、Milvus ベクトルデータベースの機能にアクセスできる MCP サーバーが含まれています。
注: このリポジトリは https://github.com/zilliztech/mcp-server-milvus.git のフォークで、さまざまな改善が加えられています。また、uvx による実行がサポートされているため、インストールせずに簡単に実行できます。

前提条件
この MCP サーバーを使用する前に、以下を準備してください。
- Python 3.10 以降
- 起動中の Milvus インスタンス(ローカルまたはリモート)
- uv がインストールされていること(サーバーの実行に推奨)
- npx がインストールされていること(MCP Inspector でのテスト用)
使用方法
この MCP サーバーの推奨される使用方法は、インストールせずに uvx で直接実行することです。以下の例では、Claude Desktop と Cursor の両方がこの方法で使用するように設定されています。
サーバーの実行
次のコマンドを使用して Milvus 用 MCP サーバーを実行できます。http://localhost:19530 は、お使いの Milvus サーバー URI に置き換えてください。
uvx mcp-server-milvus --milvus-uri http://localhost:19530
または、プロジェクトディレクトリにある .env ファイルで環境変数を設定し、次の uvx コマンドでサーバーを実行できます。
# Create a .env file with your Milvus configuration
cat > .env <<EOF
MILVUS_URI=http://localhost:19530
MILVUS_TOKEN=root:Milvus
MILVUS_DB=default
EOF
# Run the server with the .env file
uvx --env-file .env mcp-server-milvus
実行モード
サーバーは、stdio(デフォルト)と SSE(Server-Sent Events)の 2 つの実行モードをサポートしています。
Stdio モード(デフォルト)
-
説明:標準入力/出力を介してクライアントと通信します。モードが指定されていない場合は、このモードがデフォルトです。
-
使用方法:
uvx mcp-server-milvus@latest --milvus-uri http://localhost:19530
SSE モード
-
説明:HTTP Server-Sent Events を使用して通信します。このモードでは、複数のクライアントが HTTP 経由で接続でき、Web ベースのアプリケーションに適しています。
-
使用方法:
uvx mcp-server-milvus@latest --sse --milvus-uri http://localhost:19530--sse:SSE モードを有効にします。
-
SSE モードでのデバッグ:
SSE モードでデバッグする場合は、SSE サービスを起動した後、次のコマンドを入力します。
npx @modelcontextprotocol/inspector --transport sse --server-url http://localhost:8000/sse出力は次のようになります。
% npx @modelcontextprotocol/inspector --transport sse --server-url http://localhost:8000/sse Starting MCP inspector... ⚙️ Proxy server listening on port 6277 🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀テストするには、
http://127.0.0.1:6274で MCP Inspector にアクセスします。
対応アプリケーション
この MCP サーバーは、Model Context Protocol に対応したさまざまな LLM アプリケーションで使用できます。
- Claude Desktop:Anthropic の Claude 用デスクトップアプリケーション
- Cursor:MCP に対応した AI 搭載コードエディター
- カスタム MCP クライアント:MCP クライアント仕様を実装する任意のアプリケーション
Claude Desktop での使用
モード別の設定
SSE モードの設定
Claude Desktop を SSE モード用に設定するには、以下の手順に従ってください。
- https://claude.ai/download から Claude Desktop をインストールします。
- Claude Desktop の設定ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- SSE モード用の以下の設定を追加します。
{
"mcpServers": {
"milvus-sse": {
"url": "http://your_sse_host:port/sse",
"disabled": false,
"autoApprove": []
}
}
}
- 変更を適用するため、Claude Desktop を再起動します。
Stdio モードの設定
stdio モードの場合は、以下の手順に従ってください。
- https://claude.ai/download から Claude Desktop をインストールします。
- Claude Desktop の設定ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- stdio モード用の以下の設定を追加します。
{
"mcpServers": {
"milvus": {
"command": "uvx",
"args": [
"mcp-server-milvus@latest",
"--milvus-uri",
"http://localhost:19530"
]
}
}
}
- 変更を適用するため、Claude Desktop を再起動します。
Cursor での使用
Cursor は MCP ツールにも対応しています。以下の手順に従って、Milvus MCP サーバーを Cursor に統合できます。
統合手順
-
Cursor Settings>Features>MCPに移動します -
+ Add New MCP Serverボタンをクリックします -
フォームに入力します:
- Type:
stdioを選択します(コマンドを実行するため) - Name:
milvus - Command:
uvx mcp-server-milvus@latest --milvus-uri http://127.0.0.1:19530
⚠️ 注:DNS 解決で問題が発生する可能性を避けるため、
localhostの代わりに127.0.0.1を使用してください。 - Type:
オプション 2:プロジェクト固有の設定を使用する(推奨)
プロジェクトのルートに .cursor/mcp.json ファイルを作成します:
-
プロジェクトのルートに
.cursorディレクトリを作成します:mkdir -p /path/to/your/project/.cursor -
以下の内容で
mcp.jsonファイルを作成します:{ "mcpServers": { "milvus": { "command": "uvx", "args": [ "mcp-server-milvus@latest", "--milvus-uri", "http://127.0.0.1:19530" ] } } }
SSE モードの場合:
-
以下のコマンドを実行してサービスを起動します:
uv run mcp-server-milvus --sse --milvus-uri http://your_sse_host注:
http://your_sse_hostを実際の SSE ホストアドレスに置き換えてください。 -
サービスが起動して稼働したら、以下の内容で
mcp.jsonファイルを上書きします:{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
統合の完了
上記の手順が完了したら、設定を反映するために Cursor を再起動するか、ウィンドウを再読み込みしてください。
統合の確認
Cursor が Milvus MCP サーバーと正常に統合されたことを確認するには:
Cursor Settings>MCPを開きます- 選択したモードに応じて、一覧に「milvus」または「milvus-sse」が表示されているか確認します
- 該当するツール(例:milvus_list_collections、milvus_vector_search など)が一覧に表示されていることを確認します
- サーバーが有効になっているのにエラーが表示される場合は、以下のトラブルシューティングのセクションを確認してください
利用可能なツール
サーバーでは、以下のツールを利用できます:
検索およびクエリ操作
-
milvus_text_search:全文検索を使用してドキュメントを検索します- パラメーター:
collection_name:検索するコレクションの名前query_text:検索するテキストlimit:返す結果の最大数(デフォルト:5)output_fields:結果に含めるフィールドdrop_ratio:無視する低頻度語の割合(0.0-1.0)
- パラメーター:
-
milvus_vector_search:コレクションに対してベクトル類似検索を実行します- パラメーター:
collection_name:検索するコレクションの名前vector:クエリベクトルvector_field:ベクトル検索に使用するフィールド名(デフォルト:"vector")limit:返す結果の最大数(デフォルト:5)output_fields:結果に含めるフィールドfilter_expr:フィルター式metric_type:距離メトリック(COSINE、L2、IP)(デフォルト:"COSINE")
- パラメーター:
-
milvus_hybrid_search:コレクションに対してハイブリッド検索を実行します- パラメーター:
collection_name:検索するコレクションの名前query_text:検索用のテキストクエリtext_field:テキスト検索に使用するフィールド名vector:テキストクエリのベクトルvector_field:ベクトル検索に使用するフィールド名limit:返す結果の最大数output_fields:結果に含めるフィールドfilter_expr:フィルター式
- パラメーター:
-
milvus_query:フィルター式を使用してコレクションをクエリします- パラメーター:
collection_name:クエリするコレクションの名前filter_expr:フィルター式(例:'age > 20')output_fields:結果に含めるフィールドlimit:返す結果の最大数(デフォルト:10)
- パラメーター:
コレクション管理
-
milvus_list_collections:データベース内のすべてのコレクションを一覧表示します -
milvus_create_collection:指定したスキーマで新しいコレクションを作成します- パラメーター:
collection_name:新しいコレクションの名前collection_schema:コレクションのスキーマ定義index_params:任意のインデックスパラメーター
- パラメーター:
-
milvus_load_collection:検索とクエリに使用するコレクションをメモリに読み込みます- パラメーター:
collection_name:読み込むコレクションの名前replica_number:レプリカ数(デフォルト:1)
- パラメーター:
-
milvus_release_collection:コレクションをメモリから解放します- パラメーター:
collection_name:解放するコレクションの名前
- パラメーター:
-
milvus_get_collection_info:特定のコレクションのスキーマ、プロパティ、コレクション ID、その他のメタデータなど、詳細情報を一覧表示します。- パラメーター:
collection_name:詳細情報を取得するコレクションの名前
- パラメーター:
データ操作
-
milvus_insert_data:コレクションにデータを挿入します- パラメーター:
collection_name:コレクションの名前data:フィールド名を値のリストに対応付ける辞書
- パラメーター:
-
milvus_delete_entities:フィルター式に基づいてコレクションからエンティティを削除します- パラメーター:
collection_name:コレクションの名前filter_expr:削除するエンティティを選択するフィルター式
- パラメーター:
環境変数
MILVUS_URI:Milvus サーバーの URI(--milvus-uriの代わりに設定できます)MILVUS_TOKEN:任意の認証トークンMILVUS_DB:データベース名(デフォルトは "default")
開発
開発中のテスト
MCP Inspector を使用して、サーバーをローカルでテストするには:
npx @modelcontextprotocol/inspector uvx mcp-server-milvus@latest
使用例
Claude Desktop の使用
例 1:コレクションの一覧表示
What are the collections I have in my Milvus DB?
Claude は MCP を使用して、Milvus DB 上のこの情報を確認します。
I'll check what collections are available in your Milvus database.
Here are the collections in your Milvus database:
1. rag_demo
2. test
3. chat_messages
4. text_collection
5. image_collection
6. customized_setup
7. streaming_rag_demo
例 2:ドキュメントの検索
Find documents in my text_collection that mention "machine learning"
Claude は Milvus の全文検索機能を使用して、関連するドキュメントを検索します:
I'll search for documents about machine learning in your text_collection.
> View result from milvus-text-search from milvus (local)
Here are the documents I found that mention machine learning:
[Results will appear here based on your actual data]
Cursor の使用
例:コレクションの作成
Cursor では、次のように依頼できます:
Create a new collection called 'articles' in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)
Cursor は MCP サーバーを使用して、この操作を実行します:
I'll create a new collection called 'articles' with the specified fields.
Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]
トラブルシューティング
よくある問題
接続エラー
「Failed to connect to Milvus server」のようなエラーが表示される場合:
- Milvus インスタンスが実行中であることを確認します:
docker ps(Docker を使用している場合) - 設定の URI が正しいことを確認します
- 接続を妨げるファイアウォールルールがないことを確認します
- URI の
localhostを127.0.0.1に置き換えてみます
認証の問題
認証エラーが表示される場合:
MILVUS_TOKENが正しいことを確認します- Milvus インスタンスで認証が必要かどうかを確認します
- 実行しようとしている操作に必要な権限があることを確認します
ツールが見つからない
MCP ツールが Claude Desktop または Cursor に表示されない場合:
- アプリケーションを再起動します
- サーバーログにエラーがないか確認します
- MCP サーバーが正しく実行されていることを確認します
- MCP の設定で更新ボタンを押します(Cursor の場合)
ヘルプの利用
問題が解決しない場合:
- 同様の問題がないか、GitHub Issues を確認します
- サポートについては、Zilliz Community Discord に参加します
- 問題の詳細を記載して、新しい issue を作成します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。