Elasticsearch MCP服务器
](https://smithery.ai/server/@awesimon/elasticsearch-mcp)
MCP服务器,用于直接从任何MCP客户端(如Claude Desktop、Cursor)连接到Elasticsearch集群。
此服务器使用模型上下文协议将代理连接到您的Elasticsearch数据。它允许您通过自然语言对话与Elasticsearch索引进行交互。
演示

功能概述
可用特征
群集管理
elasticsearch_health:获取Elasticsearch集群健康状态,可选择包括索引级别详细信息
索引操作
list_indices:列出可用的Elasticsearch索引,支持正则表达式create_index:使用可选设置和映射创建Elasticsearch索引reindex:使用可选查询和脚本将数据从源索引重新索引到目标索引
地图管理
get_mappings:获取特定Elasticsearch索引的字段映射create_mapping:为Elasticsearch索引创建或更新映射结构
搜索和数据操作
search:使用提供的查询DSL执行Elasticsearch搜索bulk:将数据批量放入Elasticsearch索引
模板管理
create_index_template:创建或更新索引模板get_index_template:获取有关索引模板的信息delete_index_template:删除索引模板
运作原理
- MCP客户端分析您的请求,并确定需要哪些Elasticsearch操作。
- MCP服务器执行这些操作(列出索引、获取映射、执行搜索)。
- MCP客户端处理结果,并以用户友好的格式呈现。
入门指南
先决条件
- Elasticsearch实例
- Elasticsearch身份验证凭据(API密钥或用户名/密码)
- MCP客户端(例如克劳德桌面、光标)
安装和设置
使用已发布的NPM包
\[!提示\] 使用Elasticsearch MCP Server最简单的方法是通过发布的npm包。
- 配置MCP客户端
- 打开您的MCP客户端。请参阅 MCP客户端列表,这里我们正在配置Claude Desktop。 - 首选 设置>开发人员>MCP服务器 - 点击 Edit Config 并添加具有以下配置的新MCP服务器:
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": [
"-y",
"@awesome-ai/elasticsearch-mcp"
],
"env": {
"ES_HOST": "your-elasticsearch-host",
"ES_API_KEY": "your-api-key"
}
}
}
}- 开始对话
- 在MCP客户端中打开新对话。 - MCP服务器应自动连接。 - 现在,您可以询问有关Elasticsearch数据的问题。
配置选项
Elasticsearch MCP服务器支持配置选项以连接到您的Elasticsearch:
\[!注意\] 您必须提供API密钥或用户名和密码进行身份验证。
| 环境变量 | 描述 | 必填 |
|---|---|---|
ES_HOST | 您的Elasticsearch实例URL-支持单个URL或逗号分隔的多个URL(也支持传统URL HOST) | 是 |
ES_API_KEY | 用于身份验证的Elasticsearch API密钥(也支持遗留 API_KEY) | 没有 |
ES_USERNAME | 用于基本身份验证的Elasticsearch用户名(也支持传统身份验证) USERNAME) | 没有 |
ES_PASSWORD | 用于基本身份验证的Elasticsearch密码(也支持传统密码 PASSWORD) | 没有 |
ES_CA_CERT | Elasticsearch SSL/TLS的自定义CA证书路径(也支持传统CA证书 CA_CERT) | 没有 |
多URL配置
您可以配置多个Elasticsearch节点以实现高可用性和负载平衡:
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": [
"-y",
"@awesome-ai/elasticsearch-mcp"
],
"env": {
"ES_HOST": "https://es-node1:9200,https://es-node2:9200,https://es-node3:9200",
"ES_API_KEY": "your-api-key"
}
}
}
}客户端将自动处理配置节点之间的故障转移和负载平衡。
地方发展
\[!注意\] 如果要修改或扩展MCP服务器,请按照以下本地开发步骤进行操作。
- 使用正确的Node.js版本
nvm use- 再进行
npm install- 构建项目
npm run build- 在Claude桌面应用程序中本地运行
- 打开 Claude桌面应用程序 - 首选 设置>开发人员>MCP服务器 - 点击 Edit Config 并添加具有以下配置的新MCP服务器:
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "node",
"args": [
"/path/to/your/project/dist/index.js"
],
"env": {
"ES_HOST": "your-elasticsearch-host",
"ES_API_KEY": "your-api-key"
}
}
}
}- 在游标编辑器中本地运行
- 打开 光标编辑器 - 首选 光标设置>MCP - 点击 Add new global MCP Server 并添加具有以下配置的新MCP服务器:
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "node",
"args": [
"/path/to/your/project/dist/index.js"
],
"env": {
"ES_HOST": "your-elasticsearch-host",
"ES_API_KEY": "your-api-key"
}
}
}
}- 使用MCP检查器进行调试
ES_HOST=your-elasticsearch-url ES_API_KEY=your-api-key npm run inspector这将启动MCP检查器,允许您调试和分析请求。您应该看到:
Starting MCP inspector...
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀查询示例
\[!提示\] 以下是您可以使用MCP客户端尝试的一些自然语言查询。
群集管理
- “我的Elasticsearch集群的健康状况如何?”
- “我的群集中有多少个活动节点?”
索引操作
- “我的Elasticsearch集群中有哪些索引?”
- “使用3个分片和1个副本创建一个名为'users'的新索引。”
- “将数据从'old_index'重新索引到'new_index'。”
地图管理
- “显示‘products’索引的字段映射。”
- “在‘products’索引中添加一个名为‘tags’的关键字类型字段。”
搜索和数据操作
- “查找上个月所有超过500美元的订单。”
- “哪些产品获得了最多的五星评价?”
- “将这些客户记录批量导入到‘客户’索引中。”
模板管理
- “使用模式'logs-\*'为日志创建索引模板。”
- “显示我的所有索引模板。”
- “删除'outdated_template'索引模板。”
如果您遇到问题,请随时在GitHub存储库上打开问题。

