cr7258/elasticsearch-mcp-server
A Model Context Protocol (MCP) server implementation that provides Elasticsearch interaction.
Installation
Claude Desktop
Installation Command
npx -y @smithery/cli install elasticsearch-mcp-server --client claudeConfiguration
{
"mcpServers": {
"elasticsearch-mcp-server": {
"command": "uvx",
"args": [\
"elasticsearch-mcp-server"\
],
"env": {
"ELASTIC_HOST": "https://localhost:9200",
"ELASTIC_USERNAME": "elastic",
"ELASTIC_PASSWORD": "test123"
}
}
}
}Instructions
- 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.
README
Elasticsearch MCP Server
Overview
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.
Demo
elasticsearch-mcp-server-2.mp4
Features
Index Operations
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.
Document Operations
search_documents: Search documents in an index using Elasticsearch Query DSL.
Cluster Operations
get_cluster_health: Get health status of the cluster.get_cluster_stats: Get statistical information about the cluster.
Start Elasticsearch 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.
Usage with Claude Desktop
Option 1: Installing via Smithery
To install Elasticsearch Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install elasticsearch-mcp-server --client claude
Option 2: Using uvx
Using uvx will automatically install the package from PyPI, no need to clone the repository locally. Add the following configuration to Claude Desktop's config file claude_desktop_config.json.
{
"mcpServers": {
"elasticsearch-mcp-server": {
"command": "uvx",
"args": [\
"elasticsearch-mcp-server"\
],
"env": {
"ELASTIC_HOST": "https://localhost:9200",
"ELASTIC_USERNAME": "elastic",
"ELASTIC_PASSWORD": "test123"
}
}
}
}
Option 3: Using uv with local development
Using uv requires cloning the repository locally and specifying the path to the source code. Add the following configuration to Claude Desktop's config file claude_desktop_config.json.
{
"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"
License
This project is licensed under the Apache License Version 2.0 - see the LICENSE file for details.
About
A Model Context Protocol (MCP) server implementation that provides Elasticsearch interaction.