MCP Lucene Server
Beschreibung
Der MCP Lucene Server ist eine Java-basierte Implementierung des Model Context Protocol (MCP) und bietet effiziente Such- und Abfragefunktionen mit Apache Lucene. Mit diesem Server können Sie Dokumente verwalten und abfragen und dabei die leistungsstarken Indexierungs- und Suchfunktionen von Lucene nutzen. Er basiert auf Spring Boot und ermöglicht so eine einfache Einrichtung und Bereitstellung.
Related MCP server: Mercado Livre MCP Server
Merkmale
MCP-Konformität: Implementiert das zentrale Model Context Protocol.
Lucene-basiert: Verwendet Apache Lucene für die Volltextsuche und Indizierung.
RESTful API: Bietet eine RESTful API für die Interaktion mit dem Server.
Dokumentenmanagement:
Upsert: Dokumente im Lucene-Index hinzufügen oder aktualisieren.
Löschen: Dokumente aus dem Lucene-Index löschen.
Liste: Ruft eine Liste von Dokumenten aus dem Index ab.
Abfragen:
Unterstützt komplexe Abfragen mit der Lucene-Abfragesyntax.
Filtern: Filtern Sie Abfragen basierend auf Dokumentmetadaten.
Status: Überprüfen Sie den Serverstatus.
Spring Boot: Erstellt mit Spring Boot für einfache Einrichtung und Bereitstellung.
Dockerisierung: Enthält Anweisungen zum Containerisieren der Anwendung mit Docker.
Inhaltsverzeichnis
Erste Schritte
Voraussetzungen
Java: Java 11 oder höher.
Maven: Maven 3.6.0 oder höher.
Docker: Installieren Sie Docker , wenn Sie das Docker-Image verwenden möchten.
Installation
Klonen Sie das Repository:
git clone [https://github.com/your-username/mcp-lucene-server.git](https://github.com/your-username/mcp-lucene-server.git) cd mcp-lucene-server(Ersetzen Sie
your-usernamedurch Ihren GitHub-Benutzernamen)Erstellen Sie das Projekt mit Maven:
mvn clean install
Ausführen des Servers
Ohne Docker
Führen Sie die Spring Boot-Anwendung aus:
java -jar target/mcp-lucene-server-0.0.1-SNAPSHOT.jar(Der genaue Name der
.jarDatei kann je nach Projektversion leicht abweichen.)Der Server wird standardmäßig auf Port
8080gestartet.
Mit Docker
Stellen Sie sicher, dass Sie Docker installiert haben: Folgen Sie den Anweisungen auf der offiziellen Docker-Website: https://docs.docker.com/get-docker/
Erstellen Sie das Docker-Image: Navigieren Sie in Ihrem Terminal zum Stammverzeichnis Ihres Projekts und führen Sie Folgendes aus:
docker build -t mcp-lucene-server .Führen Sie den Docker-Container aus:
docker run -p 8080:8080 mcp-lucene-serverDadurch wird Port
8080auf Ihrem Hostcomputer dem Port8080innerhalb des Containers zugeordnet.
Verwendung
API-Endpunkte
Der Server stellt die folgenden API-Endpunkte bereit:
GET /mcp/v1/statusGibt den Status des Servers zurück.
POST /mcp/v1/upsertUpserts (fügt ein oder aktualisiert) ein oder mehrere Dokumente.
Anforderungstext:
{ "documents": [ { "id": "doc1", "text": "This is the text of document 1.", "metadata": { "category": "example", "language": "english" } }, { "id": "doc2", "text": "This is document 2's text.", "metadata": { "category": "sample", "language": "spanish" } } ] }
POST /mcp/v1/queryFragt den Lucene-Index ab.
Anforderungstext:
{ "queries": [ { "query": "document", "top_k": 10, "filter": { "language": "english" } }, { "query": "text search", "filter": { "category": "example" } } ] }query: Die Lucene-Abfragezeichenfolge.top_k: (Optional) Die maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 10).filter: (Optional) Eine Karte mit Metadatenfeldern und Werten, nach denen gefiltert werden soll.
POST /mcp/v1/deleteLöscht Dokumente aus dem Lucene-Index.
Anforderungstext:
{ "ids": ["doc1", "doc2"] }
GET /mcp/v1/listListet Dokumente aus dem Lucene-Index auf.
Anforderungstext:
{ "ids": ["doc1", "doc2"] }
Beispiele
Serverstatus abrufen:
Upsert-Dokumente:
Dokumente abfragen:
Dokumente löschen:
Dokumente auflisten:
Konfiguration
Der Server kann mithilfe der Anwendungseigenschaften von Spring Boot konfiguriert werden. Hier sind einige der wichtigsten Eigenschaften:
server.port: Der Port, auf dem der Server lauscht (Standard: 8080).lucene.index.path: Der Pfad zum Lucene-Indexverzeichnis. Hier werden die indexierten Daten gespeichert. Falls nicht angegeben, wird ein Standardspeicherort verwendet. Es wird dringend empfohlen, einen persistenten Speicherort zu konfigurieren.
Sie können diese Eigenschaften in einer Datei application.properties oder application.yml in Ihrem Verzeichnis src/main/resources oder mithilfe von Umgebungsvariablen festlegen.
Beispiel
server.port=8080 lucene.index.path=/Pfad/zu/lucene/index
Lizenz
Dieses Projekt ist unter der Apache 2.0-Lizenz lizenziert.