让搜索引擎“更懂你”:AI × Elasticsearch MCP Server 开源实战

本文将简单介绍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 总体架构图

图片来源:cloud.tencent.com/developer/a...

MCP 遵循客户端-服务器架构,主要包含以下几个核心组件:

  1. MCP Hosts:想要通过 MCP 访问数据的程序,如 Claude Desktop、IDE 或 AI 工具
  2. MCP Clients:与服务器保持 1:1 连接的协议客户端
  3. MCP Servers:通过标准化的 Model Context Protocol 暴露特定功能的轻量级程序
  4. Local Data Sources:MCP Server 可以安全访问的计算机文件、数据库和服务
  5. Remote Services:MCP Server 可以连接的通过互联网可用的外部系统(例如,通过 API)

1.3 Why MCP?

在 MCP 出现之前,AI 助手面临着一个严峻的挑战:即使是最先进的模型也受到与数据隔离的限制,被困在信息孤岛和传统系统后面。每个新的数据源都需要自己的自定义实现,使真正连接的系统难以扩展。MCP 通过提供一个通用的开放标准,用单一协议替代了碎片化的集成,从而解决了这一问题。

MCP 为 AI 应用带来了多方面的优势:

  1. 标准化接口:开发者可以针对标准协议构建,而不是维护每个数据源的单独连接器
  2. 灵活性:在 LLM 提供商和供应商之间切换的灵活性
  3. 安全性:在基础设施内保护数据的最佳实践
  4. 可扩展性:随着生态系统的成熟,AI 系统将在不同工具和数据集之间保持上下文
  5. 预构建集成:提供预构建集成列表,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 的客户端-服务器架构:

  1. MCP 客户端:如 Claude Desktop 或 Cursor,负责分析用户请求并确定需要执行的 Elasticsearch 操作。
  2. Elasticsearch MCP Server:作为中间层,接收来自 MCP 客户端的请求,将其转换为 Elasticsearch 操作,并返回结果。
  3. 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 的工作流程简单而高效:

  1. MCP 客户端(如 Claude Desktop)分析用户的自然语言请求,确定需要执行的 Elasticsearch 操作
  2. Elasticsearch MCP Server 执行这些操作(列出索引、获取映射、执行搜索等)
  3. 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 中的数据洞察。无论是数据分析师、开发人员、运维工程师还是业务团队,都能从中受益。

参考资源

相关推荐
毅航2 小时前
以通俗易懂的方式讲解mcp 协议
mcp
justdoit5216 小时前
前端的AI路其之一: MCP与Function Calling
aigc·openai·mcp
jhonroxton7 小时前
使用golang快速构建你的MCP Server
llm·mcp
周末程序猿9 小时前
机器学习|MCP(Model Context Protocol)实战
人工智能·机器学习·mcp
谦行9 小时前
使用 MCP 让企业 Coding 十倍提效
ai编程·mcp
安全方案20 小时前
精品推荐-最新大模型MCP核心架构及最佳实践资料合集(18份).zip
mcp·大模型上下文协议
稳稳C920 小时前
Google A2A协议,是为了战略性占领标准?
人工智能·google·agent·mcp·a2a
大模型真好玩1 天前
不写一行代码! VsCode+Cline+高德地图MCP Server 帮你搞定和女友的出行规划(附原理解析)
人工智能·python·mcp
PetterHillWater1 天前
AI应用-百度地图类MCP体验
mcp