Elasticsearch MCP Server - 官方搜索引擎集成

Elasticsearch MCP Server - 官方搜索引擎集成

简介

Elasticsearch MCP Server 是 Elastic 官方推出的 Model Context Protocol 服务器实现,为 AI 应用提供了与 Elasticsearch 集群的无缝连接能力。通过这个服务器,用户可以使用自然语言直接连接和查询 Elasticsearch 索引,无需编写复杂的查询语句。该项目使用 Rust 语言开发,确保了高性能和内存安全性。作为官方支持的实验性项目,它为实时数据检索架构、日志分析和全文搜索应用提供了强大的支持。项目在 GitHub 上获得了 512 颗星,并持续接收来自 Elastic 团队的更新和改进。

核心特性

  • 索引管理 - 列出所有可用索引及其健康状态,实时监控索引状况
  • 映射查询 - 获取索引的字段映射信息,了解数据结构和字段类型
  • 灵活搜索 - 使用 Query DSL 执行复杂的搜索查询,支持全文搜索和结构化查询
  • ES|QL 支持 - 支持 Elasticsearch 查询语言,提供更强大的数据分析能力
  • 分片信息 - 获取详细的分片分布和健康信息,优化集群性能
  • 多版本兼容 - 完全支持 Elasticsearch 8.x 和 9.x 版本
  • 多协议支持 - 提供 stdio、SSE 和 HTTP 三种连接协议,适应不同使用场景
  • 灵活认证 - 支持 API Key 和用户名密码两种认证方式

工具列表

索引管理工具

list_indices

描述: 列出 Elasticsearch 集群中所有可用的索引及其健康状态,包括索引大小、文档数量等关键指标

参数: 无需参数

get_mappings

描述: 获取指定索引的完整字段映射信息,包括字段类型、分析器配置等

参数:

  • index (string): 要查询映射的索引名称 [必需]

get_shards

描述: 获取索引的分片详细信息,包括分片状态、大小、所在节点等

参数:

  • index (string): 索引名称,不指定则返回所有索引的分片信息 [可选]

查询工具

描述: 使用 Elasticsearch Query DSL 执行复杂的搜索查询,支持全文搜索、过滤、聚合等功能

参数:

  • index (string): 要搜索的索引名称,可以使用通配符 [必需]
  • query (object): Query DSL 查询对象,定义搜索条件 [必需]
  • size (number): 返回的结果数量 [可选,默认: 10]

esql

描述: 执行 ES|QL 查询,Elasticsearch 的新一代查询语言,提供更强大和简洁的数据分析能力

参数:

  • query (string): ES|QL 查询语句 [必需]

配置方式

基础配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"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>"
}
}
}
}

环境变量说明

  • ES_URL: Elasticsearch 集群的完整 URL 地址(如:https://your-cluster.es.io:9200)
  • ES_API_KEY: Elasticsearch API 密钥,用于认证
  • ES_USERNAME: 用户名(当使用用户名密码认证时)
  • ES_PASSWORD: 密码(当使用用户名密码认证时)

使用示例

1
2
3
4
5
6
7
8
9
10
11
# 启动 stdio 服务器
docker run -i --rm -e ES_URL -e ES_API_KEY docker.elastic.co/mcp/elasticsearch stdio

# 启动 HTTP 服务器
docker run --rm -e ES_URL -e ES_API_KEY -p 8080:8080 docker.elastic.co/mcp/elasticsearch http

# 启动 SSE 服务器
docker run --rm -e ES_URL -e ES_API_KEY -p 8080:8080 docker.elastic.co/mcp/elasticsearch sse

# 使用用户名密码认证
docker run -i --rm -e ES_URL -e ES_USERNAME -e ES_PASSWORD docker.elastic.co/mcp/elasticsearch stdio

查询示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 列出所有索引
"显示所有索引及其健康状态"

# 查看索引映射
"显示 logs-2025 索引的字段映射"

# 执行搜索
"在 logs 索引中搜索过去 24 小时内所有 ERROR 级别的日志"

# ES|QL 查询
"FROM logs | WHERE level == 'ERROR' | STATS count() BY host"

# 查看分片信息
"显示 products 索引的分片分布情况"

实际应用场景

  1. 实时日志分析 - 通过自然语言查询应用日志,快速定位错误和异常,缩短故障排查时间

  2. 企业搜索门户 - 构建企业内部搜索引擎,让员工用自然语言查询文档、知识库和数据

  3. 数据探索和分析 - 使用 AI 助手探索 Elasticsearch 中的数据,发现数据模式和洞察

  4. 监控和告警 - 通过自然语言定义监控条件,自动查询指标数据并触发告警

  5. 电商搜索优化 - 分析搜索查询和结果,优化搜索相关性和用户体验

  6. 安全事件调查 - 使用自然语言查询安全日志,快速调查安全事件和威胁

技术实现

Elasticsearch MCP Server 使用 Rust 语言实现,体现了 Elastic 对性能和安全的重视:

  • Rust 高性能 - 93.8% 的代码使用 Rust 编写,提供接近 C/C++ 的性能,同时保证内存安全
  • 零成本抽象 - Rust 的所有权系统确保无垃圾回收开销,实现高效的资源管理
  • 多协议架构 - 支持 stdio、SSE 和 streamable-HTTP 三种协议,适应不同的集成场景
  • 安全优先 - Rust 的类型系统和借用检查器在编译时防止内存安全问题
  • 异步 I/O - 使用 Tokio 异步运行时,高效处理并发请求
  • 容器化部署 - 官方 Docker 镜像简化部署流程,确保环境一致性
  • 实验性迭代 - 作为实验性项目,持续集成最新的 Elasticsearch 特性和 MCP 协议改进

该项目还提供了与 Elasticsearch 8.x 和 9.x 的完整兼容性,确保用户可以在不同版本的集群上使用。

获取方式

  • GitHub: https://github.com/elastic/mcp-server-elasticsearch
  • Docker Hub: docker.elastic.co/mcp/elasticsearch
  • 安装方式:
    • 使用官方 Docker 镜像(推荐)
    • 从源码编译:cargo build --release
  • 系统要求:
    • Docker(使用容器部署)
    • Rust 1.70+(从源码编译)
    • Elasticsearch 8.x 或 9.x 集群
    • 有效的 Elasticsearch 认证凭据

相关资源

© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero