MCP server intelligence profile

Elasticsearch MCP Server

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

Local Onlycr7258
Awaiting current scanPypi · 2.1.3

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

1Distribution channel
20Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.

Install and connect

Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.

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'

Build from source

Clone the canonical public repository, then follow its version-specific setup documentation.

git clone https://github.com/cr7258/elasticsearch-mcp-server

Identity

Canonical slugelasticsearch-mcp-server-f0629b3bDeploymentLocal Only
Canonical packagepypi:elasticsearch-mcp-serverRepositoryhttps://github.com/cr7258/elasticsearch-mcp-server
First publishedMay 22, 2026Latest releaseAug 16, 2026
Last security verificationClassification confidence90%
PublicationDraftOfficial distributionNot verified

Distributions

ChannelIdentifierCurrent versionVersionsSource
pypielasticsearch-mcp-server2.1.32Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
pypielasticsearch-mcp-server2.1.3CurrentAug 16, 202620 toolsSucceeded · 0 resources · 0 promptsEvidence restricted
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

No public current-version evidence is available yet.

Current protocol inventory

2025-06-18Negotiated protocol
elasticsearch-mcp-serverServer-reported name
4Capability groups
Sep 4, 2026Observed

Tools 20

ToolCategoryAnnotationsRisk
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"
}

Resources 0

  • None observed.

Resource templates 0

  • None observed.

Prompts 0

  • None observed.

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

Elasticsearch MCP Server questions

How do I install Elasticsearch MCP Server?

Install the selected package version with: python -m pip install 'elasticsearch-mcp-server==2.1.3'

What tools does Elasticsearch MCP Server provide?

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.

Is Elasticsearch MCP Server secure?

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

Official vs Community MCP Servers

Let’s talk about MCP security.

Share your details and our security team will contact you.