本文将简单介绍MCP及基于MCP的Elasticsearch MCP Server具备的能力和集成方式。Elasticsearch MCP Server基于Model Context Protocol (MCP)标准,为AI助手(如Claude、Cursor、Cherry Studio)提供了与Elasticsearch数据源直接交互的能力。我们将简单了解MCP的概念、Elasticsearch MCP Server的功能特性,以及其在实际场景中的应用案例。
Github Repository:github.com/awesimon/el...
Demo演示视频:www.bilibili.com/video/BV1yH...
一、Model Context Protocol (MCP) 简介
1.1 MCP是什么?
Model Context Protocol (MCP) 是由 Anthropic 公司开源的一个开放标准,用于标准化应用程序如何向大型语言模型(LLM)提供上下文。它可以被比喻为 AI 应用程序的 USB-C 端口,提供了一种标准化的方式来连接 AI 模型与不同的数据源和工具。
1.2 MCP 总体架构图

MCP 遵循客户端-服务器架构,主要包含以下几个核心组件:
- MCP Hosts:想要通过 MCP 访问数据的程序,如 Claude Desktop、IDE 或 AI 工具
- MCP Clients:与服务器保持 1:1 连接的协议客户端
- MCP Servers:通过标准化的 Model Context Protocol 暴露特定功能的轻量级程序
- Local Data Sources:MCP Server 可以安全访问的计算机文件、数据库和服务
- Remote Services:MCP Server 可以连接的通过互联网可用的外部系统(例如,通过 API)
1.3 Why MCP?
在 MCP 出现之前,AI 助手面临着一个严峻的挑战:即使是最先进的模型也受到与数据隔离的限制,被困在信息孤岛和传统系统后面。每个新的数据源都需要自己的自定义实现,使真正连接的系统难以扩展。MCP 通过提供一个通用的开放标准,用单一协议替代了碎片化的集成,从而解决了这一问题。
MCP 为 AI 应用带来了多方面的优势:
- 标准化接口:开发者可以针对标准协议构建,而不是维护每个数据源的单独连接器
- 灵活性:在 LLM 提供商和供应商之间切换的灵活性
- 安全性:在基础设施内保护数据的最佳实践
- 可扩展性:随着生态系统的成熟,AI 系统将在不同工具和数据集之间保持上下文
- 预构建集成:提供预构建集成列表,LLM 可以直接插入
别的就不废话了,下面介绍下 Elasticsearch MCP Server 能干什么!
二、Elasticsearch MCP Server 介绍
2.1 项目概述
Elasticsearch MCP 是一个基于 Model Context Protocol (MCP) 标准的服务器实现,用于连接 Elasticsearch 数据源与 MCP 客户端(如 Claude Desktop、Cursor、Cherry Studio)。该项目允许用户通过自然语言对话与 Elasticsearch 索引交互,实现了查询、索引等操作。
GitHub Repository: github.com/awesimon/el...
NPM: @awesome-ai/elasticsearch-mcp
2.2 技术架构
Elasticsearch MCP Server 采用了 MCP 的客户端-服务器架构:
- MCP 客户端:如 Claude Desktop 或 Cursor,负责分析用户请求并确定需要执行的 Elasticsearch 操作。
- Elasticsearch MCP Server:作为中间层,接收来自 MCP 客户端的请求,将其转换为 Elasticsearch 操作,并返回结果。
- Elasticsearch 实例:存储和管理数据的后端系统,通过 Elasticsearch MCP Server 与 AI 助手连接。
项目主要使用 TypeScript 开发(占比 97.6%),确保了代码的类型安全和可维护性,同时也有少量的 JavaScript 代码(占比 2.4%)。
2.3 功能特性
Elasticsearch MCP 提供了丰富的功能,支持多种 Elasticsearch 操作:
1)索引管理
list_indices
:列出可用的 Elasticsearch 索引,支持正则表达式create_index
:创建 Elasticsearch 索引,可选设置和映射reindex
:将数据从源索引重新索引到目标索引,支持可选查询和脚本
2)Mapping 管理
get_mappings
:获取特定 Elasticsearch 索引的Mapping结构create_mapping
:为 Elasticsearch 索引创建或更新Mapping及Setting
3)搜索和索引
search
:使用提供的查询 DSL 执行 Elasticsearch 搜索bulk
:批量将数据导入 Elasticsearch 索引
4)集群管理
elasticsearch_health
:获取 Elasticsearch 集群健康状态
5)模板管理
create_index_template
:创建或更新索引模板get_index_template
:获取索引模板信息delete_index_template
:删除索引模板
6)更多功能持续更新中,欢迎各位小伙伴留言或者去Github提issue
2.4 工作原理
Elasticsearch MCP 的工作流程简单而高效:
- MCP 客户端(如 Claude Desktop)分析用户的自然语言请求,确定需要执行的 Elasticsearch 操作
- Elasticsearch MCP Server 执行这些操作(列出索引、获取映射、执行搜索等)
- MCP 客户端处理结果并以用户友好的格式呈现
这种工作流程使得用户可以通过自然语言与 Elasticsearch 交互,无需了解复杂的 Elasticsearch 查询语法或 API 结构。
三、安装与配置
3.1 前提条件
在开始使用 Elasticsearch MCP Server之前,您需要准备以下条件:
- Elasticsearch 实例
- MCP 客户端(如 Claude Desktop、Cursor、Cherry Studio)
3.2 配置MCP客户端
注意:需要安装Node JS!
- 打开您的 MCP 客户端(如 Claude Desktop)
- 进入 Settings > Developer > Edit Config
- 打开
claude_desktop_config.json
并添加新的 MCP Server 配置:
json
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": [
"-y",
"@awesome-ai/elasticsearch-mcp"
],
"env": {
"ES_HOST": "https://company-es-cluster.example.com",
"ES_USERNAME": "elastic",
"ES_PASSWORD": "your-password"
}
}
}
}
3.3 配置选项
Elasticsearch MCP Server 支持多种配置选项,以连接到您的 Elasticsearch:
环境变量 | 描述 | 是否必需 |
---|---|---|
ES_HOST |
Elasticsearch 实例 URL | 是 |
ES_API_KEY |
Elasticsearch API 密钥认证 | 否 |
ES_USERNAME |
Elasticsearch 基本认证用户名 | 否 |
ES_PASSWORD |
Elasticsearch 基本认证密码 | 否 |
ES_CA_CERT |
自定义 CA 证书路径,用于 Elasticsearch SSL/TLS | 否 |
3.4 本地开发
如果您想修改或扩展 MCP Server,可以按照以下步骤进行本地开发:
1) 使用正确的 Node.js 版本
shell
nvm use
2) 安装依赖
shell
npm install
3) 构建项目
shell
npm run build
4) 在 Claude Desktop 应用中本地运行
- 打开 Claude Desktop 应用
- 进入 Settings > Developer > Edit Config
- 打开
claude_desktop_config.json
并添加新的 mcpServers 配置:
json
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": [
"-y",
"@awesome-ai/elasticsearch-mcp"
],
"env": {
"ES_HOST": "http://localhost:9200",
"ES_USERNAME": "elastic",
"ES_PASSWORD": "your-password"
}
}
}
}
5) 使用 MCP Inspector 调试
ini
HOST=your-elasticsearch-url ES_USERNAME=your_username ES_PASSWORD=your_password npm run inspector
看到这个日志说明启动成功
log
Starting MCP inspector...
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀
四、应用案例
4.1 数据探索与分析
场景描述
数据分析师小王需要快速了解公司的订单数据库,但他对 Elasticsearch 的查询语法不太熟悉。通过使用 Elasticsearch MCP,他可以使用自然语言与数据交互。
实现步骤
1)安装与配置
在Cursor、Claude或者Cherry Studio中配置如下:
json
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": [
"-y",
"@awesome-ai/elasticsearch-mcp"
],
"env": {
"ES_HOST": "https://company-es-cluster.example.com",
"ES_USERNAME": "elastic",
"ES_PASSWORD": "your-password"
}
}
}
}
2)数据探索对话
小王可以通过以下自然语言查询来探索数据:
- "我的 Elasticsearch 集群中有哪些索引?"
- "显示 'products' 索引的字段映射"
- "products 索引中最畅销的 10 个产品是什么?"
- "过去一个月中,哪个产品类别的销售额增长最快?"
3)结果分析
Claude 会通过 Elasticsearch MCP Server 执行相应的查询,并以易于理解的格式返回结果,小王可以基于这些结果进行进一步的分析和决策。
价值体现
- 无需学习复杂的 Elasticsearch 查询语法
- 加速数据探索过程
- 降低数据分析的技术门槛
- 提高数据驱动决策的效率
4.2 开发环境中的代码辅助
场景描述
软件开发团队使用 Elasticsearch 存储应用日志和性能指标。开发者小李在 Cursor 编辑器中编写代码时,需要快速查询相关的日志信息来调试问题。
小李可以在编码过程中直接询问:
- "查找包含错误 'NullPointerException' 的最近 20 条日志"
- "用户 ID 12345 在过去 24 小时内遇到了哪些错误?"
- "我们的 API 服务在高峰时段的平均响应时间是多少?"
- "哪个 API 端点的错误率最高?"
4.3 运维监控与告警处理
场景描述
运维团队使用 Elasticsearch 存储系统监控数据和告警信息。运维工程师小张需要快速响应系统告警并进行故障排查。
1)告警处理对话
小张收到系统告警后,可以通过以下查询快速了解情况:
- "显示过去 1 小时内的所有高优先级告警"
- "数据库服务器 db-prod-03 的 CPU 和内存使用情况如何?"
- "哪些服务器的磁盘空间使用率超过 90%?"
- "web-server-cluster 的平均响应时间趋势如何?"
2)故障排查与解决
基于查询结果,小张可以快速定位问题根源,采取相应的修复措施,并验证解决方案的有效性。
价值体现
- 加速故障响应时间
- 提高问题诊断的准确性
- 简化复杂监控数据的解读
- 减少系统停机时间和业务影响
五、总结
Elasticsearch MCP Server 通过实现 Model Context Protocol 标准,成功地搭建了 AI 助手与 Elasticsearch 数据源之间的桥梁。它使得用户可以通过自然语言与 Elasticsearch 交互,无需了解复杂的查询语法,大大降低了使用门槛,提高了数据访问和分析的效率。
在数据驱动决策日益重要的今天,Elasticsearch MCP Server 为企业提供了一种创新的方式,让各个团队都能更便捷地获取和利用 Elasticsearch 中的数据洞察。无论是数据分析师、开发人员、运维工程师还是业务团队,都能从中受益。
参考资源
- Model Context Protocol 官方文档:modelcontextprotocol.io
- Anthropic MCP 介绍:anthropic.com/news/model-...