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
- Installieren Sie Claude Desktop.
- Öffnen Sie die Claude-Konfigurationsdatei:
- Unter macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Unter macOS:
- 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"
]
}
}
}
- 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
- Öffnen Sie
Cursor Settings→Features→MCP. - Klicken Sie auf
+ Add New MCP Server. - 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.1anstelle vonlocalhost, um mögliche DNS-Auflösungsprobleme zu vermeiden.
- Typ:
Option 2: Verwendung einer projektspezifischen Konfiguration (empfohlen)
- Erstellen Sie eine Datei
.cursor/mcp.jsonin 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"
]
}
}
}
- 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
- Gehen Sie zu
Cursor Settings→Features→MCP. - Bestätigen Sie, dass
"Milvus"in der Liste der MCP-Server erscheint. - Prüfen Sie, ob die Milvus-Tools (z. B.
milvus_list_collections,milvus_vector_search) aufgeführt sind. - 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-urigesetzt 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:
- Überprüfen Sie, ob Ihre Milvus-Instanz ausgeführt wird:
docker ps(bei Verwendung von Docker) - Überprüfen Sie, ob der URI in Ihrer Konfiguration korrekt ist.
- Stellen Sie sicher, dass die Verbindung nicht durch Firewall-Regeln blockiert wird.
- Versuchen Sie,
127.0.0.1anstelle vonlocalhostim URI zu verwenden.
Probleme mit der Authentifizierung
Wenn Sie Authentifizierungsfehler sehen:
- Überprüfen Sie, ob Ihre
MILVUS_TOKENkorrekt ist. - Prüfen Sie, ob Ihre Milvus-Instanz eine Authentifizierung erfordert
- 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:
- Starten Sie die Anwendung neu
- Prüfen Sie die Serverprotokolle auf eventuelle Fehler
- Überprüfen Sie, ob der MCP-Server korrekt läuft.
- Drücken Sie die Aktualisierungsschaltfläche in den MCP-Einstellungen (für Cursor)
Hilfe erhalten
Wenn Sie weiterhin Probleme haben:
- Überprüfen Sie die GitHub Issues auf ähnliche Probleme
- Treten Sie dem Zilliz Community Discord bei, um Unterstützung zu erhalten
- 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!