Elasticsearch MCP Server

Official
by elastic

Integrations

  • Provides access to Elasticsearch indices, allowing users to list indices, inspect field mappings, and execute search queries using full Query DSL capabilities with automatic highlighting.

Elasticsearch MCP-Server

Dieses Repository enthält experimentelle Funktionen, die für Forschung und Evaluierung bestimmt sind und nicht produktionsreif sind.

Stellen Sie mithilfe des Model Context Protocol (MCP) direkt von jedem MCP-Client (wie Claude Desktop) eine Verbindung zu Ihren Elasticsearch-Daten her.

Dieser Server verbindet Agenten über das Model Context Protocol mit Ihren Elasticsearch-Daten. Er ermöglicht Ihnen die Interaktion mit Ihren Elasticsearch-Indizes über natürliche Sprachkonversationen.

Verfügbare Tools

  • list_indices : Listet alle verfügbaren Elasticsearch-Indizes auf
  • get_mappings : Ruft Feldzuordnungen für einen bestimmten Elasticsearch-Index ab
  • search : Führen Sie eine Elasticsearch-Suche mit der bereitgestellten Abfrage-DSL durch
  • get_shards : Shard-Informationen für alle oder bestimmte Indizes abrufen

Voraussetzungen

  • Eine Elasticsearch-Instanz
  • Elasticsearch-Authentifizierungsdaten (API-Schlüssel oder Benutzername/Passwort)
  • MCP-Client (z. B. Claude Desktop)

Demo

https://github.com/user-attachments/assets/5dd292e1-a728-4ca7-8f01-1380d1bebe0c

Installation und Einrichtung

Verwenden des veröffentlichten NPM-Pakets

[!TIP] Am einfachsten lässt sich der Elasticsearch MCP-Server über das veröffentlichte npm-Paket verwenden.

  1. MCP-Client konfigurieren
    • Öffnen Sie Ihren MCP-Client. Sehen Sie sich die Liste der MCP-Clients an. Hier konfigurieren wir Claude Desktop.
    • Gehen Sie zu Einstellungen > Entwickler > MCP-Server
    • Klicken Sie auf Edit Config und fügen Sie einen neuen MCP-Server mit der folgenden Konfiguration hinzu:
    { "mcpServers": { "elasticsearch-mcp-server": { "command": "npx", "args": [ "-y", "@elastic/mcp-server-elasticsearch" ], "env": { "ES_URL": "your-elasticsearch-url", "ES_API_KEY": "your-api-key" } } } }
  2. Eine Unterhaltung beginnen
    • Öffnen Sie eine neue Konversation in Ihrem MCP-Client
    • Der MCP-Server sollte automatisch eine Verbindung herstellen
    • Sie können jetzt Fragen zu Ihren Elasticsearch-Daten stellen

Konfigurationsoptionen

Der Elasticsearch MCP-Server unterstützt Konfigurationsoptionen zum Herstellen einer Verbindung mit Ihrem Elasticsearch:

[!NOTE] Sie müssen zur Authentifizierung entweder einen API-Schlüssel oder sowohl Benutzernamen als auch Kennwort angeben.

UmgebungsvariableBeschreibungErforderlich
ES_URLDie URL Ihrer Elasticsearch-InstanzJa
ES_API_KEYElasticsearch-API-Schlüssel zur AuthentifizierungNEIN
ES_USERNAMEElasticsearch-Benutzername für die BasisauthentifizierungNEIN
ES_PASSWORDElasticsearch-Passwort für die BasisauthentifizierungNEIN
ES_CA_CERTPfad zum benutzerdefinierten CA-Zertifikat für Elasticsearch SSL/TLSNEIN

Lokale Entwicklung

[!NOTE] Wenn Sie den MCP-Server ändern oder erweitern möchten, befolgen Sie diese lokalen Entwicklungsschritte.

  1. Verwenden Sie die richtige Node.js-Version
    nvm use
  2. Abhängigkeiten installieren
    npm install
  3. Erstellen des Projekts
    npm run build
  4. Lokal in der Claude Desktop App ausführen
    • Öffnen Sie die Claude Desktop App
    • Gehen Sie zu Einstellungen > Entwickler > MCP-Server
    • Klicken Sie auf Edit Config und fügen Sie einen neuen MCP-Server mit der folgenden Konfiguration hinzu:
    { "mcpServers": { "elasticsearch-mcp-server-local": { "command": "node", "args": [ "/path/to/your/project/dist/index.js" ], "env": { "ES_URL": "your-elasticsearch-url", "ES_API_KEY": "your-api-key" } } } }
  5. Debuggen mit MCP Inspector
    ES_URL=your-elasticsearch-url ES_API_KEY=your-api-key npm run inspector
    Dadurch wird der MCP Inspector gestartet, mit dem Sie Anfragen debuggen und analysieren können. Folgendes sollte angezeigt werden:
    Starting MCP inspector... Proxy server listening on port 3000 🔍 MCP Inspector is up and running at http://localhost:5173 🚀

Beitragen

Wir freuen uns über Beiträge aus der Community! Weitere Informationen dazu, wie Sie beitragen können, finden Sie in den Richtlinien für Beiträge .

Beispielfragen

[!TIP] Hier sind einige Abfragen in natürlicher Sprache, die Sie mit Ihrem MCP-Client ausprobieren können.

  • „Welche Indizes habe ich in meinem Elasticsearch-Cluster?“
  • „Zeigen Sie mir die Feldzuordnungen für den Index ‚Produkte‘.“
  • „Finden Sie alle Bestellungen über 500 $ vom letzten Monat.“
  • „Welche Produkte haben die meisten 5-Sterne-Bewertungen erhalten?“

Wie es funktioniert

  1. Der MCP-Client analysiert Ihre Anfrage und ermittelt, welche Elasticsearch-Operationen erforderlich sind.
  2. Der MCP-Server führt diese Vorgänge aus (Auflisten von Indizes, Abrufen von Zuordnungen, Durchführen von Suchvorgängen).
  3. Der MCP-Client verarbeitet die Ergebnisse und präsentiert sie in einem benutzerfreundlichen Format.

Bewährte Sicherheitspraktiken

[!WARNING] Vermeiden Sie die Verwendung von Clusteradministratorberechtigungen. Erstellen Sie dedizierte API-Schlüssel mit begrenztem Umfang und wenden Sie eine differenzierte Zugriffssteuerung auf Indexebene an, um unbefugten Datenzugriff zu verhindern.

Sie können einen dedizierten Elasticsearch-API-Schlüssel mit minimalen Berechtigungen erstellen, um den Zugriff auf Ihre Daten zu kontrollieren:

POST /_security/api_key { "name": "es-mcp-server-access", "role_descriptors": { "mcp_server_role": { "cluster": [ "monitor" ], "indices": [ { "names": [ "index-1", "index-2", "index-pattern-*" ], "privileges": [ "read", "view_index_metadata" ] } ] } } }

Lizenz

Dieses Projekt ist unter der Apache-Lizenz 2.0 lizenziert.

Fehlerbehebung

  • Stellen Sie sicher, dass Ihre MCP-Konfiguration korrekt ist.
  • Stellen Sie sicher, dass Ihre Elasticsearch-URL von Ihrem Computer aus zugänglich ist.
  • Überprüfen Sie, ob Ihre Authentifizierungsdaten (API-Schlüssel oder Benutzername/Passwort) über die erforderlichen Berechtigungen verfügen.
  • Wenn Sie SSL/TLS mit einer benutzerdefinierten Zertifizierungsstelle verwenden, überprüfen Sie, ob der Zertifikatspfad korrekt ist und die Datei lesbar ist.
  • Suchen Sie in der Terminalausgabe nach Fehlermeldungen.

Wenn Sie auf Probleme stoßen, können Sie gerne ein Problem im GitHub-Repository öffnen.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Verbindet Claude und andere MCP-Clients mit Elasticsearch-Daten und ermöglicht Benutzern die Interaktion mit ihren Elasticsearch-Indizes über Konversationen in natürlicher Sprache.

  1. Verfügbare Tools
    1. Voraussetzungen
      1. Demo
        1. Installation und Einrichtung
          1. Verwenden des veröffentlichten NPM-Pakets
          2. Konfigurationsoptionen
          3. Lokale Entwicklung
        2. Beitragen
          1. Beispielfragen
            1. Wie es funktioniert
              1. Bewährte Sicherheitspraktiken
                1. Lizenz
                  1. Fehlerbehebung

                    Related MCP Servers

                    • A
                      security
                      A
                      license
                      A
                      quality
                      Facilitates interaction with Elasticsearch clusters by allowing users to perform index operations, document searches, and cluster management via a Model Context Protocol server and natural language commands.
                      Last updated -
                      6
                      127
                      Python
                      Apache 2.0
                      • Apple
                    • -
                      security
                      F
                      license
                      -
                      quality
                      A Python MCP server that enables semantic search through Search Labs blog posts indexed in Elasticsearch, allowing Claude to intelligently retrieve relevant information from the blog content.
                      Last updated -
                      Python
                    • -
                      security
                      F
                      license
                      -
                      quality
                      A Model Context Protocol server that enables LLMs to interact with Elasticsearch clusters, allowing them to manage indices and execute search queries using natural language.
                      Last updated -
                      1
                      JavaScript
                    • 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

                    View all related MCP servers

                    ID: jv4tgnn4d2