Skip to main content
Glama

Elasticsearch MCP Server

by silbaram
1

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

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 Servers

  • 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
    A
    license
    -
    quality
    MCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)
    Last updated -
    1
    Python
    MIT License
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    MCP server for Mamont search engine
    Last updated -
    2
    TypeScript
    MIT License

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/silbaram/elasticsearch-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server