elasticsearch-mcp
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 -qRelated 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-httpTools
Abfragen
Tool | Beschreibung |
| Führt Query-DSL aus. Größe begrenzt, Timeout wird eingefügt, Deep Paging wird abgelehnt, |
| Erzeugt aus einer strukturierten Spezifikation gültiges DSL, validiert gegen den Index und liefert einen Feldkatalog |
|
|
| Zählt die Anzahl der Übereinstimmungen, ohne Treffer abzurufen |
Diagnose
Tool | Beschreibung |
| Status, Shard-Anzahl, anstehende Tasks, optional Heap/Disk/CPU/Rejections pro Knoten |
| Pro Index: Dokumente, Store, Segmente, durchschnittliche Abfrage- und Indexierungslatenz, Merges |
|
|
| Indizes nach durchschnittlicher Abfrage-Latenz sortiert, laufende Such-Tasks, Thread-Pool-Rejections, Slowlog-Schwellenwerte |
Mapping
Tool | Beschreibung |
| Indizes und Aliase mit Dokumentenanzahl und Größe |
| Flacher |
| Token-Ausgabe eines Analysers zum Debuggen von Match-Queries ohne Treffer |
| Additive Mapping-Änderungen (schreibseitig abgesichert) |
Operationen
Tool | Beschreibung |
| Snapshot-Inventar und -Fortschritt |
| Erstellt Snapshots ausgewählter Indizes, standardmäßig asynchron |
| Wiederherstellung mit Vorabprüfung auf bereits offene Indizes und Unterstützung für Umbenennen |
| Asynchrones Reindex mit Query, Pipeline, Script, Slicing, Throttling; liefert eine Task-ID |
| Laufende langlaufende Tasks abfragen oder abbrechen |
| 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 |
|
| Kommagetrennt; Failover über alle angegebenen Hosts |
| – | Einen Authentifizierungsmodus wählen |
|
| TLS |
|
| Retries decken 429/502/503/504 und Verbindungsfehler ab – mit Jitter-Backoff und |
|
| Hauptschalter für alle schreibenden Tools |
|
| Zweites Gate für restore, reindex, put_mapping |
|
| Glob-Allowlist |
|
| Glob-Denylist; Deny hat Vorrang |
|
| Obergrenzen für Treffer (Hits) |
|
| Verhindert Bucket-Explosionen |
|
| Schutz pro Abfrage |
|
| Token-Control |
| nicht gesetzt | JSONL-Protokoll jedes Tool-Aufrufs und -Ergebnisses |
|
| Logs gehen nach stderr, niemals nach stdout (stdio-Transport) |
Sicherheitsmodell
Vier unabhängige Ebenen, die im Fehlerfall zuverlässig blockieren (Fail-closed):
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.
Schreibgeschützt – Schreibende Tools verweigern die Arbeit, sofern nicht
READ_ONLY=falsegesetzt ist.Destruktives Gate – restore, reindex und put_mapping benötigen zusätzlich
ALLOW_DESTRUCTIVE=trueund ein explizitesconfirm=true-Argument im Aufruf selbst.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.
Maintenance
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
- AlicenseBqualityCmaintenanceAn 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.16Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables 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.
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with OpenSearch clusters for searching indices, retrieving mappings, and managing shards through the MCP protocol.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceRead-only MCP server for exploring and searching OpenSearch clusters, enabling log analysis, index exploration, and query execution.MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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