
Elasticsearch 7.x MCP Server

2025.03.24
0
PythonElasticsearch 接口搜索服务数据库
Elasticsearch 7.x MCP Server 是一个为 Elasticsearch 7.x 版本提供兼容性的 MCP 服务器。它通过 MCP 协议接口与 Elasticsearch 7.x 进行交互,支持基本的 Elasticsearch 操作(如 ping、info 等)以及完整的搜索功能,包括聚合查询、高亮显示、排序等高级功能。用户可以通过任何 MCP 客户端轻松访问 Elasticsearch 功能。
View on GitHub
Overview
基本能力
产品定位
Elasticsearch 7.x MCP Server 是一个为 Elasticsearch 7.x 版本提供兼容性的 MCP 服务器,旨在通过 MCP 协议简化与 Elasticsearch 的交互。
核心功能
- 提供 MCP 协议接口与 Elasticsearch 7.x 交互
- 支持基本 Elasticsearch 操作(ping、info 等)
- 支持完整的搜索功能,包括聚合查询、高亮显示、排序等高级功能
- 可通过任何 MCP 客户端轻松访问 Elasticsearch 功能
适用场景
- 需要与 Elasticsearch 7.x 进行交互的应用
- 需要简化 Elasticsearch 操作流程的开发项目
- 需要高级搜索功能(如聚合查询、高亮显示等)的应用
工具列表
- MCP 客户端:用于连接 MCP 服务器并调用 Elasticsearch 功能
常见问题解答
- 需要确保 Elasticsearch 7.x 版本兼容性
- 需要正确设置环境变量(如 ELASTIC_HOST、ELASTIC_USERNAME、ELASTIC_PASSWORD 等)
使用教程
使用依赖
- Python 3.10+
- Elasticsearch 7.x(推荐 7.17.x)
安装教程
通过 Smithery 安装
npx -y @smithery/cli install @imlewc/elasticsearch7-mcp-server --client claude
手动安装
pip install -e .
调试方式
- 确保环境变量正确设置
- 使用 MCP 客户端连接服务器并调用方法,例如:
from mcp import MCPClient
client = MCPClient("localhost:9999")
response = client.call("es-ping")
print(response) # {"success": true}
API 文档
支持的方法:
- es-ping
: 检查 Elasticsearch 连接
- es-info
: 获取 Elasticsearch 集群信息
- es-search
: 在 Elasticsearch 索引中搜索文档
搜索 API 示例
基本搜索
search_response = client.call("es-search", {
"index": "my_index",
"query": {
"match": {
"title": "search keywords"
}
},
"size": 10,
"from": 0
})
聚合查询
agg_response = client.call("es-search", {
"index": "my_index",
"size": 0, # 仅需要聚合结果,不需要文档
"aggs": {
"categories": {
"terms": {
"field": "category.keyword",
"size": 10
}
},
"avg_price": {
"avg": {
"field": "price"
}
}
}
})
高级搜索
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"]
})