MCP + Milvus: AIとベクターデータベースをつなぐ
はじめに
Model Context Protocol (MCP)は、ClaudeやCursorなどのAIアプリケーションが外部のデータソースやツールとシームレスにやり取りできるようにするオープンプロトコルです。カスタムAIアプリケーションの構築、AIワークフローの統合、チャットインターフェースの強化のいずれにおいても、MCPは大規模言語モデル(LLM)を関連するコンテキストデータと接続するための標準化された方法を提供します。
このチュートリアルでは、Milvus用のMCPサーバーのセットアップ方法を説明し、AIアプリケーションがベクトル検索を実行し、コレクションを管理し、カスタムデータベースクエリを記述することなく、自然言語コマンドを使用してデータを取得できるようにします。
前提条件
MCPサーバーをセットアップする前に、以下を確認してください:
はじめに
このMCPサーバを使用する推奨方法は、インストールせずにuvで直接実行することです。以下の例では、Claude Desktop と Cursor の両方をこの方法で設定しています。
リポジトリをクローンする場合
git clone https://github.com/zilliztech/mcp-server-milvus.git
cd mcp-server-milvus
その後、サーバーを直接実行できます:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
対応アプリケーション
このMCPサーバーは、モデルコンテキストプロトコルをサポートする以下のような様々なAIアプリケーションで使用することができます:
- Claudeデスクトップ:AnthropicのClaude用デスクトップアプリケーション
- CursorComposer機能でMCPをサポートするAIコードエディタ
- その他のカスタムMCPクライアントMCPクライアント仕様を実装したあらゆるアプリケーション
Claude DesktopでMCPを使用する
- Claude Desktopをインストールします。
- Claude設定ファイルを開きます:
- macOSの場合
~/Library/Application Support/Claude/claude_desktop_config.json
- macOSの場合
- 以下の構成を追加します:
{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://localhost:19530"
]
}
}
}
- Claude Desktopを再起動して、変更を適用します。
Cursor での MCP の使用
CursorはComposerのAgent機能を通じてMCPツールもサポートしています。Milvus MCPサーバをCursorに追加するには2つの方法があります:
オプション 1: Cursor 設定 UI を使用する
Cursor Settings→Features→MCPを開きます。+ Add New MCP Serverをクリックします。- をクリックします:
- タイプ
stdio - 名前
milvus - コマンド
/PATH/TO/uv --directory /path/to/mcp-server-milvus/src/mcp_server_milvus run server.py --milvus-uri http://127.0.0.1:19530 - ⚠️ ヒント:DNS解決の潜在的な問題を避けるために、
localhostの代わりに127.0.0.1を使う。
- タイプ
オプション2:プロジェクト固有の設定を使う(推奨)
- プロジェクトのルートディレクトリに
.cursor/mcp.jsonファイルを作成します:
{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://127.0.0.1:19530"
]
}
}
}
- 設定を適用するには、Cursor を再起動します。
サーバーを追加した後、MCP設定の更新ボタンを押してツール・リストを表示する必要があるかもしれません。Composer Agentは、クエリに関連する場合、自動的にMilvusツールを使用します。
統合の確認
MCPサーバーが正しく設定されていることを確認します:
カーソルの場合
Cursor Settings→Features→MCPと進みます。- MCP サーバーのリストに
"Milvus"が表示されていることを確認する。 - Milvus ツール(例:
milvus_list_collections,milvus_vector_search)がリストに表示されていることを確認する。 - エラーが表示される場合は、以下の「トラブルシューティング」のセクションを参照してください。
Milvus用MCPサーバーツール
このMCPサーバは、Milvusのベクターデータを検索、照会、管理するための複数のツールを提供しています。詳細はmcp-server-milvusのドキュメントを参照してください。
ᔍ 検索・クエリツール
milvus-text-search→ 全文検索による文書の検索milvus-vector-search→ コレクションに対してベクトル類似性検索を実行する。milvus-hybrid-search→ ベクトル類似度と属性フィルタリングを組み合わせたハイブリッド検索を行う。milvus-multi-vector-search→ 複数のクエリベクトルを使ってベクトル類似検索を行う。milvus-query→ フィルタ式を使用してコレクションにクエリを実行するmilvus-count→ コレクション内のエンティティをカウントする。
コレクション管理
milvus-list-collections→ データベース内のすべてのコレクションをリストアップmilvus-collection-info→ コレクションに関する詳細情報の取得milvus-get-collection-stats→ コレクションに関する統計情報の取得milvus-create-collection→ 指定されたスキーマで新しいコレクションを作成する。milvus-load-collection→ 検索とクエリのためにコレクションをメモリにロードする。milvus-release-collection→ コレクションをメモリから解放するmilvus-get-query-segment-info→ クエリセグメントに関する情報を取得するmilvus-get-collection-loading-progress→ コレクションのロードの進行状況を取得する
📊 データ操作
milvus-insert-data→ コレクションへのデータ挿入milvus-bulk-insert⑬ データ操作 → データをコレクションに挿入します。milvus-upsert-data→ コレクションにデータをアップサートします (存在する場合は挿入または更新)。milvus-delete-entities→ フィルタ式に基づいて、コレクションからエンティティを削除する。milvus-create-dynamic-field→ 既存のコレクションに動的フィールドを追加する。
⚙️ インデックス管理
milvus-create-index→ ベクトルフィールドにインデックスを作成するmilvus-get-index-info→ コレクション内のインデックスに関する情報を取得する。
環境変数
MILVUS_URI→ Milvus サーバー URI (--milvus-uriの代わりに設定可能).MILVUS_TOKEN→ オプションの認証トークンMILVUS_DB→ データベース名(デフォルトは "default")
開発
サーバを直接実行する:
uv run server.py --milvus-uri http://localhost:19530
例
クロードデスクトップを使う
例 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.
> View result from milvus-list-collections from milvus (local)
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のComposerで、あなたは尋ねることができます:
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.
> View result from milvus-create-collection from milvus (local)
Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]
トラブルシューティング
一般的な問題
接続エラー
Milvusサーバへの接続に失敗しました:
- Milvusインスタンスが起動していることを確認してください:
docker ps(Dockerを使用している場合) - URIが正しいか確認してください。
- 接続をブロックしているファイアウォールルールがないことを確認してください。
- URIに
localhostの代わりに127.0.0.1を使用してみてください。
認証の問題
認証エラーが表示される場合
MILVUS_TOKENが正しいか確認してください。- Milvusインスタンスに認証が必要かどうか確認してください。
- 実行しようとしている操作に対して正しい権限があることを確認してください。
ツールが見つからない
MCPツールがクロードデスクトップまたはカーソルに表示されない場合:
- アプリケーションを再起動してください。
- サーバーのログにエラーがないか確認する
- MCP サーバが正しく実行されていることを確認する
- MCP 設定で更新ボタンを押します (Cursor の場合)。
ヘルプの入手
問題が解決しない場合
- GitHub Issuesに同様の問題がないか確認してください。
- Zilliz Community Discordに参加してサポートを受けてください。
- 問題の詳細情報を添えて、新しい課題を提出する
まとめ
このチュートリアルに従うことで、MCPサーバーが動作し、MilvusでAIによるベクトル検索が可能になります。Claude Desktopと Cursorのどちらを使用している場合でも、データベースコードを記述することなく、自然言語コマンドを使用してMilvusデータベースのクエリ、管理、検索を行うことができます!