mcp-server-elasticsearch

GitHub
642 135 中等 1 次阅读 今天Apache-2.0数据工具
AI 解读 由 AI 自动生成,仅供参考

mcp-server-elasticsearch 是一款基于模型上下文协议(MCP)的开源连接器,旨在让 AI 智能体能够直接通过自然语言与 Elasticsearch 数据进行交互。它解决了传统模式下需要编写定制化 API 或复杂查询代码才能检索和分析数据的痛点,使智能体无需额外开发即可执行查询、分析及数据提取任务。

该工具主要面向开发者、数据工程师以及正在构建 AI 应用的研究人员。如果你希望在 Claude Desktop、Cursor 或 VS Code 等环境中,让 AI 助手直接理解并操作你的搜索索引,mcp-server-elasticsearch 提供了便捷的桥梁。其技术亮点在于支持 stdio 和 streamable-HTTP 两种通信协议,既能满足本地客户端的直接调用,也能适应基于 Web 的集成场景;同时,它以 Docker 容器形式交付,简化了部署流程,并兼容 API 密钥等多种认证方式。

需要注意的是,官方已标记此项目为“弃用”状态,未来仅保留关键安全更新,建议新用户关注 Elastic 9.2.0+ 版本中推出的新一代 Elastic Agent Builder MCP 端点以获得更长期的支持。尽管如此,对于现有 8.x 或 9.x 集群的快速集成验证,它依然是一个高效实用的选择。

使用场景

某电商公司的数据分析师需要快速排查近期订单系统的异常波动,并生成简要分析报告。

没有 mcp-server-elasticsearch 时

  • 分析师必须手动编写复杂的 Elasticsearch DSL 查询语句,稍有语法错误就会导致查询失败,排查耗时极长。
  • 每次切换分析维度(如从“地区”切换到“商品类别”)都需要重新修改代码并运行脚本,无法进行流畅的探索式分析。
  • 非技术背景的产品经理想要了解具体数据时,分析师需中断工作专门为其提取数据,沟通与交付成本高昂。
  • 难以将自然语言问题(如“上周哪个地区的退货率最高?”)直接转化为可执行的查询逻辑,依赖人工翻译需求。

使用 mcp-server-elasticsearch 后

  • 分析师直接在 Claude Desktop 或 Cursor 中用自然语言提问,mcp-server-elasticsearch 自动将其转换为精准的 DSL 查询并返回结果。
  • 支持多轮对话式分析,只需追加指令(如“再按支付渠道细分”),mcp-server-elasticsearch 即可即时调整查询逻辑并更新数据视图。
  • 产品经理可直接通过配置的 MCP 客户端自行询问数据细节,mcp-server-elasticsearch 充当了安全的中间层,无需分析师反复介入。
  • 实现了从“人脑翻译需求”到"AI 自动执行”的转变,mcp-server-elasticsearch 让团队能专注于数据洞察而非查询语法调试。

mcp-server-elasticsearch 的核心价值在于打破了自然语言与数据库查询之间的壁垒,让团队成员能以对话方式实时挖掘 Elasticsearch 中的数据金矿。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具已弃用,仅接收关键安全更新,建议迁移至 Elastic Agent Builder。运行环境必须安装 Docker。需要可访问的 Elasticsearch 集群(8.x 或 9.x 版本)。支持通过 stdio 或 streamable-HTTP 协议运行。凭证需通过环境变量传递,生产环境建议使用 AWS Secrets Manager 管理。
python未说明
Docker
mcp-server-elasticsearch hero image

快速开始

Elasticsearch MCP 服务器

[!CAUTION] 此 MCP 服务器已弃用,今后仅会接收关键安全更新。 它已被 Elastic Agent BuilderMCP 端点 取代,该端点在 Elastic 9.2.0+ 和 Elasticsearch Serverless 项目中可用。

使用 Elasticsearch MCP 服务器为 AI 代理提供支持

Elasticsearch MCP 服务器通过 Model Context Protocol (MCP) 将您的 AI 代理与 Elasticsearch 数据连接起来。 它使您能够以自然语言与 Elasticsearch 索引进行交互,允许代理在无需自定义 API 的情况下查询、分析和检索数据。

请按照以下步骤从 AWS Marketplace 部署并配置 Elasticsearch MCP 服务器容器镜像。

开始之前

在开始之前,请确保您具备以下条件:

  • 一个可从您的 AWS 环境访问的 Elasticsearch 集群(版本 8.x 或 9.x)
  • Elasticsearch 身份验证凭据:
  • 在您的 AWS 环境中已安装并运行 Docker(例如,在 EC2 实例上或容器服务中)
  • 已配置好一个 MCP 客户端(如 Claude Desktop、Cursor、VS Code 或其他兼容 MCP 的工具)
  • 您的部署环境与 Elasticsearch 集群之间具有网络连通性

[!NOTE]

本说明适用于 Elasticsearch MCP 服务器 0.4.0 及更高版本。 对于 0.3.1 及更早版本,请参阅 v0.3.1 的 README

部署 Elasticsearch MCP 服务器

Elasticsearch MCP 服务器以 Docker 容器镜像的形式提供,可在 AWS Marketplace 中获取。您可以使用 stdio 协议(用于直接客户端连接)或 streamable-HTTP 协议(用于基于 Web 的集成)来运行它。

选择协议

该服务器支持两种协议:

  • stdio:MCP 客户端与服务器之间的直接通信。当您的客户端支持 stdio 并在同一环境中运行时,请使用此协议。
  • streamable-HTTP:基于 HTTP 的协议,推荐用于 Web 集成、有状态会话以及并发客户端。

注意: 服务器发送事件 (SSE) 已弃用。请改用 streamable-HTTP。

配置 stdio 协议

当您的 MCP 客户端直接连接到服务器进程时,请使用 stdio 协议。

设置 stdio 模式的环境变量

设置以下环境变量:

  • ES_URL:您的 Elasticsearch 集群的 URL(例如,https://your-cluster.es.amazonaws.com:9200
  • 对于身份验证,使用以下选项之一:
    • API 密钥:将 ES_API_KEY 设置为您 Elasticsearch 的 API 密钥
    • 基本身份验证:将 ES_USERNAMEES_PASSWORD 设置为您的 Elasticsearch 凭据
  • (可选)ES_SSL_SKIP_VERIFY:设置为 true 以在连接到 Elasticsearch 时跳过 SSL/TLS 证书验证。仅在开发或测试环境中使用此选项。

以 stdio 模式运行容器

以 stdio 模式启动 MCP 服务器:

docker run -i --rm \
  -e ES_URL \
  -e ES_API_KEY \
  docker.elastic.co/mcp/elasticsearch \
  stdio

配置 Claude Desktop

将此配置添加到您的 Claude Desktop 配置文件中:

{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "ES_URL",
        "-e", "ES_API_KEY",
        "docker.elastic.co/mcp/elasticsearch",
        "stdio"
      ],
      "env": {
        "ES_URL": "<elasticsearch-cluster-url>",
        "ES_API_KEY": "<elasticsearch-API-key>"
      }
    }
  }
}

<elasticsearch-cluster-url> 替换为您的 Elasticsearch 集群 URL,将 <elasticsearch-API-key> 替换为您的 API 密钥。

配置 streamable-HTTP 协议

当您需要进行基于 Web 的集成,或需要支持多个并发客户端时,请使用 streamable-HTTP 协议。

设置 HTTP 模式的环境变量

设置与 stdio 协议相同的环境变量:

  • ES_URL:您的 Elasticsearch 集群的 URL
  • 对于身份验证,使用以下选项之一:
    • API 密钥:将 ES_API_KEY 设置为您 Elasticsearch 的 API 密钥
    • 基本身份验证:将 ES_USERNAMEES_PASSWORD 设置为您的 Elasticsearch 凭据
  • (可选)ES_SSL_SKIP_VERIFY:设置为 true 以在连接时跳过 SSL/TLS 证书验证。

以 HTTP 模式运行容器

以 HTTP 模式启动 MCP 服务器:

docker run --rm \
  -e ES_URL \
  -e ES_API_KEY \
  -p 8080:8080 \
  docker.elastic.co/mcp/elasticsearch \
  http

streamable-HTTP 端点位于 http://<host>:8080/mcp。健康检查端点位于 http://<host>:8080/ping

使用 HTTP 代理配置 Claude Desktop

如果您使用的是仅支持 stdio 协议的 Claude Desktop(免费版),可以使用 mcp-proxy 将 stdio 桥接到 streamable-HTTP:

  1. 安装 mcp-proxy

    uv tool install mcp-proxy
    

    如需其他安装选项,请参阅 mcp-proxy/README.md

  2. 将以下配置添加到 Claude Desktop:

    {
      "mcpServers": {
        "elasticsearch-mcp-server": {
          "command": "/<home-directory>/.local/bin/mcp-proxy",
          "args": [
            "--transport=streamablehttp",
            "--header", "Authorization", "ApiKey <elasticsearch-API-key>",
            "http://<mcp-server-host>:<mcp-server-port>/mcp"
          ]
        }
      }
    }
    

    <home-directory><elasticsearch-API-key><mcp-server-host><mcp-server-port> 替换为您自己的值。

验证连接

配置好您的 MCP 客户端后,请验证连接是否正常工作:

  1. 启动您的 MCP 客户端(例如,Claude Desktop 或 Cursor)。
  2. 检查 Elasticsearch MCP 服务器是否出现在可用的 MCP 服务器列表中。
  3. 通过您的代理界面测试一个简单的查询,以确认它可以访问您的 Elasticsearch 索引。

如果连接失败,请检查:

  • 您的 Elasticsearch 集群 URL 是否正确,并且可以从您的 AWS 环境访问
  • 您的身份验证凭据是否有效,并具有必要的权限
  • 容器与 Elasticsearch 集群之间是否存在网络连通性(检查安全组和网络 ACL)
  • Docker 是否正在运行,容器是否成功启动(使用 docker logs <container-id> 查看容器日志)

监控健康与状态

使用以下方法监控 Elasticsearch MCP 服务器的健康状况和正常运行:

检查容器状态

验证容器是否正在运行:

docker ps | grep elasticsearch-mcp-server

容器应出现在列表中,状态为 Up

测试健康端点(HTTP 模式)

如果您使用的是可流式传输的 HTTP 协议,请测试健康检查端点:

curl http://<host>:8080/ping

成功的响应会返回 pong,表明服务器正在运行且健康。

查看容器日志

查看容器日志以识别任何问题:

docker logs <container-id>

查找与以下内容相关的错误消息:

  • Elasticsearch 连接失败
  • 身份验证错误
  • 网络连接问题

验证 Elasticsearch 连接

从容器内测试与您的 Elasticsearch 集群的连接:

docker exec <container-id> curl -k -u <username>:<password> <ES_URL>

或者使用 API 密钥:

docker exec <container-id> curl -k -H "Authorization: ApiKey <api-key>" <ES_URL>

成功的响应表示容器可以访问您的 Elasticsearch 集群。

安全与敏感信息

Elasticsearch MCP 服务器会安全地处理身份验证凭据:

凭据存储

  • API 密钥和密码:仅存储在传递给容器的环境变量中。它们不会持久化到磁盘或记录到日志中。
  • 环境变量:在运行容器时设置。在生产环境中,请使用 AWS Secrets Manager 或 AWS Systems Manager Parameter Store 来安全管理凭据。

数据加密

  • 传输中:当您的 ES_URL 使用 https:// 协议时,MCP 服务器会通过 HTTPS 与 Elasticsearch 通信。请确保您的 Elasticsearch 集群已启用 SSL/TLS。
  • 静态数据:容器不会在本地存储数据。所有数据都保留在您的 Elasticsearch 集群中,使用集群的加密设置。

最佳实践

  • 定期轮换 API 密钥(生产环境每 30–90 天一次)
  • 使用具有最小必要权限的 API 密钥(尽可能只授予对特定索引的只读访问权限)
  • 切勿将凭据提交到版本控制系统或在日志中共享
  • 使用 AWS Secrets Manager 或 Parameter Store 在运行时注入凭据,而不是将其硬编码。

AWS 服务配额

Elasticsearch MCP 服务器作为容器在您的 AWS 环境中运行。请考虑以下 AWS 服务配额:

  • EC2 实例限制:如果在 EC2 上运行,请确保您的实例类型能够支持预期的工作负载。
  • Elastic Container Service (ECS):如果使用 ECS,请查看 ECS 服务配额
  • Elastic Kubernetes Service (EKS):如果使用 EKS,请查看 EKS 服务配额
  • 网络带宽:确保容器与 Elasticsearch 集群之间的网络带宽充足。

如需申请提高配额,请使用 AWS 服务配额控制台 或参考 AWS 通用参考指南

可用工具

连接成功后,MCP 服务器会向您的代理提供以下工具:

  • list_indices:列出所有可用的 Elasticsearch 索引
  • get_mappings:获取特定 Elasticsearch 索引的字段映射
  • search:使用查询 DSL 执行 Elasticsearch 搜索
  • esql:执行 ES|QL 查询
  • get_shards:获取所有或特定索引的分片信息

您的代理可以使用这些工具,通过自然语言对话与您的 Elasticsearch 数据进行交互。

后续步骤

  • 了解 Elastic 平台中可用的人工智能功能
  • 探索 Agent Builder,使用 Elasticsearch 构建自定义 AI 代理

版本历史

v0.4.62025/10/24
v0.4.52025/07/18
v0.4.42025/07/15
v0.4.32025/07/15
v0.4.22025/07/15
v0.4.12025/07/10
v0.4.02025/07/04
v0.3.12025/07/01
v0.3.02025/06/30
v0.2.02025/06/10
v0.1.12025/04/03
v0.1.02025/04/03

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|4天前
Agent开发框架图像

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|2天前
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|昨天
语言模型数据工具其他

cs-video-courses

cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。

79.8k|★☆☆☆☆|昨天
其他图像数据工具

scikit-learn

scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。 对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。 其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最

65.7k|★☆☆☆☆|昨天
开发框架其他数据工具

keras

Keras 是一个专为人类设计的深度学习框架,旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。 无论是刚入门的学生、专注算法的研究人员,还是需要快速落地产品的工程师,都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。 Keras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码,即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性,还允许开发者根据需求自由选择:利用 JAX 或 PyTorch 的即时执行模式进行高效调试,或切换至速度最快的后端以获得最高 350% 的性能提升。此外,Keras 具备强大的扩展能力,能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群,是连接原型开发与生产部署的理想桥梁。

63.9k|★★☆☆☆|6天前
开发框架数据工具其他