elasticsearch-mcp-server

io.github.cr7258/elasticsearch-mcp-server

About elasticsearch-mcp-server

elasticsearch-mcp-server is an MCP server published by the GitHub account cr7258. MCP server for interacting with Elasticsearch

It runs on your own machine: your AI client starts it from the PyPI package elasticsearch-mcp-server at version 2.0.15.

It asks for 2 secrets: ELASTICSEARCH_API_KEY and ELASTICSEARCH_PASSWORD. Give it a key with the least access that still works.

Version 2.0.15 was published on 15 September 2025, and the source code is public, so you can read it before installing.

Written from the registry entry. 9 automated checks on the registry entry and the package code: 7 pass, 0 warn, 0 fail, 2 info. How we check.

What it asks for

VariableRequiredSecretDescription
ELASTICSEARCH_HOSTSNoNoComma-separated list of Elasticsearch hosts (e.g., https://localhost:9200)
ELASTICSEARCH_API_KEYNoYesAPI key for Elasticsearch or Elastic Cloud authentication (recommended)
ELASTICSEARCH_USERNAMENoNoUsername for basic authentication (alternative to API key)
ELASTICSEARCH_PASSWORDNoYesPassword for basic authentication (used with ELASTICSEARCH_USERNAME)
ELASTICSEARCH_VERIFY_CERTSNoNoWhether to verify SSL certificates (true/false)

Checks

CheckResultDetail
Source repository linkedPasshttps://github.com/cr7258/elasticsearch-mcp-server
Version pinnedPassEvery package has an explicit version
Secrets requestedInfoAsks for 2 secrets: ELASTICSEARCH_API_KEY, ELASTICSEARCH_PASSWORD
Known package registryPassAll packages come from npm, PyPI, OCI, NuGet or MCPB
Namespace ownershipInfoName verified via GitHub account cr7258
Registry text aimed at the AIPassDescription and settings contain no hidden characters or instructions to the AI
Install scriptsPasselasticsearch-mcp-server 2.0.15 has no setup.py; nothing runs at install
Code red flagsPassRead 39 files in elasticsearch-mcp-server 2.0.15: no obfuscation, encoded execution, credential reads or data-collection endpoints found
Text aimed at the AIPassNo hidden characters or instructions to the AI in 39 files, including comments and the README

Code review: Pass, with notes

We read all 867 lines in 22 files of elasticsearch-mcp-server 2.0.15 on 2026-10-31, without running it.

Lets an AI search and manage an Elasticsearch or OpenSearch cluster you point it at; it talks only to that cluster. Watch out: it skips TLS certificate checks unless you set VERIFY_CERTS=true, and it includes delete tools and a raw API tool with no read-only switch, so use a limited-permission account.

What we found

  • Note TLS certificate verification is OFF by default (VERIFY_CERTS defaults to 'false') and the insecure-request warnings are silenced, so credentials can be intercepted on a hostile network unless the user sets *_VERIFY_CERTS=true. src/clients/__init__.py:28 + src/clients/base.py:28-39
  • Note Destructive tools (delete_index, delete_document, delete_by_query, delete_data_stream, delete_alias) are always registered; this version has no read-only mode or confirmation step. src/tools/index.py:36-44, document.py:44-64, data_stream.py:37-47, alias.py:36-45
  • Note general_api_request lets the AI send any HTTP method to any path on the configured cluster (e.g. cluster settings, snapshot deletes). The base URL is fixed, so it cannot reach other hosts. src/tools/general.py:9-20
  • Note load_dotenv() reads a .env from whatever directory the server is started in. src/clients/__init__.py:19
  • Info HTTP transports bind 127.0.0.1 by default (safe); there is no auth on the MCP endpoint if the user binds wider. src/server.py:90-92
  • Info No pyproject/METADATA in the reviewed copy; dependencies are taken from imports. No obfuscation, install hooks, dynamic code, or hard-coded secrets. package
  • Info lines_read (867) is the real line count of every file (Read tool / splitlines). The manifest's 886 counts one extra empty 'line' after the trailing newline of 19 files; no file or line was skipped. manifest.tsv
Talks toELASTICSEARCH_HOSTS / OPENSEARCH_HOSTS (default https://localhost:9200): search queries, documents, index/alias/data-stream operations, and arbitrary REST calls from general_api_request, with basic auth or ApiKey header (only when a tool is called (client objects are created at startup but do not send until used))
Keys and settingsELASTICSEARCH_HOSTS / OPENSEARCH_HOSTS: local (target cluster URLs)
ELASTICSEARCH_USERNAME / ELASTICSEARCH_PASSWORD (or OPENSEARCH_*): the configured cluster (basic auth)
ELASTICSEARCH_API_KEY / OPENSEARCH_API_KEY: the configured cluster (Authorization: ApiKey)
ELASTICSEARCH_VERIFY_CERTS / OPENSEARCH_VERIFY_CERTS: local (TLS setting, default false)
Files on your machineCalls load_dotenv(), so a .env file in the working directory is read into the environment. No other file reads or writes.
Runs programsNone. No subprocess, eval or exec.
TelemetryNone.
Toolslist_indices, get_index, create_index, delete_index, search_documents, index_document, get_document, delete_document, delete_by_query, get_cluster_health, get_cluster_stats, list_aliases, get_alias, put_alias, delete_alias, create_data_stream, get_data_stream, delete_data_stream, general_api_request
Tool descriptionsclean

This covers the package's own code only, not the 7 packages it depends on (fastmcp, mcp, elasticsearch, opensearch-py (opensearchpy), httpx, python-dotenv, urllib3 (optional import)). A new version drops this review until we read it again.

Popularity & health: 76 / 100

Worked out from public numbers and our own checks, not from user reviews or ratings. It says how used and how looked-after a server is, not whether it is safe.

Popularity24 / 40

314 GitHub stars, 1,924 downloads last week, 0 Hacker News posts (0 points). Best two of the three, each on a log scale.

Activity22 / 25

Last push 2026-10-19, last release 2026-10-19, 14 commits in 90 days.

Issue health10 / 15

16 closed of 24 issues.

Our checks20 / 20

0 warnings, each costing a fifth.

67 forks, 46 merged pull requests. Sources: GitHub, npm, PyPI (pypistats.org) and Hacker News (Algolia), fetched 2026-10-31.

What people say

No Hacker News threads link to its source code.

Look further: search Reddit, search Hacker News, read its GitHub issues. These are not reviews we checked.

Facts

Registry nameio.github.cr7258/elasticsearch-mcp-server
PublisherGitHub account cr7258
How the name is verifiedName verified via GitHub account cr7258. The registry ties the name prefix to that account or domain; it does not check the code.
TypeLocal: runs on your machine from a package
Packagespypi elasticsearch-mcp-server 2.0.15 (stdio)
Version2.0.15
Published
Last updated
Source repositoryhttps://github.com/cr7258/elasticsearch-mcp-server
WebsiteNone linked
CategoryDatabases & data (assigned by keyword rule, not by hand)

Related servers in Databases & data