Elasticsearch 7.x 集成
STDIO提供ES 7.x兼容的MCP搜索服务器
提供ES 7.x兼容的MCP搜索服务器
An MCP server for Elasticsearch 7.x, providing compatibility with Elasticsearch 7.x versions.
To install Elasticsearch 7.x MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @imlewc/elasticsearch7-mcp-server --client claude
pip install -e .
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.env
file and set ELASTIC_PASSWORD
:ELASTIC_PASSWORD=your_secure_password
docker-compose up -d
This will start a three-node Elasticsearch 7.17.10 cluster, Kibana, and the MCP server.
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}
Currently supported MCP methods:
es-ping
: Check Elasticsearch connectiones-info
: Get Elasticsearch cluster informationes-search
: Search documents in Elasticsearch index# Basic search search_response = client.call("es-search", { "index": "my_index", "query": { "match": { "title": "search keywords" } }, "size": 10, "from": 0 })
# 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 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"] })
elasticsearch7-mcp-server
[License in LICENSE file]