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.
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
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.
3. Bauen
Verwenden Sie den folgenden Befehl, um das Projekt zu erstellen:
- 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.)
-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 erstelltenmcp-server.jar
Datei ersetzt werden.
Related MCP Servers
- AsecurityAlicenseAqualityProvides an MCP protocol interface for interacting with Elasticsearch 7.x databases, supporting comprehensive search functionality including aggregations, highlighting, and sorting.Last updated -31PythonApache 2.0
- -securityAlicense-qualityMCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)Last updated -1PythonMIT License
- TypeScriptMIT License
- TypeScriptApache 2.0