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 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_indices | List all indices. |
| get_index | Returns information (mappings, settings, aliases) about one or more indices. Args: index: Name of the index |
| create_index | Create a new index. Args: index: Name of the index body: Optional index configuration including mappings and settings |
| delete_index | Delete an index. Args: index: Name of the index |
| search_documents | Search for documents. Args: index: Name of the index body: Search query |
| index_document | Creates or updates a document in the index. Args: index: Name of the index document: Document data id: Optional document ID |
| get_document | Get a document by ID. Args: index: Name of the index id: Document ID |
| delete_document | Delete a document by ID. Args: index: Name of the index id: Document ID |
| delete_by_query | Deletes documents matching the provided query. Args: index: Name of the index body: Query to match documents for deletion |
| get_cluster_health | Returns basic information about the health of the cluster. |
| get_cluster_stats | Returns high-level overview of cluster statistics. |
| list_aliases | List all aliases. |
| get_alias | Get alias information for a specific index. Args: index: Name of the index |
| put_alias | Create or update an alias for a specific index. Args: index: Name of the index name: Name of the alias body: Alias configuration |
| delete_alias | Delete an alias for a specific index. Args: index: Name of the index name: Name of the alias |
| create_data_stream | 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. Args: name: Name of the data stream to create |
| get_data_stream | Get information about one or more data streams. Retrieves configuration, mappings, settings, and other information about the specified data streams. Args: name: Name of the data stream(s) to retrieve. Can be a comma-separated list or wildcard pattern. If not provided, retrieves all data streams. |
| delete_data_stream | Delete one or more data streams. Permanently deletes the specified data streams and all their backing indices. Args: name: Name of the data stream(s) to delete. Can be a comma-separated list or wildcard pattern. |
| general_api_request | Perform a general HTTP API request. Use this tool for any Elasticsearch/OpenSearch API that does not have a dedicated tool. Args: method: HTTP method (GET, POST, PUT, DELETE, etc.) path: API endpoint path params: Query parameters body: Request body |
| analyze_text | 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. Args: text: The text to analyze index: Index name to use its configured analyzer. If not specified, uses cluster-level analysis with built-in analyzers only. analyzer: Name of the analyzer to use (e.g., 'standard', 'korean', 'korean_search'). If index is specified, you can use custom analyzers defined in that index. tokenizer: Tokenizer to use for custom analysis chain. Cannot be used together with 'analyzer'. filter: List of token filters to apply (e.g., ['lowercase', 'stop']). Used with 'tokenizer' for custom analysis chain. char_filter: List of character filters to apply before tokenization. Used with 'tokenizer' for custom analysis chain. explain: If True, returns detailed information about each token including all token attributes and filter transformations. Useful for debugging complex analyzer chains. attributes: List of token attributes to return when explain=True (e.g., ['keyword', 'type']). If not specified, all attributes are returned. Returns: Dict containing 'tokens' array. Each token has 'token', 'start_offset', 'end_offset', 'type', and 'position' fields. With explain=True, returns detailed 'detail' object showing each filter's effect. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cr7258/elasticsearch-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server