Skip to main content
Glama
silbaram

Elasticsearch MCP Server

by silbaram

Elasticsearch MCP-Server

Einführung

Der Elasticsearch Model Context Protocol (MCP) Server ist eine Serveranwendung, die auf Basis von Spring AI MCP entwickelt wurde. Sie ist darauf ausgelegt, verschiedene Datenverarbeitungs-Workflows über MCP einfach zu definieren und die Ergebnisse in einem Elasticsearch-Cluster effizient zu indizieren und zu durchsuchen.

Hauptmerkmale

  • Automatische Registrierung und Ausführung von MCP-Tools : Mit der @Tool -Annotation in einer Spring Boot-Umgebung definierte Funktionen werden automatisch beim MCP-Server registriert. Dadurch können externe Clients (z. B. Claude, FastMCP CLI) diese Funktionen über die standardmäßige JSON-RPC-basierte Kommunikation aufrufen.

  • Elasticsearch-Cluster-Integration : Verwendet den offiziellen Elasticsearch-Java-Client, um wichtige Elasticsearch-APIs wie Cluster-Integritätsprüfungen, Index-Mapping-Lookups, Dokumentindizierung und -suche einfach aufzurufen, und stellt die Ergebnisse in Form von MCP-Tools bereit.

  • Skalierbare Architektur : Eine modulare Paketstruktur ermöglicht die flexible Trennung und Verwaltung von Client-Einstellungen für verschiedene Elasticsearch-Versionen. Sie ist außerdem so konzipiert, dass neue Tools oder externe Integrationsfunktionen problemlos hinzugefügt werden können.

Related MCP server: Elasticsearch/OpenSearch MCP Server

Verfügbare MCP-Tools

  • get_cluster_health : Gibt grundlegende Informationen zum Status des Elasticsearch-Clusters zurück.

  • get_cluster_statistics : Ruft umfassende Clusterstatistiken ab, einschließlich Clustername, UUID, Status, Knotenrollen, Betriebssystem- und JVM-Ressourcennutzung, Indexanzahl und Shard-Metriken.

  • get_cat_mappings : Ruft Feldzuordnungsinformationen für einen bestimmten Elasticsearch-Index ab.

  • get_cat_indices : Ruft eine Liste aller Indizes in Elasticsearch ab.

  • get_cat_indices_by_name : Ruft eine Liste von Indizes ab, die dem angegebenen Indexnamen oder Platzhaltermuster entsprechen.

  • get_cat_aliases : Ruft eine Liste aller Aliase in Elasticsearch ab.

  • get_cat_aliases_by_name : Ruft eine Liste von Aliasnamen ab, die dem angegebenen Aliasnamen oder Platzhaltermuster entsprechen.

  • get_document_search_by_index : Sucht mithilfe einer KI-generierten QueryDSL nach Dokumenten in einem Elasticsearch-Index.

  • get_shard_allocation : Gibt Informationen zur Shard-Zuweisung im Elasticsearch-Cluster zurück.

  • get_shard_allocation_for_node : Gibt Informationen zur Shard-Zuweisung für einen bestimmten Knoten im Elasticsearch-Cluster zurück.

Technologie-Stack

  • Sprache : Java 17

  • Framework : Spring Boot 3.4.5, Spring AI MCP

  • Suchmaschine : Elasticsearch 7.16 oder höher

  • Build-Tool : Gradle 8.12

Voraussetzungen

Zum Erstellen und Ausführen dieses Projekts wird die folgende Software benötigt:

  • JDK: Version 17 oder höher

  • Ausführen einer Elasticsearch-Instanz: Version 7.16 oder höher

  • MCP-Client (z. B. Claude Desktop)

Installation und Ausführung

So richten Sie das Projekt in Ihrer lokalen Umgebung ein und führen es aus:

1. Klonen Sie den Quellcode

git clone https://github.com/silbaram/elasticsearch-mcp-server.git
cd elasticsearch-mcp-server

2. Konfigurieren Sie application.yml im mcp-server Modul

Öffnen Sie die Datei application.yml in mcp-server/src/main/resources/application.yml um Ihre Elasticsearch-Clusterinformationen einzurichten.

elasticsearch:
  version: "8.6.1" # Specifies the version of the Elasticsearch cluster to connect to.
  search:
    hosts:
      - http://localhost:9200 # Specifies the access address of the Elasticsearch cluster.

3. Bauen

Verwenden Sie den folgenden Befehl, um das Projekt zu erstellen:

./gradlew build
  • Die erstellte JAR-Datei befindet sich im Verzeichnis mcp-server/build/libs/ .

4. MCP-Client konfigurieren

  • Starten Sie Ihren MCP-Client. (Eine Liste der MCP-Clients finden Sie unter MCP-Clientliste . Diese Anleitung verwendet Claude Desktop als Beispiel.)

  • Navigieren Sie im Einstellungsmenü Ihres MCP-Clients zu „Entwickler“ > „MCP-Server“.

  • Klicken Sie auf die Schaltfläche „Konfiguration bearbeiten“ und fügen Sie eine neue MCP-Serverkonfiguration mit folgendem Inhalt hinzu. (Sie müssen den tatsächlichen Pfad zur zuvor erstellten JAR-Datei verwenden.)

    {
      "mcpServers": {
        "elasticsearch-server": {
          "command": "java",
          "args": [
            "-Dusername=YOUR_USERNAME", 
            "-Dpassword=YOUR_PASSWORD",
            "-jar",
            "/path/to/your/mcp-server.jar" 
          ]
        }
      }
    }
  • -Dusername (Optional): Gibt die Benutzer-ID an, die für den Zugriff auf den Elasticsearch-Cluster erforderlich ist. (z. B. -Dusername=elastic )

  • -Dpassword (Optional): Gibt das für den Zugriff auf den Elasticsearch-Cluster erforderliche Kennwort an. (z. B. -Dpassword=yoursecurepassword )

  • /path/to/your/mcp-server.jar : Dies muss durch den tatsächlichen vollständigen Pfad zu Ihrer erstellten mcp-server.jar Datei ersetzt werden.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that enables interaction with Elasticsearch and OpenSearch clusters for searching documents and managing indices. It provides tools for cluster health monitoring, index configuration, and general API requests.
    16
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that provides tools and resources to interact with Elasticsearch clusters, including listing indices, searching, and retrieving mappings.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to directly interact with Elasticsearch for searching, aggregating, and retrieving documents from indices, supporting full-text search, semantic search, and various query modes.
    9 npm
    MIT