Elastic MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level | info |
| ELASTIC_URL | Yes | Elasticsearch cluster URL | |
| ELASTIC_TIMEOUT | No | Request timeout in ms | 30000 |
| ELASTIC_PASSWORD | No | Basic auth password | |
| ELASTIC_USERNAME | No | Basic auth username | |
| ELASTIC_API_KEY_ID | No | API key ID (alternative to encoded) | |
| ELASTIC_API_KEY_SECRET | No | API key secret (use with ID) | |
| ELASTIC_API_KEY_ENCODED | No | Pre-encoded API key (base64) | |
| ELASTIC_SKIP_SSL_VERIFY | No | Skip SSL verification | false |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchC | Execute a search query using Elasticsearch Query DSL. Supports full-text search, filters, aggregations, and sorting. |
| esql_queryC | Execute an ES|QL query for data analysis. ES|QL is a piped query language for filtering, transforming, and aggregating data. |
| get_documentC | Retrieve a specific document by its ID from an index. |
| countC | Count documents in an index that match a query. |
| msearchB | Execute multiple search queries in a single request for efficiency. |
| list_usersB | List all users in the Elasticsearch security realm. |
| get_userB | Get detailed information about a specific user. |
| create_userC | Create a new user with specified roles and permissions. |
| delete_userA | Delete a user from Elasticsearch. This action cannot be undone. |
| set_user_enabledC | Enable or disable a user account. |
| list_rolesB | List all roles defined in Elasticsearch. |
| get_roleC | Get detailed information about a specific role. |
| create_roleC | Create or update a role with specified cluster and index privileges. |
| delete_roleC | Delete a role from Elasticsearch. |
| list_api_keysB | List API keys. Can filter by owner, name, or realm. |
| create_api_keyC | Create a new API key for authentication. |
| invalidate_api_keyC | Invalidate one or more API keys. |
| get_privilegesB | Get the privileges for the current authenticated user. |
| has_privilegesC | Check if the current user has specific cluster or index privileges. |
| authenticateB | Get information about the currently authenticated user. |
| list_indicesB | List all indices in the cluster with their health, status, and document counts. |
| get_indexB | Get detailed information about a specific index including settings and mappings. |
| get_mappingsC | Get the field mappings for an index. |
| get_settingsC | Get the settings for an index. |
| create_indexC | Create a new index with optional settings, mappings, and aliases. |
| delete_indexA | Delete an index. WARNING: This permanently deletes all data in the index. |
| refresh_indexC | Refresh an index to make recent changes available for search. |
| get_index_statsB | Get statistics for one or more indices including document counts, storage, and operations. |
| get_aliasesC | Get index aliases. |
| cluster_healthB | Get the health status of the Elasticsearch cluster including node counts, shard status, and overall health. |
| cluster_statsB | Get comprehensive cluster statistics including indices, nodes, and resource usage. |
| cluster_infoB | Get basic cluster information including version and build details. |
| nodes_infoB | Get information about cluster nodes including roles, JVM settings, and plugins. |
| nodes_statsB | Get statistics for cluster nodes including CPU, memory, disk, and index operations. |
| pending_tasksB | Get a list of pending cluster-level tasks. |
| allocation_explainA | Explain why a shard is unassigned or why it remains on its current node. |
| get_shardsC | Get detailed shard allocation information. |
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 37 tools
Most tools have distinct purposes targeting specific resources like indices, users, roles, or cluster operations, with clear boundaries. However, some overlap exists between cluster_info and cluster_stats (both provide cluster information), and between get_index and get_index_stats (both retrieve index details), which could cause minor confusion but descriptions help differentiate them.
Tool names follow a highly consistent snake_case pattern with clear verb_noun conventions throughout, such as create_index, delete_user, list_roles, and get_document. There are no deviations in naming style, making the set predictable and readable.
With 37 tools, the count feels heavy for an Elasticsearch server, bordering on excessive. While Elasticsearch has a broad API surface, this many tools may overwhelm agents and could be streamlined by grouping related operations or omitting less critical ones, though it's not extreme.
The tool set provides comprehensive coverage of Elasticsearch's core domains, including CRUD operations for indices, documents, users, roles, and API keys, along with cluster management, search, and monitoring. There are no obvious gaps; all major workflows are supported, ensuring agents can handle typical tasks without dead ends.