mcp-lucene-server

Apache 2.0
  • Linux
  • Apple

Integrations

  • Utilizes Apache Lucene for full-text search and indexing capabilities, enabling efficient document management, complex querying with Lucene query syntax, and document filtering based on metadata.

  • Supports containerization of the application using Docker, with instructions for building and running the server as a Docker container.

  • Built with Spring Boot for application setup and deployment, providing RESTful API endpoints for document management operations including upsert, delete, list, and query functionalities.

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.

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

  1. 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-username durch Ihren GitHub-Benutzernamen)
  2. Erstellen Sie das Projekt mit Maven:
    mvn clean install

Ausführen des Servers

Ohne Docker
  1. Führen Sie die Spring Boot-Anwendung aus:
    java -jar target/mcp-lucene-server-0.0.1-SNAPSHOT.jar
    (Der genaue Name der .jar Datei kann je nach Projektversion leicht abweichen.)
  2. Der Server wird standardmäßig auf Port 8080 gestartet.
Mit Docker
  1. Stellen Sie sicher, dass Sie Docker installiert haben: Folgen Sie den Anweisungen auf der offiziellen Docker-Website: https://docs.docker.com/get-docker/
  2. 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 .
  3. Führen Sie den Docker-Container aus:
    docker run -p 8080:8080 mcp-lucene-server
    Dadurch wird Port 8080 auf Ihrem Hostcomputer dem Port 8080 innerhalb des Containers zugeordnet.

Verwendung

API-Endpunkte

Der Server stellt die folgenden API-Endpunkte bereit:

  • GET /mcp/v1/status
    • Gibt den Status des Servers zurück.
  • POST /mcp/v1/upsert
    • Upserts (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/query
    • Fragt 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/delete
    • Löscht Dokumente aus dem Lucene-Index.
    • Anforderungstext:
      { "ids": ["doc1", "doc2"] }
  • GET /mcp/v1/list
    • Listet Dokumente aus dem Lucene-Index auf.
    • Anforderungstext:
      { "ids": ["doc1", "doc2"] }

Beispiele

Serverstatus abrufen:

curl http://localhost:8080/mcp/v1/status

Upsert-Dokumente:

curl -X POST http://localhost:8080/mcp/v1/upsert -H 'Content-Type: application/json' -d '{ "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" } } ] }'

Dokumente abfragen:

curl -X POST http://localhost:8080/mcp/v1/query -H 'Content-Type: application/json' -d '{ "queries": [ { "query": "document text", "top_k": 5, "filter": { "language": "english" } } ] }'

Dokumente löschen:

curl -X POST http://localhost:8080/mcp/v1/delete -H 'Content-Type: application/json' -d '{ "ids": ["doc1"] }'

Dokumente auflisten:

curl -X POST http://localhost:8080/mcp/v1/list -H 'Content-Type: application/json' -d '{ "ids": ["doc1", "doc2"] }'

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 application.properties :

server.port=8080 lucene.index.path=/Pfad/zu/lucene/index

Lizenz

Dieses Projekt ist unter der Apache 2.0-Lizenz lizenziert.

-
security - not tested
A
license - permissive license
-
quality - not tested

mcp-lucene-server

  1. Beschreibung
    1. Merkmale
      1. Inhaltsverzeichnis
        1. Erste Schritte
          1. Voraussetzungen
          2. Installation
          3. Ausführen des Servers
        2. Verwendung
          1. API-Endpunkte
          2. Beispiele
        3. Konfiguration
          1. Lizenz

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A Model Context Protocol (MCP) server that provides search and crawl functionality using Search1API.
              Last updated -
              5
              206
              111
              TypeScript
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              An MCP server implementation that integrates the Tavily Search API, providing optimized search capabilities for LLMs.
              Last updated -
              1
              TypeScript
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              Provides an MCP protocol interface for interacting with Elasticsearch 7.x databases, supporting comprehensive search functionality including aggregations, highlighting, and sorting.
              Last updated -
              3
              1
              Python
              Apache 2.0
            • -
              security
              F
              license
              -
              quality
              An MCP server that integrates with SerpApi to retrieve search results from multiple search engines including Google, Bing, Yahoo, and others, enabling fast access to both live and archived search data.
              Last updated -
              Python

            View all related MCP servers

            ID: 2dlbo0wmkw