Elasticsearch MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENSEARCH_HOSTS | No | The OpenSearch server hosts URL | |
| ELASTICSEARCH_HOSTS | No | The Elasticsearch server hosts URL | |
| OPENSEARCH_PASSWORD | No | The OpenSearch password | |
| OPENSEARCH_USERNAME | No | The OpenSearch username | |
| ELASTICSEARCH_PASSWORD | No | The Elasticsearch password | |
| ELASTICSEARCH_USERNAME | No | The Elasticsearch username |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_indicesC | List all indices. |
| get_indexB | Returns information (mappings, settings, aliases) about one or more indices. |
| create_indexC | Create a new index. |
| delete_indexC | Delete an index. |
| search_documentsC | Search for documents. |
| index_documentC | Creates or updates a document in the index. |
| get_documentC | Get a document by ID. |
| delete_documentC | Delete a document by ID. |
| delete_by_queryC | Deletes documents matching the provided query. |
| get_cluster_healthC | Returns basic information about the health of the cluster. |
| get_cluster_statsB | Returns high-level overview of cluster statistics. |
| list_aliasesB | List all aliases. |
| get_aliasC | Get alias information for a specific index. |
| put_aliasC | Create or update an alias for a specific index. |
| delete_aliasC | Delete an alias for a specific index. |
| create_data_streamB | Create a new data stream. This creates a new data stream with the specified name. The data stream must have a matching index template before creation. |
| get_data_streamC | Get information about one or more data streams. Retrieves configuration, mappings, settings, and other information about the specified data streams. |
| delete_data_streamA | Delete one or more data streams. Permanently deletes the specified data streams and all their backing indices. |
| general_api_requestA | Perform a general HTTP API request. Use this tool for any Elasticsearch/OpenSearch API that does not have a dedicated tool. |
| analyze_textB | Analyze text to see how it would be tokenized. Use this tool to understand how Elasticsearch/OpenSearch tokenizes and transforms text using analyzers. This is essential for debugging search queries and understanding why certain documents match or don't match. |
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 20 tools
Each tool targets a clearly distinct resource and action (index, document, alias, data stream, cluster, analysis, or generic API). Overlaps like get_index vs list_indices and get_alias vs list_aliases are cleanly separated by specificity. The general_api_request fallback is explicitly scoped to APIs without dedicated tools, so it does not create real misselection risk.
Tools follow a consistent snake_case verb_noun convention (create_index, delete_document, get_cluster_health, put_alias, etc.). The only minor exception is general_api_request, but it still fits the overall readable naming style. There is no mixing of camelCase or conflicting verb patterns.
At 20 tools, the surface is slightly heavy by the usual 3–15 guideline, but Elasticsearch is a broad domain and each tool covers a meaningful resource area. The set avoids extreme bloat and does not include redundant operations.
Core CRUD and lifecycle coverage exists for indices, documents, aliases, data streams, and cluster inspection, with search and text analysis included. Notable gaps remain—such as dedicated index template management (required for data streams), bulk operations, and update-by-query—but the general_api_request tool provides a workaround for any missing API.