mrkeyoor.com_
Tue 01 Sept 16:17 UTC
DatabasesMCP servermeasured 19 Aug 2026

Elasticsearch

Elasticsearch MCP is Elastic's own stdio server that lets an assistant list indices, read mappings and run search queries against an Elasticsearch cluster you already operate. It ships on npm as @elastic/mcp-server-elasticsearch and speaks to your cluster over HTTP with either an API key or basic auth. It is a query client, not a cluster admin tool.

BootDID NOT BOOTWe started it and it never completed initialize: exited with code 1 before initialize completed
Tools0tools/list payload 0 bytes
Context tax~0estimated tokens for the whole tools/list, chars/4 estimate
Resources / prompts / counts returned by resources/list and prompts/list
Measured19 Aug 2026one run of the harness, clean environment, no credentials · how we test

How we started it

npx -y @elastic/mcp-server-elasticsearch
Verdict

Use it only if you already have a cluster URL and an API key ready before the assistant ever launches it, because it will not start without them. When we booted it with a clean environment it exited with code 1 during config parsing, complaining that the Elasticsearch URL cannot be empty and then that the same empty string was an invalid URL format. That is a defensible design: a search client with no cluster is nothing. The cost is that you get no tool list, no capability discovery and no way to evaluate the thing until you have pointed it at real infrastructure.

Use it if

You run an Elasticsearch cluster and want an assistant to draft and run queries against it instead of you hand-writing query DSL
You can mint a read-scoped API key for the assistant, so the worst case is an expensive aggregation rather than a deleted index
Your indices have mappings worth exploring, and you want the model to read the mapping before it guesses at field names
You accept configuring the server per-cluster, since the URL is baked into the environment rather than passed per call

Skip it if

You wanted to see what the tools look like before committing a cluster, since it refuses to complete initialize without a URL
You are on Elastic's hosted search but have no way to issue an API key, which leaves basic auth as your only door
You expected cluster administration such as index lifecycle, node stats or reindexing; this is aimed at querying
You planned to point one assistant session at several clusters, because the connection lives in the environment, not the arguments
You install from npm without pinning, in which case read the deprecation notice below before you wire it into anything

The bill for your context window

Nobody can quote you a Context Tax for this one. The server never completed initialize, so tools/list never happened and the measured token estimate is zero by absence rather than by thrift. Judge that against the batch's heaviest listing, Notion, whose tool schemas alone dwarf the median: you cannot know which side of that line Elasticsearch falls on until you give it a cluster. Reason it out from the shape instead. A search server needs a query tool carrying Elasticsearch query DSL in its schema description, and DSL is verbose, so expect the tool payload to be dominated by one or two entries rather than spread thin across many small ones.

Setup reality

The npm install printed a deprecation notice for @elastic/mcp-server-elasticsearch@0.3.1 saying the package is deprecated and pointing at the GitHub README for how to run v0.4.0 or later, so the plain npx invocation we used is already the old path. Then it read its config and stopped: Elasticsearch URL cannot be empty, path url, followed by an invalid URL format error on the same field. The harness deliberately runs with a clean environment and no secrets, so that failure is expected rather than a bug. To get past it you need the cluster URL in the environment plus one of an API key or a username and password, and for a self-signed cluster certificate you will need the CA path too. Our probe scraped no environment variable names out of stderr, because the server validates a parsed config object and reports field paths instead of the variables that fill them.

Questions people ask

Why did the Elasticsearch MCP server fail to start?

We ran it with an empty environment and it exited with code 1 before initialize, reporting that the Elasticsearch URL cannot be empty and that the empty value was an invalid URL. It validates its configuration at startup rather than at first tool call.

Which environment variables does it need?

At minimum the cluster URL, plus credentials: an API key, or a username and password. Our probe recorded no variable names from stderr because the errors name config fields, not variables, so check the README for the exact names your version expects.

Is the npm package the right way to run it?

Not any more, by Elastic's own account. Installing it surfaced a deprecation notice on version 0.3.1 directing you to the GitHub README for running v0.4.0 or later, so read that before you pin anything into a client config.

Can I let an assistant write queries against production?

Technically yes, and you should think hard first. Give it a read-scoped API key restricted to the indices you care about; a model that guesses at a wide aggregation on a large index costs you cluster time, and one with write scope costs you more than that.

Other databases servers we started

ServerVendorBootsContext tax
ChromaChroma~0 tokens
MongoDBMongoDB~9,462 tokens
MySQLcommunity (benborla29)~100 tokens
PineconePinecone~6,165 tokens
PostgreSQL (archived)Anthropic (archived)~33 tokens
QdrantQdrant~0 tokens
SupabaseSupabase~0 tokens

How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.

← All measured MCP servers