MCP Server for interacting with Elasticsearch
Project description
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
https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15
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
Add the following configuration to Claude Desktop's config file claude_desktop_config.json.
Option 1: Using uvx (Recommended)
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"
}
}
}
}
Option 2: Using uv with local development
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"
License
This project is licensed under the Apache License Version 2.0 - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file elasticsearch_mcp_server-1.0.0.tar.gz.
File metadata
- Download URL: elasticsearch_mcp_server-1.0.0.tar.gz
- Upload date:
- Size: 26.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
130674cdecabb4cfaa6b854c8314261ba4e69e12f46b1a89c3d96fa3ab00d544
|
|
| MD5 |
0203e8c663689d81a84a98baf7cbee0b
|
|
| BLAKE2b-256 |
dcca6e84c094305ebbfaaf519ae6eb9d7cec650d61db812bee48746f79f06ce2
|
File details
Details for the file elasticsearch_mcp_server-1.0.0-py3-none-any.whl.
File metadata
- Download URL: elasticsearch_mcp_server-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
468d7911d136c6208c113c8dcdae64959f94d84ae44544f4e7f0ec4a18d56182
|
|
| MD5 |
7a7a655880836c5aff3c14698add4880
|
|
| BLAKE2b-256 |
ddf67bf812eebb7ccca832ee20cb028ee0e7dd7afe68171fe65702ea586beda9
|