Elasticsearch 7.x MCP Server
An MCP server for Elasticsearch 7.x, providing compatibility with Elasticsearch 7.x versions.
Features
- Provides an MCP protocol interface for interacting with Elasticsearch 7.x
- Supports basic Elasticsearch operations (ping, info, etc.)
- Supports complete search functionality, including aggregation queries, highlighting, sorting, and other advanced features
- Easily access Elasticsearch functionality through any MCP client
Requirements
- Python 3.10+
- Elasticsearch 7.x (7.17.x recommended)
Installation
Installing via Smithery
To install Elasticsearch 7.x MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @imlewc/elasticsearch7-mcp-server --client claude
Manual Installation
pip install -e .
Environment Variables
The server requires the following environment variables:
ELASTIC_HOST: Elasticsearch host address (e.g., http://localhost:9200)ELASTIC_USERNAME: Elasticsearch usernameELASTIC_PASSWORD: Elasticsearch passwordMCP_PORT: (Optional) MCP server listening port, default 9999
Using Docker Compose
- Create a
.envfile and setELASTIC_PASSWORD:
ELASTIC_PASSWORD=your_secure_password
- Start the services:
docker-compose up -d
This will start a three-node Elasticsearch 7.17.10 cluster, Kibana, and the MCP server.
Using an MCP Client
You can use any MCP client to connect to the MCP server:
from mcp import MCPClient
client = MCPClient("localhost:9999")
response = client.call("es-ping")
print(response) # {"success": true}
API Documentation
Currently supported MCP methods:
es-ping: Check Elasticsearch connectiones-info: Get Elasticsearch cluster informationes-search: Search documents in Elasticsearch index
Search API Examples
Basic Search
# Basic search
search_response = client.call("es-search", {
"index": "my_index",
"query": {
"match": {
"title": "search keywords"
}
},
"size": 10,
"from": 0
})
Aggregation Query
# Aggregation query
agg_response = client.call("es-search", {
"index": "my_index",
"size": 0, # Only need aggregation results, no documents
"aggs": {
"categories": {
"terms": {
"field": "category.keyword",
"size": 10
}
},
"avg_price": {
"avg": {
"field": "price"
}
}
}
})
Advanced Search
# Advanced search with highlighting, sorting, and filtering
advanced_response = client.call("es-search", {
"index": "my_index",
"query": {
"bool": {
"must": [
{"match": {"content": "search term"}}
],
"filter": [
{"range": {"price": {"gte": 100, "lte": 200}}}
]
}
},
"sort": [
{"date": {"order": "desc"}},
"_score"
],
"highlight": {
"fields": {
"content": {}
}
},
"_source": ["title", "date", "price"]
})
Development
- Clone the repository
- Install development dependencies
- Run the server:
elasticsearch7-mcp-server
License
[License in LICENSE file]
Metadata
Release files for iflow-mcp_elasticsearch7-mcp-server 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_elasticsearch7_mcp_server-1.0.0.tar.gz | 27.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_elasticsearch7_mcp_server-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.0 kB
Release files / iflow_mcp_elasticsearch7_mcp_server-1.0.0.tar.gz
| Download URL | iflow_mcp_elasticsearch7_mcp_server-1.0.0.tar.gz |
|---|---|
| Size | 27.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07abcbd5855cfdfc2f1c15f52df4ce4619e715a6f48eeebe07dbae3ba158619c
|
|
BLAKE2b-256 checksum How to use checksums |
bc34c27474ead63043669439231c34eca67891057f1edfa71d705a87c3f55a22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.9
|
Release files / iflow_mcp_elasticsearch7_mcp_server-1.0.0-py3-none-any.whl
| Download URL | iflow_mcp_elasticsearch7_mcp_server-1.0.0-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5140ef4a97c40d39f18141de0ba320731ed62f2650d203e5e7eee25e94cebe0b
|
|
BLAKE2b-256 checksum How to use checksums |
aeb17eee677d48cd81c54ae41595482ac89efcc055ca959c81caf51b012780b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.9
|