Skip to main content
Glama

MCP Server for Milvus

by zilliztech

MCP-Server für Milvus

Das Model Context Protocol (MCP) ist ein offenes Protokoll, das die nahtlose Integration zwischen LLM-Anwendungen und externen Datenquellen und Tools ermöglicht. Ob Sie eine KI-gestützte IDE erstellen, eine Chat-Oberfläche optimieren oder benutzerdefinierte KI-Workflows erstellen – MCP bietet eine standardisierte Möglichkeit, LLMs mit dem benötigten Kontext zu verbinden.

Dieses Repository enthält einen MCP-Server, der Zugriff auf die Vektordatenbankfunktionalität von Milvus bietet.

MCP mit Milvus

Voraussetzungen

Stellen Sie vor der Verwendung dieses MCP-Servers sicher, dass Sie über Folgendes verfügen:

  • Python 3.10 oder höher
  • Eine laufende Milvus- Instanz (lokal oder remote)
  • UV installiert (empfohlen zum Ausführen des Servers)

Verwendung

Die empfohlene Vorgehensweise zur Verwendung dieses MCP-Servers besteht darin, ihn direkt mit uv ohne Installation auszuführen. So sind sowohl Claude Desktop als auch Cursor in den folgenden Beispielen für die Verwendung konfiguriert.

Wenn Sie das Repository klonen möchten:

git clone https://github.com/zilliztech/mcp-server-milvus.git cd mcp-server-milvus

Anschließend können Sie den Server direkt ausführen:

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

Alternativ können Sie die .env-Datei im Verzeichnis src/mcp_server_milvus/ ändern, um die Umgebungsvariablen festzulegen und den Server mit dem folgenden Befehl auszuführen:

uv run src/mcp_server_milvus/server.py

Wichtig: Die .env-Datei hat eine höhere Priorität als die Befehlszeilenargumente.

Laufmodi

Der Server unterstützt zwei Ausführungsmodi: stdio (Standard) und SSE (Server-Sent Events).

Stdio-Modus (Standard)

  • Beschreibung : Kommuniziert mit dem Client über die Standard-Ein-/Ausgabe. Dies ist der Standardmodus, wenn kein Modus angegeben ist.
  • Verwendung:
    uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530

SSE-Modus

  • Beschreibung : Verwendet HTTP Server-Sent Events zur Kommunikation. Dieser Modus ermöglicht die Verbindung mehrerer Clients über HTTP und eignet sich für webbasierte Anwendungen.
  • Verwendung:
    uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://localhost:19530 --port 8000
    • --sse : Aktiviert den SSE-Modus.
    • --port : Gibt den Port für den SSE-Server an (Standard: 8000).
  • Debuggen im SSE-Modus:Wenn Sie im SSE-Modus debuggen möchten, geben Sie nach dem Starten des SSE-Dienstes den folgenden Befehl ein:
    mcp dev src/mcp_server_milvus/server.py
    Die Ausgabe sieht ungefähr so aus:
    % mcp dev src/mcp_server_milvus/merged_server.py Starting MCP inspector... ⚙️ Proxy server listening on port 6277 🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀
    Anschließend können Sie zum Testen auf den MCP Inspector unter http://127.0.0.1:6274 zugreifen.

Unterstützte Anwendungen

Dieser MCP-Server kann mit verschiedenen LLM-Anwendungen verwendet werden, die das Model Context Protocol unterstützen:

  • Claude Desktop : Anthropics Desktop-Anwendung für Claude
  • Cursor : KI-gestützter Code-Editor mit MCP-Unterstützung
  • Benutzerdefinierte MCP-Clients : Jede Anwendung, die die MCP-Client-Spezifikation implementiert

Verwendung mit Claude Desktop

Konfiguration für verschiedene Modi

SSE-Modus-Konfiguration

Befolgen Sie diese Schritte, um Claude Desktop für den SSE-Modus zu konfigurieren:

  1. Installieren Sie Claude Desktop von https://claude.ai/download .
  2. Öffnen Sie Ihre Claude Desktop-Konfigurationsdatei:
    • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  3. Fügen Sie die folgende Konfiguration für den SSE-Modus hinzu:
{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
  1. Starten Sie Claude Desktop neu, um die Änderungen zu übernehmen.
Stdio-Modus-Konfiguration

Führen Sie für den Standardmodus die folgenden Schritte aus:

  1. Installieren Sie Claude Desktop von https://claude.ai/download .
  2. Öffnen Sie Ihre Claude Desktop-Konfigurationsdatei:
    • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  3. Fügen Sie die folgende Konfiguration für den Standardmodus hinzu:
{ "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. Starten Sie Claude Desktop neu, um die Änderungen zu übernehmen.

Verwendung mit Cursor

Cursor unterstützt auch MCP- Tools. Sie können Ihren Milvus MCP-Server mit Cursor integrieren, indem Sie die folgenden Schritte ausführen:

Integrationsschritte

  1. Öffnen Sie Cursor Settings > MCP
  2. Klicken Sie auf Add new global MCP server
  3. Nach dem Klicken werden Sie automatisch zur Datei mcp.json weitergeleitet, die erstellt wird, falls sie nicht vorhanden ist

Konfigurieren der Datei mcp.json

Für den Stdio-Modus:

Überschreiben Sie die Datei mcp.json mit folgendem Inhalt:

{ "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" ] } } }
Für den SSE-Modus:
  1. Starten Sie den Dienst, indem Sie den folgenden Befehl ausführen:
    uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://your_sse_host --port port

    Hinweis : Ersetzen Sie http://your_sse_host durch Ihre tatsächliche SSE-Hostadresse und port durch die spezifische Portnummer, die Sie verwenden.

  2. Sobald der Dienst läuft, überschreiben Sie die Datei mcp.json mit dem folgenden Inhalt:
    { "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }

Abschließen der Integration

Starten Sie Cursor nach Abschluss der obigen Schritte neu oder laden Sie das Fenster neu, um sicherzustellen, dass die Konfiguration wirksam wird.

Überprüfen der Integration

So überprüfen Sie, ob Cursor erfolgreich in Ihren Milvus MCP-Server integriert wurde:

  1. Öffnen Sie Cursor Settings > MCP
  2. Überprüfen Sie, ob „milvus“ oder „milvus-sse“ in der Liste erscheint (je nach gewähltem Modus).
  3. Bestätigen Sie, dass die relevanten Tools aufgelistet sind (z. B. milvus_list_collections, milvus_vector_search usw.).
  4. Wenn der Server aktiviert ist, aber einen Fehler anzeigt, lesen Sie den Abschnitt zur Fehlerbehebung weiter unten.

Verfügbare Tools

Der Server stellt die folgenden Tools bereit:

Such- und Abfragevorgänge

  • milvus_text_search : Suche nach Dokumenten mit der Volltextsuche
    • Parameter:
      • collection_name : Name der zu durchsuchenden Sammlung
      • query_text : Zu suchender Text
      • limit : Die maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 5)
      • output_fields : In die Ergebnisse einzuschließende Felder
      • drop_ratio : Anteil der zu ignorierenden Begriffe mit niedriger Frequenz (0,0–1,0)
  • milvus_vector_search : Führen Sie eine Vektorähnlichkeitssuche für eine Sammlung durch
    • Parameter:
      • collection_name : Name der zu durchsuchenden Sammlung
      • vector : Abfragevektor
      • vector_field : Feldname für die Vektorsuche (Standard: „Vektor“)
      • limit : Die maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 5)
      • output_fields : In die Ergebnisse einzuschließende Felder
      • filter_expr : Filterausdruck
      • metric_type : Distanzmetrik (COSINE, L2, IP) (Standard: „COSINE“)
  • milvus_hybrid_search : Führen Sie eine Hybridsuche in einer Sammlung durch
    • Parameter:
      • collection_name : Name der zu durchsuchenden Sammlung
      • query_text : Textabfrage für die Suche
      • text_field : Feldname für die Textsuche
      • vector : Vektor der Textabfrage
      • vector_field : Feldname für die Vektorsuche
      • limit : Die maximale Anzahl der zurückzugebenden Ergebnisse
      • output_fields : In die Ergebnisse einzuschließende Felder
      • filter_expr : Filterausdruck
  • milvus_query : Abfragesammlung mit Filterausdrücken
    • Parameter:
      • collection_name : Name der abzufragenden Sammlung
      • filter_expr : Filterausdruck (zB „Alter > 20“)
      • output_fields : In die Ergebnisse einzuschließende Felder
      • limit : Die maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 10)

Sammlungsverwaltung

  • milvus_list_collections : Listet alle Sammlungen in der Datenbank auf
  • milvus_create_collection : Erstellen Sie eine neue Sammlung mit dem angegebenen Schema
    • Parameter:
      • collection_name : Name für die neue Sammlung
      • collection_schema : Definition des Sammlungsschemas
      • index_params : Optionale Indexparameter
  • milvus_load_collection : Lädt eine Sammlung für Suche und Abfrage in den Speicher
    • Parameter:
      • collection_name : Name der zu ladenden Sammlung
      • replica_number : Anzahl der Replikate (Standard: 1)
  • milvus_release_collection : Gibt eine Sammlung aus dem Speicher frei
    • Parameter:
      • collection_name : Name der freizugebenden Sammlung
  • milvus_get_collection_info : Listet detaillierte Informationen wie Schema, Eigenschaften, Sammlungs-ID und andere Metadaten einer bestimmten Sammlung auf.
    • Parameter:
      • collection_name : Name der Sammlung, über die detaillierte Informationen abgerufen werden sollen

Datenoperationen

  • milvus_insert_data : Daten in eine Sammlung einfügen
    • Parameter:
      • collection_name : Name der Sammlung
      • data : Wörterbuch, das Feldnamen Wertelisten zuordnet
  • milvus_delete_entities : Löscht Entitäten aus einer Sammlung basierend auf einem Filterausdruck
    • Parameter:
      • collection_name : Name der Sammlung
      • filter_expr : Filterausdruck zum Auswählen zu löschender Entitäten

Umgebungsvariablen

  • MILVUS_URI : Milvus-Server-URI (kann anstelle von --milvus-uri festgelegt werden)
  • MILVUS_TOKEN : Optionales Authentifizierungstoken
  • MILVUS_DB : Datenbankname (standardmäßig „default“)

Entwicklung

So führen Sie den Server direkt aus:

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

Beispiele

Verwenden von Claude Desktop

Beispiel 1: Auflisten von Sammlungen
What are the collections I have in my Milvus DB?

Claude wird dann MCP verwenden, um diese Informationen in Ihrer Milvus-Datenbank zu überprüfen.

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
Beispiel 2: Suche nach Dokumenten
Find documents in my text_collection that mention "machine learning"

Claude wird die Volltextsuchfunktionen von Milvus nutzen, um relevante Dokumente zu finden:

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]

Verwenden des Cursors

Beispiel: Erstellen einer Sammlung

Im Cursor können Sie fragen:

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

Cursor verwendet den MCP-Server, um diesen Vorgang auszuführen:

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]

Fehlerbehebung

Häufige Probleme

Verbindungsfehler

Wenn Sie Fehler wie „Verbindung zum Milvus-Server fehlgeschlagen“ sehen:

  1. Überprüfen Sie, ob Ihre Milvus-Instanz ausgeführt wird: docker ps (bei Verwendung von Docker)
  2. Überprüfen Sie, ob die URI in Ihrer Konfiguration korrekt ist
  3. Stellen Sie sicher, dass keine Firewall-Regeln die Verbindung blockieren
  4. Versuchen Sie, 127.0.0.1 anstelle von localhost in der URI zu verwenden
Authentifizierungsprobleme

Wenn Authentifizierungsfehler auftreten:

  1. Überprüfen Sie, ob Ihr MILVUS_TOKEN korrekt ist
  2. Überprüfen Sie, ob Ihre Milvus-Instanz eine Authentifizierung erfordert
  3. Stellen Sie sicher, dass Sie über die richtigen Berechtigungen für die Vorgänge verfügen, die Sie ausführen möchten
Werkzeug nicht gefunden

Wenn die MCP-Tools nicht in Claude Desktop oder Cursor angezeigt werden:

  1. Starten Sie die Anwendung neu
  2. Überprüfen Sie die Serverprotokolle auf Fehler
  3. Überprüfen Sie, ob der MCP-Server ordnungsgemäß ausgeführt wird
  4. Drücken Sie die Schaltfläche „Aktualisieren“ in den MCP-Einstellungen (für Cursor).

Hilfe bekommen

Wenn weiterhin Probleme auftreten:

  1. Überprüfen Sie die GitHub-Probleme auf ähnliche Probleme
  2. Treten Sie dem Zilliz Community Discord bei, um Unterstützung zu erhalten
  3. Melden Sie ein neues Problem mit detaillierten Informationen zu Ihrem Problem
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

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

Ein Integrationsserver, der das Model Context Protocol implementiert, das LLM-Anwendungen die Interaktion mit der Vektordatenbankfunktionalität von Milvus ermöglicht und so Vektorsuche, Sammlungsverwaltung und Datenoperationen über natürliche Sprache ermöglicht.

  1. Voraussetzungen
    1. Verwendung
      1. Wichtig: Die .env-Datei hat eine höhere Priorität als die Befehlszeilenargumente.
      2. Laufmodi
      3. Stdio-Modus (Standard)
      4. SSE-Modus
    2. Unterstützte Anwendungen
      1. Verwendung mit Claude Desktop
        1. Konfiguration für verschiedene Modi
      2. Verwendung mit Cursor
        1. Integrationsschritte
        2. Konfigurieren der Datei mcp.json
        3. Abschließen der Integration
      3. Überprüfen der Integration
        1. Verfügbare Tools
          1. Such- und Abfragevorgänge
          2. Sammlungsverwaltung
          3. Datenoperationen
        2. Umgebungsvariablen
          1. Entwicklung
            1. Beispiele
              1. Verwenden von Claude Desktop
              2. Verwenden des Cursors
            2. Fehlerbehebung
              1. Häufige Probleme
              2. Hilfe bekommen

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A Model Context Protocol server that enables LLMs to interact with Salesforce data through SOQL queries, SOSL searches, and various API operations including record management.
              Last updated -
              10
              77
              Python
              MIT License
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol server that enables LLMs to interact directly with MongoDB databases, allowing users to query collections, inspect schemas, and manage data through natural language.
              Last updated -
              340
              TypeScript
              MIT License
              • Apple
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol server that enables LLMs to interact directly with MongoDB databases, allowing users to query collections, inspect schemas, and manage data through natural language.
              Last updated -
              340
              MIT License
              • Apple
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol server that enables LLMs to interact with databases (currently MongoDB) through natural language, supporting operations like querying, inserting, deleting documents, and running aggregation pipelines.
              Last updated -
              TypeScript
              MIT License
              • Apple

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/zilliztech/mcp-server-milvus'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server