通过自然语言对话与Elasticsearch索引进行交互

17 次收藏下载次数: 0状态:社区镜像维护者:mcp(Model Context Protocol)仓库类型:镜像最近更新:1 年前
下载命令
点击查看

Elasticsearch MCP Server 镜像文档

1. 镜像概述与主要用途

Elasticsearch MCP Server 是一个基于 Model Context Protocol (MCP) 的 Docker 镜像,主要用途是通过自然语言对话与 Elasticsearch 索引进行交互。用户无需直接编写查询语句,可通过自然语言输入实现对 Elasticsearch 索引的查询、映射获取、分片信息查看等操作,简化与 Elasticsearch 的交互流程。

2. 核心功能与特性

2.1 基本特性

属性详情
Docker 镜像https://hub.docker.com/repository/docker/mcp/elasticsearch
作者https://github.com/elastic
代码仓库https://github.com/elastic/mcp-server-elasticsearch
Dockerfilehttps://github.com/elastic/mcp-server-elasticsearch/blob/v0.4.0/Dockerfile
镜像构建方Docker Inc.
Docker Scout 健康评分
验证签名COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/elasticsearch --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
许可证Apache License 2.0

2.2 提供的工具

该镜像提供以下 5 种工具,用于与 Elasticsearch 交互:

工具名称简短描述
esqlElasticsearch ES
get_mappings获取 ES 索引映射
get_shards获取 ES 分片信息
list_indices列出 ES 索引
searchElasticsearch 搜索 DSL 查询

3. 使用场景与适用范围

适用场景

  • 开发者通过自然语言快速查询 Elasticsearch 索引数据,无需手动编写 ESQL 或搜索 DSL。
  • 数据分析师需要获取索引结构(如映射)、分片状态等元数据时,简化操作流程。
  • 集成到支持 MCP 的 AI 应用(如 Anthropic Claude Desktop)中,作为自然语言与 Elasticsearch 交互的中间层。

适用人群

  • Elasticsearch 开发者
  • 数据分析师
  • AI 应用集成工程师

4. 使用方法与配置说明

4.1 环境变量配置

运行镜像前需配置以下环境变量:

环境变量描述默认值是否必填
ES_URLElasticsearch 服务访问 URLhttp://localhost:9200是
ES_API_KEY访问 Elasticsearch 的 API 密钥-是

4.2 Docker 运行命令示例

通过以下命令启动容器,以标准输入输出(stdio)模式运行:

bash
docker run -i --rm \
  -e ES_URL="http://localhost:9200" \
  -e ES_API_KEY="your-api-key" \
  docker.xuanyuan.run/mcp/elasticsearch stdio

参数说明:

  • -i:保持标准输入打开,支持交互模式。
  • --rm:容器退出后自动删除,避免残留。
  • -e:设置环境变量(ES_URL 和 ES_API_KEY)。
  • stdio:指定 MCP 服务器以标准输入输出模式运行,用于与外部应用通信。

4.3 MCP 配置示例

在支持 MCP 的应用(如 Docker Compose 或 AI 应用配置)中,可通过以下 JSON 配置集成该镜像:

json
{
  "mcpServers": {
    "elasticsearch": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ES_URL",
        "-e",
        "ES_API_KEY",
        "mcp/elasticsearch",
        "stdio"
      ],
      "env": {
        "ES_URL": "http://localhost:9200",
        "ES_API_KEY": "your-api-key"
      }
    }
  }
}

5. 工具详细说明

5.1 esql

功能:执行 Elasticsearch ES|QL 查询。

参数名类型描述
querystring完整的 Elasticsearch ES

该工具为只读,不会修改环境。

5.2 get_mappings

功能:获取指定 Elasticsearch 索引的字段映射。

参数名类型描述
indexstring需获取映射的 Elasticsearch 索引名称

该工具为只读,不会修改环境。

5.3 get_shards

功能:获取所有或指定索引的分片信息。

参数名类型描述
indexstring(可选)可选,需获取分片信息的索引名称

该工具为只读,不会修改环境。

5.4 list_indices

功能:列出所有可用的 Elasticsearch 索引。

参数名类型描述
index_patternstring用于筛选索引的模式(如 log-*)

该工具为只读,不会修改环境。

5.5 search

功能:通过提供的查询 DSL 执行 Elasticsearch 搜索。

参数名类型描述
indexstring需搜索的 Elasticsearch 索引名称
query_bodyobject完整的 Elasticsearch 查询 DSL 对象(可包含 query、size、from、sort 等)
fieldsarray(可选)需返回的字段列表(可选)

该工具为只读,不会修改环境。

6. 安全与验证

6.1 镜像签名验证

通过以下命令验证镜像签名,确保镜像完整性:

bash
COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/elasticsearch --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub

6.2 为什么使用 Docker 运行更安全?

Docker 容器提供隔离环境,限制 MCP 服务器对主机系统的访问,降低潜在安全风险。详情参考:https://www.docker.com/blog/the-model-context-protocol-simplifying-building-ai-apps-with-anthropic-claude-desktop-and-docker/

7. 许可证

本镜像基于 Apache License 2.0 许可证开源,详情参见 https://www.apache.org/licenses/LICENSE-2.0。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表。

轩辕镜像加速拉取命令点我查看更多 elasticsearch 镜像标签

docker pull docker.xuanyuan.run/mcp/elasticsearch:<标签>

DockerHub 原生拉取命令

docker pull mcp/elasticsearch:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告