Elasticsearch
Resumen
Descripción del creador (original en inglés)
Elasticsearch MCP Server for ES 5.x-9.x with a query harness, field validation and full API access
Los tres pilares de PopNx MCP
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
- Opinión de usuariosiAún no hay reseñasLas reseñas se abrirán junto con las cuentas en una etapa posterior
- Nuestras revisiones básicasi1 de 1 superadasRevisado con información pública; el código aún no se ha escaneado
- UsoiMuy nuevo↓ 94/sem · ★ –
Qué puedes hacer con él
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
- Conexión: Se ejecuta en tu computadora
- Transporte: stdio, Streamable HTTP
- Categoría: Bases de datos y conjuntos de datos
- Debes completar: ES_URL, ES_API_KEY, ES_PASSWORD
Instalación
Elige la app de IA que usas y copia la configuración.
Antes de instalar
- Revisiones básicas: 1 de 1 superadas
- Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
- Debes completar tú:
ES_URL,ES_API_KEY,ES_USERNAME,ES_PASSWORD,ES_CA_CERT,NODE_TLS_REJECT_UNAUTHORIZED,MAX_TOKEN_CALL
Los valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
- npmNode.js instalado (para el comando npx)
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"elasticsearch": {
"command": "npx",
"args": [
"-y",
"@tocharianou/elasticsearch-mcp"
],
"env": {
"ES_URL": "your-value",
"ES_API_KEY": "your-value",
"ES_USERNAME": "your-value",
"ES_PASSWORD": "your-value",
"ES_CA_CERT": "your-value",
"NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
"MAX_TOKEN_CALL": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add elasticsearch --env ES_URL=your-value --env ES_API_KEY=your-value --env ES_USERNAME=your-value --env ES_PASSWORD=your-value --env ES_CA_CERT=your-value --env NODE_TLS_REJECT_UNAUTHORIZED=your-value --env MAX_TOKEN_CALL=your-value -- npx -y @tocharianou/elasticsearch-mcpCompleta los valores vacíos antes de ejecutarlo.
O copia la configuración tú
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"elasticsearch": {
"command": "npx",
"args": [
"-y",
"@tocharianou/elasticsearch-mcp"
],
"env": {
"ES_URL": "your-value",
"ES_API_KEY": "your-value",
"ES_USERNAME": "your-value",
"ES_PASSWORD": "your-value",
"ES_CA_CERT": "your-value",
"NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
"MAX_TOKEN_CALL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
O copia la configuración tú
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"elasticsearch": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@tocharianou/elasticsearch-mcp"
],
"env": {
"ES_URL": "your-value",
"ES_API_KEY": "your-value",
"ES_USERNAME": "your-value",
"ES_PASSWORD": "your-value",
"ES_CA_CERT": "your-value",
"NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
"MAX_TOKEN_CALL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Valores que debes completar
- Your Elasticsearch instance URL (e.g., https://localhost:9200)
- Elasticsearch API key for authentication
ES_USERNAMEenvElasticsearch username for basic authentication- Elasticsearch password for basic authentication
ES_CA_CERTenvPath to custom CA certificate for Elasticsearch SSL/TLSNODE_TLS_REJECT_UNAUTHORIZEDenvSet to '0' to disable SSL certificate validation (development only)MAX_TOKEN_CALLenvMaximum tokens per API call
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Qué puede hacer
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisiones básicasi
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
- ✓ Superada
El creador coincide con el repo
El nombre en el registro se verificó con la cuenta de GitHub TocharianOU, dueña del repo
- … Aún sin revisar
Sigue en mantenimiento
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
Tiene licencia
Todavía no hemos leído este repo en GitHub
- – No aplica
El endpoint responde
Este se ejecuta en tu computadora; no hay endpoint en internet
- – No aplica
Inicio de sesión con OAuth
Se ejecuta en tu computadora y usa ajustes locales en su lugar
- … Aún sin revisar
Sin instrucciones ocultas en las descripciones de herramientas
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con otros en Bases de datos y conjuntos de datosi
- Más estrellas que el 0% de los otros 1146 servidores de esta categoría
- Publicado en el registro más recientemente que el 62% de los otros 1146 servidores de esta categoría
- Revisiones básicas iguales o mejores que el 100% de los otros 1146 servidores de esta categoría
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Preguntas frecuentes
¿Es seguro Elasticsearch?
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
¿Qué claves o códigos necesita?
Debes completar: ES_URL, ES_API_KEY, ES_PASSWORD
¿Se ejecuta en mi computadora o en la nube?
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
¿Sigue en mantenimiento?
El repo de GitHub cambió por última vez –, y la última versión (0.9.1) llegó al registro hace 28 días.
¿Qué apps pueden usarlo?
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
¿Qué puedo usar en su lugar?
En la misma categoría: Supabase, MongoDB MCP Server, Elasticsearch MCP Server
Alternativas
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
README del creador
Abrir el README
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Elasticsearch MCP Server
Enhanced Elasticsearch MCP Server Solution - Security & Threat Analysis Focused
This is a professional security-focused solution maintained by TocharianOU. It enables comprehensive interaction with all Elasticsearch APIs, specifically optimized for security analysis, threat detection, and incident investigation. Features include advanced security monitoring, anomaly detection, threat hunting, root cause analysis, and comprehensive audit capabilities.
Key Security Features:
- Real-time threat detection and security monitoring
- Advanced machine learning for anomaly detection
- Root cause analysis and attack chain tracking
- Security incident investigation and forensics
- Compliance monitoring and audit reporting
Note: This solution is designed for security professionals, SOC teams, and threat analysts.
Connect to your Elasticsearch data directly from any MCP Client (such as Claude Desktop) using the Model Context Protocol (MCP). Interact with your Elasticsearch security data through natural language queries for advanced threat analysis and incident response.
Prerequisites
- An Elasticsearch instance
- Elasticsearch authentication credentials (API key or username/password)
- MCP Client (e.g. Claude Desktop) or HTTP client for remote access
Multi-Version Elasticsearch Support
Automatically supports Elasticsearch 5.x - 9.x with intelligent version detection:
| Version | Status | Client | Notes | |
|---|---|---|---|---|
| ES 5.x | ✅ | 5.6.22 | EOL - Basic tools only | |
| ES 6.x | ✅ | 6.8.8 | EOL - ILM available (6.6+) | |
| ES 7.x | ✅ | 7.17.14 | LTS - Full features | |
| ES 8.x | ✅ | 8.19.1 | Recommended - Latest features, ES\ | QL (8.11+) |
| ES 9.x+ | ✅ | Auto-fallback | Future-ready |
Key Features:
- Automatic version detection - No manual configuration needed
- Smart client selection - Loads the right client for your ES version
- Adaptive features - Disables unsupported tools (e.g., Data Streams on ES < 7.9, ES|QL on ES < 8.11)
- Version-specific optimizations - Handles API differences transparently
What happens:
Connect → Detect ES version → Load matching client → Register compatible tools
The Query Harness (v0.9.0)
Since v0.9.0 the server ships a query harness: a deterministic layer between the AI model and your cluster. The design philosophy is simple:
The model steers; the harness knows.
Intent ("find failed logins by user") belongs to the model.
Correctness (real field names, aggregatability, version quirks) belongs to the harness.
What this means in practice — at the level of principles, not internals:
- Live truth beats bundled knowledge beats model memory. Every query is checked against the cluster's actual field capabilities before it runs. A bundled ECS (Elastic Common Schema) vocabulary provides *meaning*; the live cluster provides *existence*. The model's own recollection is never trusted.
- Unambiguous mistakes are fixed silently; ambiguous ones become guidance. The classic example: a spurious
.keywordsuffix on modern ECS mappings is auto-corrected (and the correction is reported); an unknown field blocks the doomed query and returns the nearest real fields instead of a provider error. - Field knowledge stays out of the context window. The full ECS dictionary (thousands of fields) lives in process memory. The model retrieves only the handful it needs, on demand, via
lookup_fields. - Every failure must be actionable. Raw Elasticsearch errors are rewritten with live suggestions and index-naming advice (data stream vs. legacy Beats naming, internal indices that should be accessed via Kibana APIs, and so on).
- The model needs zero version knowledge. Naming eras, API differences and mapping-style differences (legacy
text+.keywordsubfield vs. modern barekeyword) are absorbed entirely by the harness. The same model behaves identically against ES 5.6 and ES 9.x — verified by a version test matrix covering nine watershed releases (5.6 → 9.0). - An escape hatch always exists. Validation can be bypassed per call (
skip_lint) when the model knows better — e.g. runtime fields defined outside the query. The harness assists; it never imprisons.
SSL/TLS Connection
To connect to Elasticsearch with a self-signed certificate or in a test environment, you can set the following environment variable:
NODE_TLS_REJECT_UNAUTHORIZED=0
⚠️ This disables Node.js SSL certificate validation. Use only in development or testing environments. For production, always use a trusted CA certificate.
Installation & Setup
Install (or run) the server, point it at your cluster via environment variables, register it in your MCP client, then just start a conversation — the server connects and registers the tools your ES version supports.
Configuration Options
The Elasticsearch MCP Server supports the following configuration options:
Elasticsearch Configuration
| Environment Variable | Description | Required |
|---|---|---|
ES_URL | Your Elasticsearch instance URL | Yes |
ES_API_KEY | Elasticsearch API key for authentication | No |
ES_USERNAME | Elasticsearch username for basic authentication | No |
ES_PASSWORD | Elasticsearch password for basic authentication | No |
ES_CA_CERT | Path to custom CA certificate for Elasticsearch SSL/TLS | No |
NODE_TLS_REJECT_UNAUTHORIZED | Set to 0 to disable SSL certificate validation | No |
Transport Mode Configuration (NEW in v0.3.0)
| Environment Variable | Description | Default | Values |
|---|---|---|---|
MCP_TRANSPORT | Transport mode selection | stdio | stdio, http |
MCP_HTTP_PORT | HTTP server port (when using HTTP transport) | 3000 | 1-65535 |
MCP_HTTP_HOST | HTTP server host (when using HTTP transport) | localhost | Any valid host |
Transport Mode Details:
- Stdio mode (default): For Claude Desktop and local MCP clients
- HTTP Streamable mode: Runs as a standalone HTTP server for remote access, API integration, and web applications
Quick Start
Option 1: NPM Installation (Recommended)
- Install globally via NPM
npm install -g @tocharianou/elasticsearch-mcp
- Run directly
npx @tocharianou/elasticsearch-mcp
Option 2: GitHub Release (Standalone Package)
- Download release package
- Go to GitHub Releases
- Download the latest
.tar.gzfile and its checksum files (.sha256and.sha512)
- Verify package integrity
shasum -a 256 -c elasticsearch-mcp-v*.tar.gz.sha256
Should output: elasticsearch-mcp-v*.tar.gz: OK
- Extract and use
mkdir elasticsearch-mcp && cd elasticsearch-mcp
tar -xzf ../elasticsearch-mcp-v*.tar.gz
Run with your Elasticsearch credentials
ES_URL=https://localhost:9200 ES_API_KEY=your-key node dist/index.js
Option 3: Source Installation
- Clone the repository
git clone https://github.com/TocharianOU/elasticsearch-mcp.git
cd elasticsearch-mcp
- Install Dependencies
npm install
- Build the Project
npm run build
- Configure Claude Desktop App
- Open Claude Desktop App
- Go to Settings > Developer > MCP Servers
- Click
Edit Configand add a new MCP Server with the following configuration:
For NPM Installation:
{
"mcpServers": { "elasticsearch-mcp-server": { "command": "npx", "args": [ "@tocharianou/elasticsearch-mcp" ], "env": { "ES_URL": "your-elasticsearch-url", "ES_USERNAME": "elastic", "ES_PASSWORD": "your_pass", "NODE_TLS_REJECT_UNAUTHORIZED": "0" } } } }
For Source Installation:
{
"mcpServers": { "elasticsearch-mcp-server-local": { "command": "node", "args": [ "/path/to/your/elasticsearch-mcp/dist/index.js" ], "env": { "ES_URL": "your-elasticsearch-url", "ES_USERNAME": "elastic", "ES_PASSWORD": "your_pass", "NODE_TLS_REJECT_UNAUTHORIZED": "0" } } } }
- Debugging with MCP Inspector (optional)
ES_URL=your-elasticsearch-url ES_USERNAME=elastic ES_PASSWORD=your_pass npm run inspector
Installation & Integration Notes
If `npm install -g` misbehaves:
- *Permission errors (
EACCES) on global install* — don'tsudo. Either skip the global install entirely and let your MCP client runnpx @tocharianou/elasticsearch-mcp(npx fetches on demand), or set a user-level prefix:npm config set prefix ~/.npm-globaland add it to yourPATH. - *Slow or blocked registry* — use a mirror for the install only:
npm install -g @tocharianou/elasticsearch-mcp --registry=https://registry.npmmirror.com. - *Node version* — requires Node 18+ (
node --version). Older Node fails at startup with ESM/fetch errors, not at install time. - *
npxcold start* — the firstnpxrun downloads the package; if your MCP client times out on first connect, runnpx @tocharianou/elasticsearch-mcponce in a terminal to warm the cache, then reconnect. - *Fully offline hosts* — use the GitHub Release tarball (Option 2) and point your client at
node /path/to/dist/index.js; nothing is fetched at runtime.
Claude Desktop — Settings → Developer → MCP Servers → Edit Config, then add the JSON block shown above. Restart the app after editing; the server appears in the tools list of a new conversation.
Claude Code (CLI) — register the server per-project or globally:
claude mcp add elasticsearch \
-e ES_URL=https://your-es:9200 -e ES_API_KEY=your-key \ -- npx @tocharianou/elasticsearch-mcp
Any other MCP client / platform integration — run in HTTP mode (MCP_TRANSPORT=http, see below) and point the client at http://host:port/mcp; this is the recommended shape for containerized platforms, one server instance per cluster connection.
Credentials hygiene — the env vars end up in your client's config file in plain text. Prefer a scoped, read-only API key (see *Elasticsearch Access Control* below) over superuser credentials.
Method 3: HTTP Streamable Mode (NEW in v0.3.0)
Run the server as a standalone HTTP service for remote access and API integration:
# Start HTTP server (default port 3000)
MCP_TRANSPORT=http \ ES_URL=your-elasticsearch-url \ ES_USERNAME=elastic \ ES_PASSWORD=your_pass \ npx @tocharianou/elasticsearch-mcp
Or with custom port and host
MCP_TRANSPORT=http \ MCP_HTTP_PORT=9000 \ MCP_HTTP_HOST=0.0.0.0 \ ES_URL=your-elasticsearch-url \ ES_USERNAME=elastic \ ES_PASSWORD=your_pass \ npx @tocharianou/elasticsearch-mcp
**HTTP Streamable
Solo se muestra el principio; lee el resto en el repo