Skip to main content
Glama

Milvus MCP Server

Dieses Programm ist ein Milvus-Vektordatenbank-Zugangsdienst, der für große Sprachmodelle entwickelt wurde und dem Model Context Protocol (MCP) entspricht. Es kann als externes Vektordatenbank-Interaktionstool für große Sprachmodelle (wie Antigravity) dienen.

Unterstützt Milvus 2.6 Vektordatenbanken und verfügt über einen integrierten OpenAI-kompatiblen Embedding-Dienst (z. B. Tongyi Qianwen text-embedding-v4), sodass große Sprachmodelle direkt mit natürlicher Sprache semantische Suchen durchführen können.


💡 Funktions-Highlights

  1. Vektorsuche: Unterstützt semantische Suche für Texteingaben (automatische Einbettung) sowie die Suche mit Rohvektoren.

  2. Integrierte Einbettung: Integrierter OpenAI-kompatibler Endpunkt; vom Sprachmodell übergebener Text wird automatisch in Vektoren umgewandelt, ohne dass ein externer Embedding-Dienst erforderlich ist.

  3. Collection-Lebenszyklusverwaltung: Erstellen, Anzeigen und Löschen von Collections; beim Erstellen werden automatisch Indizes erstellt und die Collection geladen.

  4. Daten lesen/schreiben: Unterstützt das Einfügen von Vektordaten und das bedingte Löschen.

  5. Verwaltung mehrerer Verbindungen: Über eine JSON-Konfigurationsdatei können mehrere benannte Verbindungen definiert werden, sodass eine MCP-Server-Instanz mehrere Milvus-Instanzen bedienen kann.

  6. Sicherheitsdesign: drop_collection und delete_entities sind als eigenständige Tools in MCP-Clients separat aktivierbar/deaktivierbar; drop_collection erfordert zusätzlich den Parameter confirmDrop=true als doppelte Absicherung.

  7. Hybride Suche: Unterstützt kombinierte Abfragen aus Vektorähnlichkeitssuche + skalarer Filterung.


Related MCP server: MCP Server MySQL

⚙️ Systemanforderungen

  1. Node.js-Umgebung: Erfordert Node.js in der Version v18 oder höher.

  2. Milvus-Instanz: Erfordert eine zugängliche Milvus 2.6-Dienstinstanz.

  3. Embedding-API: Erfordert einen OpenAI-kompatiblen Embedding-Dienstendpunkt (z. B. die Bailian-Plattform von Tongyi Qianwen).

  4. Abhängigkeiten: Auf dem Ausführungsrechner muss npm install --omit=dev ausgeführt werden, um die Abhängigkeiten zu installieren.


🛠 Installation und Build

1. Build aus dem Quellcode

npm install
npm run build

Die Build-Artefakte werden im Verzeichnis ./dist gespeichert.

2. Globale lokale Installation

npm link

Nach Abschluss der Ausführung kann der Dienst systemweit über den globalen Befehl milvus-mcp-server schnell aufgerufen werden.


📝 Konfigurationsdatei

Verwenden Sie eine JSON-Datei, um Milvus-Verbindungen und den Embedding-Dienst zu konfigurieren.

Beispiel für eine Konfigurationsdatei

{
  "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
  }
}

Erläuterung der Verbindungsfelder

Feld

Typ

Erforderlich

Beschreibung

name

string

Eindeutiger Identifikationsname der Verbindung

address

string

Milvus-Dienstadresse, Format host:port

username

string

Benutzername

password

string

Passwort

database

string

Datenbankname, Standard ist "default"

description

string

Geschäftliche Beschreibung der Verbindung

Erläuterung der Embedding-Felder

Feld

Typ

Erforderlich

Beschreibung

baseUrl

string

OpenAI-kompatibler API-Endpunkt

apiKey

string

API-Key

model

string

Modellname, z. B. "text-embedding-v4"

dimensions

number

Ausgabedimension des Vektors. text-embedding-v4 unterstützt: 2048, 1536, 1024, 768, 512, 256, 128, 64


🚀 Start und Verwendung

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

Parameterliste:

  • -c, --config <path>: Pfad zur Konfigurationsdatei (erforderlich).


🧠 Beispiel für die MCP-Client-Konfiguration

Am Beispiel eines regulären MCP-Clients (wie Antigravity):

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

🧰 Vom Modell aufrufbare Tools (Tools)

1. list_milvus_connections

  • Beschreibung: Listet alle konfigurierten Milvus-Verbindungsinformationen auf (maskiert, ohne Passwörter).

  • Parameter: Keine.

2. list_collections

  • Beschreibung: Listet alle Collections unter einer angegebenen Verbindung auf.

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

3. describe_collection

  • Beschreibung: Ruft detaillierte Schema-Informationen der Collection ab, einschließlich Felddefinitionen, Indizes und Zeilenanzahl.

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

    • collectionName (String): Name der Collection.

4. create_collection

  • Beschreibung: Erstellt eine neue Collection. Erstellt automatisch einen AUTOINDEX für das Vektorfeld und lädt die Collection, damit sie sofort durchsuchbar ist.

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

    • collectionName (String): Name der neuen Collection.

    • description (String, optional): Beschreibung der Collection.

    • fields (Array): Array mit Felddefinitionen; jedes Element enthält name, dataType, isPrimaryKey?, autoId?, dimension?, maxLength?, description?.

5. drop_collection

  • Beschreibung: Löscht eine Collection und alle ihre Daten dauerhaft. Dies ist ein irreversibler Vorgang.

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

    • collectionName (String): Name der zu löschenden Collection.

    • confirmDrop (Boolean): Muss auf true gesetzt werden, um das Löschen auszuführen. Sicherheitsmechanismus zur doppelten Bestätigung.

  • Schaltersteuerung: Dieses Tool kann im MCP-Client separat aktiviert oder deaktiviert werden.

6. insert_vectors

  • Beschreibung: Fügt Daten in eine Collection ein. Jeder Datensatz ist ein JSON-Objekt, das die Feldwerte enthält (einschließlich des Vektorfelds).

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

    • collectionName (String): Name der Ziel-Collection.

    • data (Array): Daten-Array.

7. delete_entities

  • Beschreibung: Löscht Entitäten basierend auf einem Filterausdruck.

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

    • collectionName (String): Name der Ziel-Collection.

    • filter (String): Milvus-Filterausdruck, z. B. 'id in [1, 2, 3]'.

  • Schaltersteuerung: Dieses Tool kann im MCP-Client separat aktiviert oder deaktiviert werden.

8. vector_search

  • Beschreibung: Vektorähnlichkeitssuche. Unterstützt die Übergabe von Text (automatischer Aufruf des Embedding-Dienstes zur Vektorumwandlung) oder Rohvektoren.

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

    • collectionName (String): Name der Ziel-Collection.

    • text (String, optional): Suchtext, alternativ zu vector.

    • vector (Number[], optional): Roh-Suchvektor, alternativ zu text.

    • topK (Number, optional): Anzahl der zurückgegebenen Ergebnisse, Standard ist 10.

    • filter (String, optional): Skalarer Filterausdruck.

    • outputFields (String[], optional): Liste der zurückzugebenden Felder.

9. query_entities

  • Beschreibung: Fragt Entitäten basierend auf skalaren Bedingungen ab, ohne Vektorsuche.

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

    • collectionName (String): Name der Ziel-Collection.

    • filter (String): Milvus-Filterausdruck.

    • outputFields (String[], optional): Liste der zurückzugebenden Felder.

    • limit (Number, optional): Maximale Anzahl der zurückgegebenen Ergebnisse, Standard ist 100.

10. hybrid_search

  • Beschreibung: Kombinierte Abfrage aus Vektorsuche + skalarer Filterung. Der Unterschied zu vector_search besteht darin, dass filter ein Pflichtparameter ist.

  • Parameter:

    • connectionName (String): Ziel-Verbindungsname.

    • collectionName (String): Name der Ziel-Collection.

    • text (String, optional): Suchtext, alternativ zu vector.

    • vector (Number[], optional): Roh-Suchvektor, alternativ zu text.

    • filter (String): Erforderlich, skalarer Filterausdruck.

    • topK (Number, optional): Anzahl der zurückgegebenen Ergebnisse, Standard ist 10.

    • outputFields (String[], optional): Liste der zurückzugebenden Felder.

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
    -