本服务器专为 Elasticsearch 7.x 提供 MCP 协议接口,完美支持与 Elasticsearch 7.x 版本兼容,让你轻松访问 Elasticsearch 的各项功能。
本服务器为 Elasticsearch 7.x 提供 MCP 协议接口,支持与该版本兼容。你可以通过 Smithery 自动安装或手动安装,配置好环境变量后,就能使用 MCP 客户端连接服务器进行操作。
通过 Smithery 自动安装 Elasticsearch 7.x MCP Server for Claude Desktop:
npx -y @smithery/cli install @imlewc/elasticsearch7-mcp-server --client claude
pip install -e .
服务器需要以下环境变量:
ELASTIC_HOST:Elasticsearch 主机地址(例如 http://localhost:9200)ELASTIC_USERNAME:Elasticsearch 用户名ELASTIC_PASSWORD:Elasticsearch 密码MCP_PORT:(可选)MCP 服务器监听端口,默认为 9999.env 文件并设置 ELASTIC_PASSWORD:ELASTIC_PASSWORD=your_secure_password
docker-compose up -d
这将启动一个三节点的 Elasticsearch 7.17.10 集群、Kibana 和 MCP 服务器。
你可以使用任何 MCP 客户端连接到 MCP 服务器:
from mcp import MCPClient
client = MCPClient("localhost:9999")
response = client.call("es-ping")
print(response) # {"success": true}
# 基本搜索
search_response = client.call("es-search", {
"index": "my_index",
"query": {
"match": {
"title": "搜索关键词"
}
},
"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"
}
}
}
})
# 带有高亮和排序的高级搜索
search_response = client.call("es-search", {
"index": "my_index",
"query": {
"multi_match": {
"query": "搜索关键词",
"fields": ["title", "content"]
}
},
"highlight": {
"pre_tag": "",
"post_tag": "",
"fields": {
"title": {},
"content": {}
}
},
"sort": [
{"price": { "order": "asc" }}
]
})
在项目根目录下运行以下命令启动服务器:
python -m elasticsearch_mcp_server
默认情况下,服务器将在 http://localhost:9999 启动。
当前支持的 MCP 方法:
es-ping:检查 Elasticsearch 连接状态es-info:获取 Elasticsearch 集群信息es-search:在 Elasticsearch 索引中搜索文档本项目的授权遵循 MIT License。
| 属性 | 详情 |
|---|---|
| 模型类型 | 为 Elasticsearch 7.x 提供 MCP 协议接口的服务器 |
| 训练数据 | 无 |
| 依赖环境 | Python 3.10+;Elasticsearch 7.x(推荐使用 7.17.x 版本) |