MCP Server for Milvus

Official

hybrid server

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

Integrations

  • Provides access to Milvus vector database functionality, including vector similarity search, text search, collection management, and data operations for AI applications.

Milvus 用 MCP サーバー

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

このリポジトリには、 Milvusベクター データベース機能へのアクセスを提供する MCP サーバーが含まれています。

前提条件

この MCP サーバーを使用する前に、次のものを用意してください。

  • Python 3.10以上
  • 実行中のMilvusインスタンス (ローカルまたはリモート)
  • uvがインストールされている(サーバーの実行に推奨)

使用法

この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

あるいは、 src/mcp_server_milvus/ディレクトリの .env ファイルを変更して環境変数を設定し、次のコマンドでサーバーを実行することもできます。

uv run src/mcp_server_milvus/server.py

重要: .env ファイルはコマンドライン引数よりも優先されます。

サポートされているアプリケーション

この MCP サーバーは、モデル コンテキスト プロトコルをサポートするさまざまな LLM アプリケーションで使用できます。

  • Claude Desktop : Claude 用の Anthropic のデスクトップ アプリケーション
  • カーソル: MCP をサポートする AI 搭載コードエディター
  • カスタム MCP クライアント: MCP クライアント仕様を実装したアプリケーション

Claude Desktopでの使用

  1. https://claude.ai/downloadから Claude Desktop をインストールします。
  2. Claude デスクトップ構成を開きます。
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. 次の構成を追加します。
{ "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" ] } } }
  1. Claudeデスクトップを再起動します

カーソルとの使用

CursorはMCPツールもサポートしています。Milvus MCPサーバーをCursorに追加するには、以下の2つの方法があります。

オプション1: カーソル設定UIを使用する

  1. Cursor Settings > Features > MCPに移動します
  2. + Add New MCP Serverボタンをクリックします。
  3. フォームに記入してください:
    • タイプ: 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ファイルを作成します。

  1. プロジェクト ルートに.cursorディレクトリを作成します。
    mkdir -p /path/to/your/project/.cursor
  2. 次の内容を含む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" ] } } }
  3. カーソルを再起動するか、ウィンドウを再読み込みします

サーバーを追加した後、ツールリストを更新するためにMCP設定の更新ボタンを押す必要がある場合があります。エージェントは、クエリに関連する場合にMilvusツールを自動的に使用します。

統合の検証

Cursor が Milvus MCP サーバーと正常に統合されたことを確認するには:

  1. カーソル設定 > 機能 > MCP を開く
  2. MCPサーバーのリストに「Milvus」が表示されていることを確認します
  3. ツールがリストされていることを確認します (例: milvus_list_collections、milvus_vector_search など)
  4. サーバーが有効になっているにもかかわらずエラーが表示される場合は、以下のトラブルシューティングセクションを確認してください。

利用可能なツール

サーバーは次のツールを提供します。

検索とクエリ操作

  • 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 : 結果に含めるフィールド
      • metric_type : 距離メトリック(COSINE、L2、IP)(デフォルト: "COSINE")
  • 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_insert_data : コレクションにデータを挿入します
    • パラメータ:
      • collection_name : コレクションの名前
      • data : フィールド名を値のリストにマッピングする辞書
  • milvus_delete_entities : フィルター式に基づいてコレクションからエンティティを削除します
    • パラメータ:
      • collection_name : コレクションの名前
      • filter_expr : 削除するエンティティを選択するためのフィルター式

環境変数

  • MILVUS_URI : Milvus サーバー URI (--milvus-uri の代わりに設定可能)
  • MILVUS_TOKEN : オプションの認証トークン
  • MILVUS_DB : データベース名(デフォルトは「default」)

発達

サーバーを直接実行するには:

uv run server.py --milvus-uri http://localhost:19530

Claudeデスクトップの使用

例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"

クロードは、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]

カーソルの使用

例: コレクションの作成

カーソルでは、次のことを尋ねることができます。

Create a new collection called 'articles' in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)

カーソルは 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]

トラブルシューティング

よくある問題

接続エラー

「Milvus サーバーに接続できませんでした」などのエラーが表示された場合:

  1. Milvusインスタンスが実行中であることを確認します: docker ps (Dockerを使用している場合)
  2. 設定内のURIが正しいことを確認してください
  3. 接続をブロックするファイアウォールルールがないことを確認する
  4. URIでlocalhost代わりに127.0.0.1使用してみてください

認証の問題

認証エラーが表示された場合:

  1. MILVUS_TOKENが正しいことを確認してください
  2. Milvusインスタンスに認証が必要かどうかを確認する
  3. 実行しようとしている操作に対する適切な権限があることを確認してください

ツールが見つかりません

MCP ツールが Claude Desktop または Cursor に表示されない場合は、次の手順に従ってください。

  1. アプリケーションを再起動します
  2. サーバーログにエラーがないか確認してください
  3. MCPサーバーが正しく動作していることを確認する
  4. MCP設定の更新ボタンを押します(カーソル用)

ヘルプの取得

問題が引き続き発生する場合:

  1. 同様の問題についてはGitHub Issuesを確認してください
  2. サポートを受けるには、 ZillizコミュニティDiscordに参加してください
  3. 問題に関する詳細情報を記載した新しい問題を提出してください
-
security - not tested
F
license - not found
-
quality - not tested

モデル コンテキスト プロトコルを実装する統合サーバー。これにより、LLM アプリケーションが Milvus ベクター データベース機能と対話できるようになり、自然言語によるベクター検索、コレクション管理、およびデータ操作が可能になります。

  1. Prerequisites
    1. Usage
      1. Important: the .env file will have higher priority than the command line arguments.
    2. Supported Applications
      1. Usage with Claude Desktop
        1. Usage with Cursor
          1. Option 1: Using Cursor Settings UI
          2. Option 2: Using Project-specific Configuration (Recommended)
          3. Verifying the Integration
        2. Available Tools
          1. Search and Query Operations
          2. Collection Management
          3. Data Operations
        3. Environment Variables
          1. Development
            1. Examples
              1. Using Claude Desktop
              2. Using Cursor
            2. Troubleshooting
              1. Common Issues
              2. Getting Help
            ID: 53zsksly37