• Über Milvus
  • Los geht's
  • Konzepte
  • Benutzerhandbuch
  • Datenimport
  • AI-Tools
  • Leitfaden für die Verwaltung
  • Werkzeuge
  • Integrationen
  • Anleitungen
  • FAQs
  • API Reference

MCP + Milvus: Verknüpfung von KI mit Vektordatenbanken

Einführung

Das Model Context Protocol (MCP) ist ein offenes Protokoll, das es KI-Anwendungen wie Claude und Cursor ermöglicht, nahtlos mit externen Datenquellen und Tools zu interagieren. Ganz gleich, ob Sie benutzerdefinierte KI-Anwendungen erstellen, KI-Workflows integrieren oder Chat-Schnittstellen verbessern möchten, MCP bietet eine standardisierte Möglichkeit, große Sprachmodelle (LLMs) mit relevanten Kontextdaten zu verbinden.

Dieses Tutorial führt Sie durch die Einrichtung eines MCP-Servers für Milvus, der es KI-Anwendungen ermöglicht, Vektorsuchen durchzuführen, Sammlungen zu verwalten und Daten mithilfe von Befehlen in natürlicher Spracheabzurufen , ohneeigene Datenbankabfragen schreiben zu müssen.

Voraussetzungen

Bevor Sie den MCP-Server einrichten, stellen Sie sicher, dass Sie Folgendes haben

  • Python 3.10 oder höher
  • Eine laufende Milvus-Instanz
  • uv (für den Betrieb des Servers empfohlen)

Erste Schritte

Es wird empfohlen, diesen MCP-Server ohne Installation direkt mit uv zu betreiben. In den folgenden Beispielen sind sowohl Claude Desktop als auch Cursor so konfiguriert, dass sie ihn verwenden.

Wenn Sie das Repository klonen möchten:

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

Dann können Sie den Server direkt ausführen:

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

Unterstützte Anwendungen

Dieser MCP-Server kann mit verschiedenen AI-Anwendungen verwendet werden, die das Model Context Protocol unterstützen, wie z. B:

  • Claude Desktop: Anthropic's Desktop-Anwendung für Claude
  • Cursor: KI-gestützter Code-Editor mit MCP-Unterstützung in seiner Composer-Funktion
  • Andere kundenspezifische MCP-Clients Jede Anwendung, die die MCP-Client-Spezifikation implementiert

Verwendung von MCP mit Claude Desktop

  1. Installieren Sie Claude Desktop.
  2. Öffnen Sie die Claude-Konfigurationsdatei:
    • Unter macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. Fügen Sie die folgende Konfiguration 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 von MCP mit Cursor

Cursor unterstützt auch MCP-Tools durch seine Agent-Funktion im Composer. Sie können den Milvus MCP-Server auf zwei Arten zu Cursor hinzufügen:

Option 1: Über die Cursor Settings UI

  1. Öffnen Sie Cursor SettingsFeaturesMCP.
  2. Klicken Sie auf + Add New MCP Server.
  3. Füllen Sie aus:
    • Typ: stdio
    • Name: milvus
    • Befehl:
      /PATH/TO/uv --directory /path/to/mcp-server-milvus/src/mcp_server_milvus run server.py --milvus-uri http://127.0.0.1:19530
      
    • ⚠️ Tipp: Verwenden Sie 127.0.0.1 anstelle von localhost, um mögliche DNS-Auflösungsprobleme zu vermeiden.
  1. Erstellen Sie eine Datei .cursor/mcp.json in Ihrem Projekt-Stammverzeichnis:
{
  "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"
      ]
    }
  }
}
  1. Starten Sie Cursor neu, um die Konfiguration zu übernehmen.

Nach dem Hinzufügen des Servers müssen Sie möglicherweise die Schaltfläche "Aktualisieren" in den MCP-Einstellungen drücken, um die Tool-Liste aufzufüllen. Der Composer Agent wird automatisch die Milvus-Tools verwenden, wenn sie für Ihre Abfragen relevant sind.

Überprüfen der Integration

So stellen Sie sicher, dass der MCP-Server korrekt eingerichtet ist:

Für Cursor

  1. Gehen Sie zu Cursor SettingsFeaturesMCP.
  2. Bestätigen Sie, dass "Milvus" in der Liste der MCP-Server erscheint.
  3. Prüfen Sie, ob die Milvus-Tools (z. B. milvus_list_collections, milvus_vector_search) aufgeführt sind.
  4. Wenn Fehler auftreten, lesen Sie den Abschnitt Fehlerbehebung weiter unten.

MCP-Server-Tools für Milvus

Dieser MCP-Server bietet mehrere Tools für die Suche, Abfrage und Verwaltung von Vektordaten in Milvus. Weitere Einzelheiten entnehmen Sie bitte der Dokumentation mcp-server-milvus.

🔍 Such- und Abfragetools

  • milvus-text-search → Suche nach Dokumenten mittels Volltextsuche.
  • milvus-vector-search → Durchführen einer Vektorähnlichkeitssuche in einer Sammlung.
  • milvus-hybrid-search → Durchführen einer hybriden Suche, die Vektorähnlichkeit und Attributfilterung kombiniert.
  • milvus-multi-vector-search → Durchführen einer Vektorähnlichkeitssuche mit mehreren Abfragevektoren.
  • milvus-query → Abfrage einer Sammlung mit Filterausdrücken.
  • milvus-count → Zählen von Entitäten in einer Sammlung.

📁 Sammlungsverwaltung

  • milvus-list-collections → Auflisten aller Sammlungen in der Datenbank.
  • milvus-collection-info → Detaillierte Informationen über eine Sammlung abrufen.
  • milvus-get-collection-stats → Abrufen von Statistiken über eine Sammlung.
  • milvus-create-collection → Erstellen einer neuen Sammlung mit einem bestimmten Schema.
  • milvus-load-collection → Laden einer Sammlung in den Speicher zur Suche und Abfrage.
  • milvus-release-collection → Eine Sammlung aus dem Speicher freigeben.
  • milvus-get-query-segment-info → Informationen über Abfragesegmente abrufen.
  • milvus-get-collection-loading-progress → Abrufen des Ladefortschritts einer Sammlung.

📊 Datenoperationen

  • milvus-insert-data → Einfügen von Daten in eine Sammlung.
  • milvus-bulk-insert → Einfügen von Daten in Stapeln für bessere Leistung.
  • milvus-upsert-data → Daten in eine Sammlung einfügen (einfügen oder aktualisieren, falls vorhanden).
  • milvus-delete-entities → Löschen von Entitäten aus einer Sammlung basierend auf einem Filterausdruck.
  • milvus-create-dynamic-field → Hinzufügen eines dynamischen Feldes zu einer bestehenden Sammlung.

⚙️ Index-Verwaltung

  • milvus-create-index → Einen Index für ein Vektorfeld erstellen.
  • milvus-get-index-info → Abrufen von Informationen über Indizes in einer Sammlung.

Umgebungsvariablen

  • MILVUS_URI → Milvus-Server-URI (kann anstelle von --milvus-uri gesetzt werden).
  • MILVUS_TOKEN → Optionales Authentifizierungs-Token.
  • MILVUS_DB → Datenbankname (Standardwert ist "default").

Entwicklung

Zum direkten Ausführen des Servers:

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

Beispiele

Verwendung von Claude Desktop

Beispiel 1: Auflistung von Sammlungen

What are the collections I have in my Milvus DB?

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

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

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]

Cursor verwenden

Beispiel: Erstellen einer Sammlung

Im Composer von Cursor können Sie eine Anfrage stellen:

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

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

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]

Fehlersuche

Häufige Probleme

Verbindungsfehler

Wenn Sie Fehler wie "Failed to connect to Milvus server" sehen:

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

Probleme mit der Authentifizierung

Wenn Sie Authentifizierungsfehler sehen:

  1. Überprüfen Sie, ob Ihre MILVUS_TOKEN korrekt ist.
  2. Prüfen Sie, ob Ihre Milvus-Instanz eine Authentifizierung erfordert
  3. Vergewissern Sie sich, dass Sie die richtigen Berechtigungen für die Vorgänge haben, die Sie durchfü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. Prüfen Sie die Serverprotokolle auf eventuelle Fehler
  3. Überprüfen Sie, ob der MCP-Server korrekt läuft.
  4. Drücken Sie die Aktualisierungsschaltfläche in den MCP-Einstellungen (für Cursor)

Hilfe erhalten

Wenn Sie weiterhin Probleme haben:

  1. Überprüfen Sie die GitHub Issues auf ähnliche Probleme
  2. Treten Sie dem Zilliz Community Discord bei, um Unterstützung zu erhalten
  3. Erstelle einen neuen Issue mit detaillierten Informationen zu deinem Problem

Schlussfolgerung

Mit diesem Tutorial haben Sie nun einen MCP-Server in Betrieb genommen, der die KI-gestützte Vektorsuche in Milvus ermöglicht. Unabhängig davon, ob Sie Claude Desktop oder Cursor verwenden, können Sie jetzt Ihre Milvus-Datenbank mit natürlichsprachlichen Befehlenabfragen, verwalten und durchsuchen - ohneDatenbankcode zu schreiben!