README
🚀 Elasticsearch 7.x MCP 服务器
本服务器专为 Elasticsearch 7.x 提供 MCP 协议接口,完美支持与 Elasticsearch 7.x 版本兼容,让你轻松访问 Elasticsearch 的各项功能。
🚀 快速开始
本服务器为 Elasticsearch 7.x 提供 MCP 协议接口,支持与该版本兼容。你可以通过 Smithery 自动安装或手动安装,配置好环境变量后,就能使用 MCP 客户端连接服务器进行操作。
✨ 主要特性
- 提供 Elasticsearch 7.x 的 MCP 协议访问接口,方便快捷。
- 支持基础 Elasticsearch 操作,如心跳检测、信息查询等,保障系统稳定运行。
- 完全支持搜索功能,涵盖聚合查询、高亮显示、排序以及其他高级特性,满足多样化的搜索需求。
- 可通过任何 MCP 客户端轻松访问 Elasticsearch 功能,使用灵活。
📦 安装指南
使用 Smithery 自动安装
通过 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
💻 使用示例
使用 Docker Compose
- 创建一个
.env文件并设置ELASTIC_PASSWORD:
ELASTIC_PASSWORD=your_secure_password
- 启动服务:
docker-compose up -d
这将启动一个三节点的 Elasticsearch 7.17.10 集群、Kibana 和 MCP 服务器。
使用 MCP 客户端
你可以使用任何 MCP 客户端连接到 MCP 服务器:
from mcp import MCPClient
client = MCPClient("localhost:9999")
response = client.call("es-ping")
print(response) # {"success": true}
搜索 API 示例
基本搜索
# 基本搜索
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": "<em>",
"post_tag": "</em>",
"fields": {
"title": {},
"content": {}
}
},
"sort": [
{"price": { "order": "asc" }}
]
})
📚 详细文档
开发
在项目根目录下运行以下命令启动服务器:
python -m elasticsearch_mcp_server
默认情况下,服务器将在 http://localhost:9999 启动。
API 文档
当前支持的 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 版本) |
Scan to contact