Elasticsearch MCP Server
The Elasticsearch MCP Server enables natural language interaction with Elasticsearch clusters through MCP Clients, providing these capabilities:
Cluster Management: Check cluster health status with optional index-level details
Index Operations: List indices (with regex filtering), create indices with custom settings/mappings, and reindex data between indices
Mapping Management: Retrieve, create, or update field mappings for specific indices
Search & Data Operations: Perform searches using Elasticsearch Query DSL and bulk import data into indices
Template Management: Create, retrieve, or delete index templates, with support for versioning and priority
Connects to Elasticsearch clusters allowing interaction with indices through natural language, including listing indices, retrieving mappings, performing searches, managing index templates, bulk operations, reindexing data, and monitoring cluster health.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Elasticsearch MCP Servershow me the health status of my Elasticsearch cluster"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Elasticsearch MCP Server
MCP Server for connecting to your Elasticsearch cluster directly from any MCP Client (like Claude Desktop, Cursor).
This server connects agents to your Elasticsearch data using the Model Context Protocol. It allows you to interact with your Elasticsearch indices through natural language conversations.
Demo

Related MCP server: Elasticsearch MCP Server
Feature Overview
Available Features
Cluster Management
elasticsearch_health: Get Elasticsearch cluster health status, optionally including index-level details
Index Operations
list_indices: List available Elasticsearch indices, support regexcreate_index: Create Elasticsearch index with optional settings and mappingsreindex: Reindex data from a source index to a target index with optional query and script
Mapping Management
get_mappings: Get field mappings for a specific Elasticsearch indexcreate_mapping: Create or update mapping structure for an Elasticsearch index
Search & Data Operations
search: Perform an Elasticsearch search with the provided query DSLbulk: Bulk data into an Elasticsearch index
Template Management
create_index_template: Create or update an index templateget_index_template: Get information about index templatesdelete_index_template: Delete an index template
How It Works
The MCP Client analyzes your request and determines which Elasticsearch operations are needed.
The MCP server carries out these operations (listing indices, fetching mappings, performing searches).
The MCP Client processes the results and presents them in a user-friendly format.
Getting Started
Prerequisites
An Elasticsearch instance
Elasticsearch authentication credentials (API key or username/password)
MCP Client (e.g. Claude Desktop, Cursor)
Installation & Setup
Using the Published NPM Package
The easiest way to use Elasticsearch MCP Server is through the published npm package.
Configure MCP Client
Open your MCP Client. See the list of MCP Clients, here we are configuring Claude Desktop.
Go to Settings > Developer > MCP Servers
Click
Edit Configand add a new MCP Server with the following configuration:
{ "mcpServers": { "elasticsearch-mcp": { "command": "npx", "args": [ "-y", "@awesome-ai/elasticsearch-mcp" ], "env": { "ES_HOST": "your-elasticsearch-host", "ES_API_KEY": "your-api-key" } } } }Start a Conversation
Open a new conversation in your MCP Client.
The MCP server should connect automatically.
You can now ask questions about your Elasticsearch data.
Configuration Options
The Elasticsearch MCP Server supports configuration options to connect to your Elasticsearch:
You must provide either an API key or both username and password for authentication.
Environment Variable | Description | Required |
| Your Elasticsearch instance URL(s) - supports single URL or comma-separated multiple URLs (also supports legacy | Yes |
| Elasticsearch API key for authentication (also supports legacy | No |
| Elasticsearch username for basic authentication (also supports legacy | No |
| Elasticsearch password for basic authentication (also supports legacy | No |
| Path to custom CA certificate for Elasticsearch SSL/TLS (also supports legacy | No |
Multiple URLs Configuration
You can configure multiple Elasticsearch nodes for high availability and load balancing:
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": [
"-y",
"@awesome-ai/elasticsearch-mcp"
],
"env": {
"ES_HOST": "https://es-node1:9200,https://es-node2:9200,https://es-node3:9200",
"ES_API_KEY": "your-api-key"
}
}
}
}The client will automatically handle failover and load balancing between the configured nodes.
Local Development
If you want to modify or extend the MCP Server, follow these local development steps.
Use the correct Node.js version
nvm useInstall Dependencies
npm installBuild the Project
npm run buildRun locally in Claude Desktop App
Open Claude Desktop App
Go to Settings > Developer > MCP Servers
Click
Edit Configand add a new MCP Server with the following configuration:
{ "mcpServers": { "elasticsearch-mcp": { "command": "node", "args": [ "/path/to/your/project/dist/index.js" ], "env": { "ES_HOST": "your-elasticsearch-host", "ES_API_KEY": "your-api-key" } } } }Run locally in Cursor Editor
Open Cursor Editor
Go to Cursor Settings > MCP
Click
Add new global MCP Serverand add a new MCP Server with the following configuration:
{ "mcpServers": { "elasticsearch-mcp": { "command": "node", "args": [ "/path/to/your/project/dist/index.js" ], "env": { "ES_HOST": "your-elasticsearch-host", "ES_API_KEY": "your-api-key" } } } }Debugging with MCP Inspector
ES_HOST=your-elasticsearch-url ES_API_KEY=your-api-key npm run inspectorThis will start the MCP Inspector, allowing you to debug and analyze requests. You should see:
Starting MCP inspector... βοΈ Proxy server listening on port 6277 π MCP Inspector is up and running at http://127.0.0.1:6274 π
Example Queries
Here are some natural language queries you can try with your MCP Client.
Cluster Management
"What is the health status of my Elasticsearch cluster?"
"How many active nodes are in my cluster?"
Index Operations
"What indices do I have in my Elasticsearch cluster?"
"Create a new index called 'users' with 3 shards and 1 replica."
"Reindex data from 'old_index' to 'new_index'."
Mapping Management
"Show me the field mappings for the 'products' index."
"Add a keyword type field called 'tags' to the 'products' index."
Search & Data Operations
"Find all orders over $500 from last month."
"Which products received the most 5-star reviews?"
"Bulk import these customer records into the 'customers' index."
Template Management
"Create an index template for logs with pattern 'logs-*'."
"Show me all my index templates."
"Delete the 'outdated_template' index template."
If you encounter issues, feel free to open an issue on the GitHub repository.
Available Tools
11 toolsbulkD
Bulk data into an Elasticsearch index
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Target Elasticsearch index name | |
| documents | Yes | Array of documents to import | |
| idField | No | Optional document ID field name, if specified, the value of this field will be used as the document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavior. It only says 'Bulk data', omitting whether it overwrites, appends, error handling, limits, or idempotency. Completely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence), but this brevity sacrifices critical detail. It is not front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or return value information is provided. For a bulk operation, details on success/failure reporting, batch limits, and error handling are missing, leaving the tool incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema covers all parameters with descriptions, the tool description adds no extra meaning. It does not explain how the parameters interact (e.g., how idField is used), offering minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Bulk' as a verb, which is ambiguous and does not clearly specify the action (e.g., indexing, updating). It fails to distinguish from sibling tools like 'index' or 'reindex'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_index, reindex, or search. The description does not mention context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexB
Create an Elasticsearch index, optionally configure settings and mappings
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Name of the Elasticsearch index to create | |
| settings | No | Index settings, such as number of shards and replicas | |
| mappings | No | Index mappings, defining field types, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but only states the action. It does not explain what happens if the index already exists (e.g., error or overwrite), side effects, or authentication/rate limits. The optional settings and mappings are mentioned but no behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the main action. It avoids unnecessary words, though slight expansion would improve clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite moderate complexity (3 params, nested objects, no output schema), the description lacks crucial context such as error handling (e.g., index already exists), success response, and typical use cases. An agent would need additional information to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter's purpose described in the schema. The description adds no extra meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create an Elasticsearch index, optionally configure settings and mappings' uses a specific verb and resource, clearly distinguishing it from siblings like create_index_template or create_mapping. It is unambiguous and directly states the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., create_index_template for templates). There is no mention of prerequisites, such as Elasticsearch cluster availability or required permissions, nor any context for when to use settings vs. mappings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_index_templateB
Create or update an Elasticsearch index template
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the index template | |
| indexPatterns | Yes | Array of index patterns this template applies to | |
| template | Yes | Template configuration including settings, mappings, and aliases | |
| priority | No | Optional template priority - higher values have higher precedence | |
| version | No | Optional template version number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose whether the operation is idempotent, destructive, or has side effects on existing indices. Auth or rate limit information is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded, but could include more useful details without becoming verbose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations. The description lacks information about return values or what 'update' entails. Given the complexity of index templates, the description is insufficient for an agent to understand full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the schema already documents parameters. The description adds no extra meaning beyond the schema, providing only a brief restatement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (create or update) and resource (Elasticsearch index template). It distinguishes from sibling tools like create_index (creates an index) and delete_index_template (deletes a template).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use create vs update, or when this tool is appropriate over alternatives. The description does not specify prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mappingB
Create or update the mapping structure of an Elasticsearch index
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Elasticsearch index name | |
| mappings | Yes | Index mappings, defining field types, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose whether the operation is destructive or merges with existing mappings. The term 'create or update' is ambiguous; it is unclear if existing mappings are replaced or added to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. It is concise but could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should explain return values, error cases, or idempotency. It does not cover these, leaving the agent underinformed about the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for both parameters. The description does not add additional meaning beyond what the schema already provides, so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action 'Create or update' and the resource 'mapping structure of an Elasticsearch index'. It clearly distinguishes from sibling tools like 'create_index' (which creates an index) and 'get_mappings' (which retrieves mappings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'create_index' or 'get_mappings'. The description mentions 'create or update' but does not specify prerequisites (e.g., index must exist) or when to choose update over creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_index_templateC
Delete an Elasticsearch index template
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the template to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility for behavioral disclosure. It only says 'Delete an Elasticsearch index template' without mentioning irreversibility, permissions, or effects on existing indices.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is too brief to be fully informative. Conciseness is achieved at the expense of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation with no output schema and one parameter, the minimal description fails to convey important context such as irreversibility or required permissions. It feels incomplete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the 'name' parameter. The description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'Elasticsearch index template', uniquely distinguishing it from sibling tools like create_index_template and get_index_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool, prerequisites, or alternatives. The description simply states the action without any contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elasticsearch_healthB
Get the health status of the Elasticsearch cluster, optionally include index-level details
| Name | Required | Description | Default |
|---|---|---|---|
| includeIndices | No | Whether to include index-level details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only states the action. It does not disclose that the operation is read-only, has no side effects, or any authentication or rate limit requirements. For a health check, this minimal disclosure is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence of 12 words, front-loaded with the verb and resource. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately conveys the tool's purpose and parameter, but lacks details on the output (e.g., health status values like green/yellow/red). Given the tool's simplicity and no output schema, a bit more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the lone parameter 'includeIndices', which already explains its purpose. The tool description adds minor context by saying 'optionally include index-level details', but does not significantly extend understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the health status of an Elasticsearch cluster, optionally including index-level details. It uses a specific verb 'get' and a distinct resource, differentiating it from sibling tools like search or bulk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to include index details or what the response indicates. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_templateB
Get information about Elasticsearch index templates
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional template name filter - if omitted, all templates are returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It merely states 'Get information' without describing what information is returned, whether the operation is read-only, or any potential side effects. The agent lacks essential behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the verb and resource. Every word earns its place; there is no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one optional parameter, no output schema), the description covers basic purpose but fails to specify the return format or structure. It is minimally complete but could benefit from additional context about the expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains the 'name' parameter well. The tool description adds no extra semantic meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get information about Elasticsearch index templates' uses a clear verb ('Get') and specific resource ('information about Elasticsearch index templates'). It unambiguously states the tool's function and distinguishes it from sibling tools like create_index_template or delete_index_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_mappings or list_indices. The optional 'name' parameter is mentioned in the schema but not in the description, and there is no indication of typical use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mappingsB
Get field mappings for a specific Elasticsearch index
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Name of the Elasticsearch index to get mappings for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'Get field mappings', implying read-only but not disclosing permissions, side effects, or behavior like error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, front-loaded with the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could mention what the response contains; it is adequate but minimal for a simple get operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'index' has a description; the tool description adds no extra meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and resource 'field mappings' for a specific Elasticsearch index, clearly distinguishing from siblings like create_mapping or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; for example, it doesn't explain how it differs from create_mapping or search in terms of use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indicesA
List all available Elasticsearch indices, support regex
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | No | Optional regex pattern to filter indices by name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description lists indices but does not disclose pagination, performance, or side effects; no annotations to rely on, so the description carries full burden but is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description does not explain return format (e.g., what properties each index entry has), leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions regex support, adding context beyond the schema description for the pattern parameter, which already has 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all Elasticsearch indices with regex support, distinguishing it from sibling tools like search or create_index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives; usage is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reindexB
Reindex data from a source index to a target index
| Name | Required | Description | Default |
|---|---|---|---|
| sourceIndex | Yes | Name of the source Elasticsearch index | |
| destIndex | Yes | Name of the destination Elasticsearch index | |
| query | No | Optional query to filter which documents to reindex | |
| script | No | Optional script to transform documents during reindex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as whether the operation is synchronous, whether it overwrites or appends to the target index, or potential side effects like cluster load.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous information; concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the straightforward nature of reindexing and that all parameters have good schema descriptions, the description is adequate but lacks details on return values (no output schema) and behavioral context (e.g., would benefit from mention of async or copying behavior).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions are clear for all four parameters (100% coverage), so baseline is 3. The description adds minimal value beyond the schema, only restating the overall operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Reindex' and specifies the resource as 'data from a source index to a target index', clearly distinguishing this tool from siblings like 'bulk' (bulk indexing) and 'create_index' (creating an index).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., using search and bulk operations), no prerequisites mentioned (e.g., indices must exist), and no context on performance implications or long-running nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchB
Perform an Elasticsearch search with the provided query DSL. Highlights are always enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Name of the Elasticsearch index to search | |
| queryBody | Yes | Complete Elasticsearch query DSL object that can include query, size, from, sort, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Only mentions highlights are always enabled. No disclosure of read-only nature, error handling, pagination, or required permissions. With no annotations, more behavioral detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main action. No wasted words, though could be expanded with important behavioral notes without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of Elasticsearch searches (query DSL), the description lacks return format, pagination behavior, and error context. Incomplete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes both parameters. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it performs an Elasticsearch search with query DSL, identifying the specific verb and resource. Distinguishes from sibling tools that handle index management, bulk operations, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over siblings (e.g., bulk, list_indices) or when not to use it. Lacks prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct Elasticsearch resource and action (e.g., create_index, create_mapping, search, bulk). There is no overlap or ambiguity; tools are clearly differentiated by their purpose.
Most tools follow a verb_noun pattern with underscores (e.g., create_index, get_mappings). However, 'elasticsearch_health' deviates by starting with a noun instead of a verb, causing a minor inconsistency.
With 11 tools, the server covers a reasonable breadth of Elasticsearch operations (index management, search, mapping, templates) without being excessive. The count fits well within the typical 3-15 range for a focused server.
The tool set lacks essential operations like deleting an index and document-level CRUD (get, delete by ID). While bulk and search are present, agents cannot perform complete lifecycle management, leading to significant gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Make your knowledge agent-ready. One MCP endpoint, 5 connectors, 3 search modes.
Agent-driven search: build, import, tune, search, and score result quality β all over MCP.
Let AI agents query data and act across all your business apps via MCP.
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Related MCP Servers
- AlicenseAqualityAmaintenanceFacilitates interaction with Elasticsearch clusters by allowing users to perform index operations, document searches, and cluster management via a Model Context Protocol server and natural language commands.20303Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables LLMs to interact with Elasticsearch clusters, allowing them to manage indices and execute search queries using natural language.2

Elasticsearch MCP Serverofficial
AlicenseBqualityDmaintenanceConnects Claude and other MCP clients to Elasticsearch data, allowing users to interact with their Elasticsearch indices through natural language conversations.32,174709Apache 2.0- AlicenseBqualityDmaintenanceConnects to Elasticsearch databases using the Model Context Protocol, allowing users to query and interact with their Elasticsearch indices through natural language conversations.416Apache 2.0
Appeared in Searches
- Using an AI Agent for Structured Search and Traversal in a Neo4j Database
- Tools and Components for Visual AI Code Editing and Chat Interfaces
- Servers for Cloud Architecture (AWS) and Platform Engineering with Oauth Integration for Documentation Access
- Natural Language to SQL Conversion and Executing MySQL Queries to Retrieve Data
- How to query a MySQL database
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/awesimon/elasticsearch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server