Skip to main content
Glama

Milvus MCP Server

本プログラムは、大規模言語モデル向けに設計された、Model Context Protocol (MCP) プロトコルに準拠したMilvusベクトルデータベース接続サービスです。大規模言語モデル(Antigravityなど)の外部ベクトルデータベース対話ツールとして利用できます。

Milvus 2.6 ベクトルデータベースをサポートし、OpenAI互換のEmbeddingサービス(通義千問 text-embedding-v4など)を内蔵しているため、大規模言語モデルが自然言語を使用して直接セマンティック検索を行うことが可能です。


💡 機能のハイライト

  1. ベクトル検索:テキスト入力によるセマンティック検索(自動Embedding)および生のベクトル検索をサポート。

  2. 内蔵Embedding:OpenAI互換エンドポイントを統合。大規模言語モデルがテキストを渡すだけで自動的にベクトルへ変換されるため、外部のEmbeddingサービスは不要です。

  3. コレクションのライフサイクル管理:コレクションの作成、表示、削除が可能。作成時に自動でインデックスを作成し、ロードを行います。

  4. データの読み書き:ベクトルデータの挿入および条件付き削除をサポート。

  5. マルチ接続管理:JSON設定ファイルを通じて複数の名前付き接続を定義可能。1つのMCP Serverインスタンスで複数のMilvusインスタンスを管理できます。

  6. 安全設計drop_collection および delete_entities は独立したツールとしてMCPクライアント側で個別にオン/オフが可能。drop_collection には二重の安全策として confirmDrop=true パラメータが必須です。

  7. ハイブリッド検索:ベクトル類似度検索とスカラーフィルタリングを組み合わせたクエリをサポート。


Related MCP server: MCP Server MySQL

⚙️ 動作環境要件

  1. Node.js 環境:Node.js バージョン v18 以上 が必要です。

  2. Milvus インスタンス:アクセス可能な Milvus 2.6 サービスインスタンスが必要です。

  3. Embedding API:OpenAI互換のEmbeddingサービスエンドポイント(通義千問百煉プラットフォームなど)が必要です。

  4. 依存パッケージ:実行マシン上で npm install --omit=dev を実行して依存関係をインストールする必要があります。


🛠 インストールとビルド

1. ソースコードからのビルド

npm install
npm run build

ビルド成果物は ./dist ディレクトリに格納されます。

2. グローバルインストール

npm link

実行後、システム上のどこからでもグローバルコマンド milvus-mcp-server を使用してサービスを起動できます。


📝 設定ファイル

JSONファイルを使用してMilvus接続とEmbeddingサービスを設定します。

設定ファイルの例

{
  "connections": [
    {
      "name": "my-milvus",
      "address": "localhost:19530",
      "username": "root",
      "password": "Milvus",
      "database": "default",
      "description": "本地开发 Milvus 实例,存储文档和图片的向量索引"
    }
  ],
  "embedding": {
    "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "apiKey": "sk-your-api-key",
    "model": "text-embedding-v4",
    "dimensions": 1024
  }
}

接続フィールドの説明

フィールド

必須

説明

name

string

接続の識別用ユニーク名

address

string

Milvus サービスアドレス、形式 host:port

username

string

ユーザー名

password

string

パスワード

database

string

データベース名、デフォルトは "default"

description

string

接続の業務説明

Embeddingフィールドの説明

フィールド

必須

説明

baseUrl

string

OpenAI互換 API エンドポイント

apiKey

string

API Key

model

string

モデル名(例:"text-embedding-v4"

dimensions

number

出力ベクトルの次元数。text-embedding-v4 対応:2048, 1536, 1024, 768, 512, 256, 128, 64


🚀 起動と使用方法

milvus-mcp-server --config <path-to-config.json>

パラメータリスト:

  • -c, --config <path>:設定ファイルのパス(必須)。


🧠 MCP クライアント設定例

一般的な MCP Client(Antigravityなど)の設定例:

{
  "mcpServers": {
    "MilvusMCP": {
      "command": "node",
      "args": [
        "绝对路径/milvus_mcp_server/dist/index.js",
        "--config", "绝对路径/milvus-config.json"
      ]
    }
  }
}

🧰 モデルが呼び出し可能なツール (Tools)

1. list_milvus_connections

  • 説明:設定されたすべてのMilvus接続情報をリスト表示します(パスワードは除外)。

  • パラメータ:なし。

2. list_collections

  • 説明:指定された接続内のすべてのコレクションをリスト表示します。

  • パラメータ

    • connectionName (String): 対象の接続名。

3. describe_collection

  • 説明:フィールド定義、インデックス、行数統計を含むコレクションの詳細スキーマ情報を取得します。

  • パラメータ

    • connectionName (String): 対象の接続名。

    • collectionName (String): コレクション名。

4. create_collection

  • 説明:新しいコレクションを作成します。ベクトルフィールドに対して自動的にAUTOINDEXを作成し、コレクションをロードして即座に検索可能にします。

  • パラメータ

    • connectionName (String): 対象の接続名。

    • collectionName (String): 新しいコレクション名。

    • description (String, オプション): コレクションの説明。

    • fields (Array): フィールド定義の配列。各項目には name, dataType, isPrimaryKey?, autoId?, dimension?, maxLength?, description? を含みます。

5. drop_collection

  • 説明:コレクションとそのすべてのデータを完全に削除します。元に戻すことはできません。

  • パラメータ

    • connectionName (String): 対象の接続名。

    • collectionName (String): 削除するコレクション名。

    • confirmDrop (Boolean): true に設定しないと削除は実行されません。安全のための二重確認メカニズムです。

  • スイッチ制御:このツールはMCPクライアント側で個別に有効/無効化できます。

6. insert_vectors

  • 説明:コレクションにデータを挿入します。各データはJSONオブジェクトであり、各フィールドの値(ベクトルフィールドを含む)を含みます。

  • パラメータ

    • connectionName (String): 対象の接続名。

    • collectionName (String): 対象のコレクション名。

    • data (Array): データ配列。

7. delete_entities

  • 説明:フィルタ式に基づいてエンティティを削除します。

  • パラメータ

    • connectionName (String): 対象の接続名。

    • collectionName (String): 対象のコレクション名。

    • filter (String): Milvus フィルタ式(例:'id in [1, 2, 3]')。

  • スイッチ制御:このツールはMCPクライアント側で個別に有効/無効化できます。

8. vector_search

  • 説明:ベクトル類似度検索。テキスト(自動的にEmbeddingサービスを呼び出してベクトルに変換)または生のベクトルを渡すことができます。

  • パラメータ

    • connectionName (String): 対象の接続名。

    • collectionName (String): 対象のコレクション名。

    • text (String, オプション): 検索テキスト。vector とのいずれかを選択。

    • vector (Number[], オプション): 生の検索ベクトル。text とのいずれかを選択。

    • topK (Number, オプション): 返す件数、デフォルトは10。

    • filter (String, オプション): スカラーフィルタ式。

    • outputFields (String[], オプション): 返すフィールドのリスト。

9. query_entities

  • 説明:ベクトル検索を伴わない、スカラー条件によるエンティティクエリ。

  • パラメータ

    • connectionName (String): 対象の接続名。

    • collectionName (String): 対象のコレクション名。

    • filter (String): Milvus フィルタ式。

    • outputFields (String[], オプション): 返すフィールドのリスト。

    • limit (Number, オプション): 最大返却件数、デフォルトは100。

10. hybrid_search

  • 説明:ベクトル検索とスカラーフィルタリングを組み合わせたクエリ。vector_search との違いは filter が必須パラメータである点です。

  • パラメータ

    • connectionName (String): 対象の接続名。

    • collectionName (String): 対象のコレクション名。

    • text (String, オプション): 検索テキスト。vector とのいずれかを選択。

    • vector (Number[], オプション): 生の検索ベクトル。text とのいずれかを選択。

    • filter (String): 必須、スカラーフィルタ式。

    • topK (Number, オプション): 返す件数、デフォルトは10。

    • outputFields (String[], オプション): 返すフィールドのリスト。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables semantic search and document management using a local Qdrant vector database with OpenAI embeddings. Supports natural language queries, metadata filtering, and collection management for AI-powered document retrieval.
    70 npm
    37
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables LLMs to interact with MySQL databases through standardized protocol, supporting database management, table operations, data queries, and modifications with configurable permission controls.
    15
    48 npm
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to interact with Milvus vector databases and Zilliz Cloud through natural language, allowing users to create clusters, manage collections, insert vector data, and perform semantic searches directly from their AI assistants.
    16
    33
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to interact with Milvus vector database for search, query, and collection management operations.
    8
    -