Skip to main content
Glama
baburajr

elasticsearch-mcp

by baburajr

elasticsearch-mcp

MCP-Server für Elasticsearch, direkt auf der REST-API aufgebaut (ohne elasticsearch-py-Abhängigkeit; funktioniert daher auch mit OpenSearch und verwalteten Clustern, die ausschließlich HTTP bereitstellen).

21 Tools decken Abfragen, Diagnose, Mapping und Cluster-Operationen ab. Standardmäßig schreibgeschützt (read-only); jeder Schreibpfad ist abgesichert.

Installation

git clone <your-repo> elasticsearch-mcp && cd elasticsearch-mcp
uv sync            # or: pip install -e ".[dev]"
cp .env.example .env
pytest -q

Related MCP server: OpenSearch MCP Server

Registrierung mit Claude Code / Claude Desktop

{
  "mcpServers": {
    "elasticsearch": {
      "command": "uv",
      "args": ["--directory", "/abs/path/elasticsearch-mcp", "run", "elasticsearch-mcp"],
      "env": {
        "ES_MCP_HOSTS": "https://es.internal:9200",
        "ES_MCP_API_KEY": "base64-encoded-api-key",
        "ES_MCP_INDEX_ALLOW": "logs-*,metrics-*",
        "ES_MCP_READ_ONLY": "true"
      }
    }
  }
}

Remote-/gemeinsame Bereitstellung statt stdio:

elasticsearch-mcp --transport streamable-http

Tools

Abfragen

Tool

Beschreibung

run_query

Führt Query-DSL aus. Größe begrenzt, Timeout wird eingefügt, Deep Paging wird abgelehnt, search_after wird unterstützt

generate_dsl

Erzeugt aus einer strukturierten Spezifikation gültiges DSL, validiert gegen den Index und liefert einen Feldkatalog

explain_query

_validate?rewrite=true + profile-Zeitaufschlüsselung + _explain pro Dokument

count_documents

Zählt die Anzahl der Übereinstimmungen, ohne Treffer abzurufen

Diagnose

Tool

Beschreibung

cluster_health

Status, Shard-Anzahl, anstehende Tasks, optional Heap/Disk/CPU/Rejections pro Knoten

index_health

Pro Index: Dokumente, Store, Segmente, durchschnittliche Abfrage- und Indexierungslatenz, Merges

shard_allocation

_cat/shards plus _cluster/allocation/explain-Begründungen für nicht zugewiesene Shards

allocation

Indizes nach durchschnittlicher Abfrage-Latenz sortiert, laufende Such-Tasks, Thread-Pool-Rejections, Slowlog-Schwellenwerte

Mapping

Tool

Beschreibung

list_indices

Indizes und Aliase mit Dokumentenanzahl und Größe

get_mapping

Flacher field path -> type-Katalog inklusive Multi-Feldern

analyze_text

Token-Ausgabe eines Analysers zum Debuggen von Match-Queries ohne Treffer

put_mapping

Additive Mapping-Änderungen (schreibseitig abgesichert)

Operationen

Tool

Beschreibung

list_snapshot_repositories, list_snapshots, snapshot_status

Snapshot-Inventar und -Fortschritt

create_snapshot

Erstellt Snapshots ausgewählter Indizes, standardmäßig asynchron

restore_snapshot

Wiederherstellung mit Vorabprüfung auf bereits offene Indizes und Unterstützung für Umbenennen

reindex

Asynchrones Reindex mit Query, Pipeline, Script, Slicing, Throttling; liefert eine Task-ID

get_task, cancel_task

Laufende langlaufende Tasks abfragen oder abbrechen

cluster_info

Version, Distribution und die aktive Sicherheitsrichtlinie

Konfiguration

Alle Variablen verwenden das Präfix ES_MCP_ wird gelesen aus der Umgebung oder .env gelesen.

Variable

Standardwert

Zweck

HOSTS

http://localhost:9200

Kommagetrennt; Failover über alle angegebenen Hosts

API_KEY / USERNAME+PASSWORD / BEARER_TOKEN

Einen Authentifizierungsmodus wählen

VERIFY_CERTS, CA_CERTS, CLIENT_CERT, CLIENT_KEY

true

TLS

REQUEST_TIMEOUT, CONNECT_TIMEOUT, MAX_RETRIES

30, 10, 3

Retries decken 429/502/503/504 und Verbindungsfehler ab – mit Jitter-Backoff und Retry-After

READ_ONLY

true

Hauptschalter für alle schreibenden Tools

ALLOW_DESTRUCTIVE

false

Zweites Gate für restore, reindex, put_mapping

INDEX_ALLOW

*

Glob-Allowlist

INDEX_DENY

.*,security-*

Glob-Denylist; Deny hat Vorrang

DEFAULT_SIZE, MAX_RESULT_SIZE

10, 200

Obergrenzen für Treffer (Hits)

MAX_AGG_BUCKETS

1000

Verhindert Bucket-Explosionen

SEARCH_TIMEOUT, TERMINATE_AFTER

30s, nicht gesetzt

Schutz pro Abfrage

MAX_RESPONSE_CHARS, MAX_SOURCE_CHARS

60000, 2000

Token-Control

AUDIT_LOG_PATH

nicht gesetzt

JSONL-Protokoll jedes Tool-Aufrufs und -Ergebnisses

LOG_LEVEL

INFO

Logs gehen nach stderr, niemals nach stdout (stdio-Transport)

Sicherheitsmodell

Vier unabhängige Ebenen, die im Fehlerfall zuverlässig blockieren (Fail-closed):

  1. Index-Richtlinie – Zulässige Kombination von Allow- und Deny-Liste wird bei jedem Aufruf geprüft; Deny hat Vorrang; Wildcard-Schreibvorgänge über den gesamten Cluster werden abgelehnt.

  2. Schreibgeschützt – Schreibende Tools verweigern die Arbeit, sofern nicht READ_ONLY=false gesetzt ist.

  3. Destruktives Gate – restore, reindex und put_mapping benötigen zusätzlich ALLOW_DESTRUCTIVE=true und ein explizites confirm=true-Argument im Aufruf selbst.

  4. Query-Limits – Größenbegrenzung, Begrenzung der Aggregations-Buckets, Begrenzung der Aggregationstiefe, Ablehnung von Deep Paging und eingefügter Such-Timeout.

Tools geben Fehler als lesbaren Text zurück (ERROR (run_query): ...), statt sie als Exception zu werfen. So kann das Modell sich selbst korrigieren, statt zum Stillstand zu kommen.

Empfohlene Konfiguration für den Produktionsbetrieb: ein dedizierter ES-API-Schlüssel mit read-Zugriff genau auf die erlaubten Indizes, READ_ONLY=true, und eine separate schreibaktivierte Instanz nur dann, eineder Sie tatsächlich reindex/restore über den Assistenten benötigen.

Erweiterungen

Fügen Sie ein Modul unter src/es_mcp/tools/ hinzu, machen Sie register(server, ctx) verfügbar und binden Sie es in server.build_server ein. Verwenden Sie ctx.guard für Richtlinienprüfungen undctx.render für die Ausgabe, damit Limits automatisch angewendet werden.

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    C
    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
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to interact with OpenSearch clusters to monitor cluster health, manage indices, and perform data searches. It provides a standardized interface for real-time OpenSearch operations within MCP-compatible environments like Open WebUI.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with OpenSearch clusters for searching indices, retrieving mappings, and managing shards through the MCP protocol.
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only MCP server for exploring and searching OpenSearch clusters, enabling log analysis, index exploration, and query execution.
    MIT

View all related MCP servers

Related MCP Connectors

  • Search, document and execute authenticated API calls across 700+ apps via one MCP server

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • Read-only Remote MCP for externally grounded AI agent trust receipts.

View all MCP Connectors

Latest Blog Posts

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/baburajr/elasticsearch_mcp'

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