Install elasticsearch-mcp-server from PyPI
Install exact version 2.1.3. The executable name has not been verified, so it is intentionally not guessed.
python -m pip install 'elasticsearch-mcp-server==2.1.3'Facilitates 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
Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.
Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.
Install exact version 2.1.3. The executable name has not been verified, so it is intentionally not guessed.
python -m pip install 'elasticsearch-mcp-server==2.1.3'Clone the canonical public repository, then follow its version-specific setup documentation.
git clone https://github.com/cr7258/elasticsearch-mcp-server| Canonical slug | elasticsearch-mcp-server-f0629b3b | Deployment | Local Only |
|---|---|---|---|
| Canonical package | pypi:elasticsearch-mcp-server | Repository | https://github.com/cr7258/elasticsearch-mcp-server |
| First published | May 22, 2026 | Latest release | Aug 16, 2026 |
| Last security verification | — | Classification confidence | 90% |
| Publication | Draft | Official distribution | Not verified |
| Channel | Identifier | Current version | Versions | Source |
|---|---|---|---|---|
| pypi | elasticsearch-mcp-server | 2.1.3 | 2 | Repository |
| Package | Version | Published / observed | Inventory | Security scan |
|---|---|---|---|---|
| pypielasticsearch-mcp-server | 2.1.3Current | Aug 16, 2026 | 20 toolsSucceeded · 0 resources · 0 prompts | Evidence restricted |
Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.
No public current-version evidence is available yet.
| Tool | Category | Annotations | Risk |
|---|---|---|---|
analyze_textAnalyze 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.
cluster: Optional cluster name. Uses the default cluster if omitted.
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.Input schema{
"properties": {
"text": {
"type": "string"
},
"index": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"analyzer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"tokenizer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"filter": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"char_filter": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"explain": {
"default": false,
"type": "boolean"
},
"attributes": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"text"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
create_data_streamCreate 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
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"name": {
"type": "string"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"name"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
create_indexCreate a new index.
Args:
index: Name of the index
body: Optional index configuration including mappings and settings
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"body": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
delete_aliasDelete an alias for a specific index.
Args:
index: Name of the index
name: Name of the alias
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"name": {
"type": "string"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index",
"name"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
delete_by_queryDeletes documents matching the provided query.
Args:
index: Name of the index
body: Query to match documents for deletion
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"body": {
"additionalProperties": true,
"type": "object"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index",
"body"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
delete_data_streamDelete 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.
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"name": {
"type": "string"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"name"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
delete_documentDelete a document by ID.
Args:
index: Name of the index
id: Document ID
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"id": {
"type": "string"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index",
"id"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
delete_indexDelete an index.
Args:
index: Name of the index
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
general_api_requestPerform 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
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"method": {
"type": "string"
},
"path": {
"type": "string"
},
"params": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"body": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"method",
"path"
],
"type": "object"
} | — | — | |
get_aliasGet alias information for a specific index.
Args:
index: Name of the index
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
get_cluster_healthReturns basic information about the health of the cluster.
Args:
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
get_cluster_statsReturns high-level overview of cluster statistics.
Args:
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
get_data_streamGet 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.
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
get_documentGet a document by ID.
Args:
index: Name of the index
id: Document ID
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"id": {
"type": "string"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index",
"id"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
get_indexReturns information (mappings, settings, aliases) about one or more indices.
Args:
index: Name of the index
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
index_documentCreates or updates a document in the index.
Args:
index: Name of the index
document: Document data
id: Optional document ID
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"document": {
"additionalProperties": true,
"type": "object"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index",
"document"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
list_aliasesList all aliases.
Args:
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"type": "object"
}Output schema{
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
} | — | — | |
list_indicesList all indices.
Args:
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"type": "object"
}Output schema{
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
} | — | — | |
put_aliasCreate or update an alias for a specific index.
Args:
index: Name of the index
name: Name of the alias
body: Alias configuration
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"name": {
"type": "string"
},
"body": {
"additionalProperties": true,
"type": "object"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index",
"name",
"body"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — | |
search_documentsSearch for documents.
Args:
index: Name of the index
body: Search query
cluster: Optional cluster name. Uses the default cluster if omitted.Input schema{
"properties": {
"index": {
"type": "string"
},
"body": {
"additionalProperties": true,
"type": "object"
},
"cluster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"index",
"body"
],
"type": "object"
}Output schema{
"additionalProperties": true,
"type": "object"
} | — | — |
| Endpoint | Transport | Authentication | Health | Observed |
|---|---|---|---|---|
| No verified remote endpoint is linked. | ||||
Install the selected package version with: python -m pip install 'elasticsearch-mcp-server==2.1.3'
Elasticsearch MCP Server exposed 20 tools during independent protocol observation, including analyze_text, create_data_stream, create_index, delete_alias, delete_by_query, delete_data_stream, delete_document, delete_index, and others.
The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.
Curated product and capability guides containing this catalog record.