elastic-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ELASTICSEARCH_URL | Yes | Endpoint URL, optionally including a base path. | |
| ELASTICSEARCH_API_KEY | No | Base64 API key; takes precedence over basic auth. | |
| ELASTICSEARCH_PASSWORD | No | Basic-auth password. | |
| ELASTICSEARCH_USERNAME | No | Basic-auth username. | |
| ELASTICSEARCH_TLS_VERIFY | No | Defaults to true; set to false to accept self-signed/invalid certs (dev only). | |
| ELASTICSEARCH_API_VERSION | No | 8, 9, or auto (default). Selects the client major. | |
| ELASTICSEARCH_ENABLE_WRITES | No | Set to true to register the write tools. Off by default. | |
| ELASTICSEARCH_CA_FINGERPRINT | No | SHA-256 fingerprint of the CA certificate. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Run an Elasticsearch search using Query DSL and return the matching hits and aggregations. |
| countA | Count the documents in an index that match an optional Query DSL query. |
| esqlA | Run an ES|QL (Elasticsearch Query Language) query and return the result as column metadata plus row objects. Good for filtering, STATS aggregations, and sorting expressed as a piped query string, e.g. |
| get_documentA | Fetch a single document from an index by its id. |
| list_indicesA | List indices with their health, status, document count, and size (equivalent to _cat/indices). Falls back to the index-level _resolve/index API (names only) when the cluster "monitor" privilege is missing. |
| get_mappingA | Get the field mappings for one or more indices. Falls back to the read-level _field_caps API (field names and types) when the index "view_index_metadata" privilege is missing. |
| get_settingsA | Get the settings for one or more indices. |
| get_aliasesA | List index aliases, optionally filtered by name (equivalent to _cat/aliases). Falls back to the index-level _resolve/index API when the cluster "monitor" privilege is missing. |
| list_shardsA | List the cluster's shards with their primary/replica role, state, document count, store size, and hosting node (equivalent to _cat/shards). The docs and store columns come back null without the cluster "monitor" privilege; there is no lower-privilege source for per-shard rows, so a missing privilege surfaces as an error. |
| cluster_healthB | Get the health of the cluster, optionally scoped to specific indices. |
| cluster_statsA | Get cluster-wide statistics covering indices, nodes, shards, and resource usage. |
| cluster_infoA | Get basic cluster information: name, UUID, and Elasticsearch version (the root endpoint). |
| list_nodesA | List the nodes in the cluster with role, heap, CPU, and load information (equivalent to _cat/nodes). |
| get_kibana_objectA | Fetch a Kibana saved object (visualization, lens, dashboard, index-pattern, search, map, tag, ...) by ":" reference. Decodes the JSON-as-string fields Kibana stores inline (visState, searchSourceJSON, ...) and resolves references[] to the titles of the objects they point at. Reads .kibana_analytics and .kibana directly, so the API key needs read access to those indices. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
The tool set maps cleanly to distinct Elasticsearch endpoints: cluster, nodes, shards, indices, documents, mappings, settings, aliases, and Kibana objects. Search, count, and esql overlap somewhat as query paths, but their descriptions clearly differentiate Query DSL hits/aggregations, simple counts, and ES|QL pipelines.
Naming is mostly predictable: list_* enumerates cluster resources, get_* fetches specific objects or metadata, cluster_* covers cluster-level views, and search/count/esql are self-explanatory actions. The mix of list_/get_ and bare verbs is a minor inconsistency, but it is still readable and not chaotic.
14 tools is well within the ideal range and each tool covers a major Elasticsearch operation area: cluster, nodes, shards, indices, documents, queries, and Kibana. No tool feels redundant or excessive for the apparent read/query/monitoring scope.
As a read/query/monitoring surface, it covers the main workflows: cluster health and stats, node/shards inspection, index metadata, aliases, mappings, documents, multiple query languages, and Kibana saved objects. The obvious gap is the absence of write/management tools such as create, update, or delete, so the server is complete only for read-oriented use.