A Model Context Protocol (MCP) server implementation that provides Elasticsearch interaction. This server enables searching documents, analyzing indices, and managing cluster through a set of tools.
elasticsearch-mcp-server-2.mp4
list_indices
: List all indices in the Elasticsearch cluster.get_mapping
: Retrieve the mapping configuration for a specific index.get_settings
: Get the settings configuration for a specific index.
search_documents
: Search documents in an index using Elasticsearch Query DSL.
get_cluster_health
: Get health status of the cluster.get_cluster_stats
: Get statistical information about the cluster.
Start the Elasticsearch cluster using Docker Compose:
docker-compose up -d
This will start a 3-node Elasticsearch cluster and Kibana. Default Elasticsearch username elastic
, password test123
.
You can access Kibana from http://localhost:5601.
Add the following configuration to Claude Desktop's config file claude_desktop_config.json
.
Using uvx
will automatically install the package from PyPI, no need to clone the repository locally
{
"mcpServers": {
"elasticsearch-mcp-server": {
"command": "uvx",
"args": [
"elasticsearch-mcp-server"
],
"env": {
"ELASTIC_HOST": "https://localhost:9200",
"ELASTIC_USERNAME": "elastic",
"ELASTIC_PASSWORD": "test123"
}
}
}
}
Using uv
requires cloning the repository locally and specifying the path to the source code.
{
"mcpServers": {
"elasticsearch": {
"command": "uv",
"args": [
"--directory",
"path/to/src/elasticsearch_mcp_server",
"run",
"elasticsearch-mcp-server"
],
"env": {
"ELASTIC_HOST": "https://localhost:9200",
"ELASTIC_USERNAME": "elastic",
"ELASTIC_PASSWORD": "test123"
}
}
}
}
- On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- On Windows:
%APPDATA%/Claude/claude_desktop_config.json
Restart Claude Desktop to load the new MCP server.
Now you can interact with your Elasticsearch cluster through Claude using natural language commands like:
- "List all indices in the cluster"
- "How old is the student Bob?"
- "Show me the cluster health status"
This project is licensed under the Apache License Version 2.0 - see the LICENSE file for details.