Skip to main content
Glama

Elasticsearch MCP Server

by silbaram

Elasticsearch MCP 服务器

介绍

Elasticsearch 模型上下文协议 (MCP) 服务器是基于 Spring AI MCP 开发的服务器应用,旨在通过 MCP 轻松定义各种数据处理工作流,并在 Elasticsearch 集群中高效地索引和搜索结果。

主要特点

  • 自动 MCP 工具注册和执行:在 Spring Boot 环境中使用@Tool注解定义的功能会自动注册到 MCP 服务器。这允许外部客户端(例如 Claude、FastMCP CLI)通过基于 JSON-RPC 的标准通信方式调用这些函数。
  • Elasticsearch 集群集成:使用官方 Elasticsearch Java 客户端轻松调用主要的 Elasticsearch API,例如集群健康检查、索引映射查找、文档索引和搜索,并以 MCP 工具的形式提供结果。
  • 可扩展架构:模块化的包结构允许灵活地分离和管理不同 Elasticsearch 版本的客户端设置。它还可以轻松添加新工具或外部集成功能。

可用的 MCP 工具

  • get_cluster_health :返回有关 Elasticsearch 集群状态的基本信息。
  • get_cluster_statistics :检索综合集群统计信息,包括集群名称、UUID、状态、节点角色、操作系统和 JVM 资源使用情况、索引计数和分片指标。
  • get_cat_mappings :检索特定 Elasticsearch 索引的字段映射信息。
  • get_cat_indices :检索 Elasticsearch 中所有索引的列表。
  • get_cat_indices_by_name :检索与指定索引名称或通配符模式匹配的索引列表。
  • get_cat_aliases :检索 Elasticsearch 中所有别名的列表。
  • get_cat_aliases_by_name :检索与指定别名或通配符模式匹配的别名列表。
  • get_document_search_by_index :使用 AI 生成的 queryDSL 在 Elasticsearch 索引中搜索文档。
  • get_shard_allocation :返回有关 Elasticsearch 集群中的分片分配的信息。
  • get_shard_allocation_for_node :返回有关 Elasticsearch 集群中特定节点的分片分配的信息。

技术堆栈

  • 语言:Java 17
  • 框架:Spring Boot 3.4.5,Spring AI MCP
  • 搜索引擎:Elasticsearch 7.16 或更高版本
  • 构建工具:Gradle 8.12

先决条件

构建和运行此项目需要以下软件:

  • JDK:版本 17 或更高版本
  • 运行 Elasticsearch 实例:版本 7.16 或更高版本
  • MCP 客户端(例如 Claude Desktop)

安装和执行

以下是如何在本地环境中设置和运行项目:

1. 克隆源代码

git clone https://github.com/silbaram/elasticsearch-mcp-server.git cd elasticsearch-mcp-server

2.配置mcp-server模块中的application.yml

打开位于mcp-server/src/main/resources/application.ymlapplication.yml文件来设置您的 Elasticsearch 集群信息。

elasticsearch: version: "8.6.1" # Specifies the version of the Elasticsearch cluster to connect to. search: hosts: - http://localhost:9200 # Specifies the access address of the Elasticsearch cluster.

3. 构建

使用以下命令构建项目:

./gradlew build
  • 构建的 JAR 文件可以在mcp-server/build/libs/目录中找到。

4. 配置 MCP 客户端

  • 启动您的 MCP 客户端。(您可以在 MCP客户端列表中找到 MCP 客户端列表。本指南以 Claude Desktop 为例。)
  • 在您的 MCP 客户端的设置菜单中,导航至“开发人员”>“MCP 服务器”。
  • 点击“编辑配置”按钮,添加新的 MCP 服务器配置,内容如下。(您必须使用之前构建的 JAR 文件的实际路径。)
    { "mcpServers": { "elasticsearch-server": { "command": "java", "args": [ "-Dusername=YOUR_USERNAME", "-Dpassword=YOUR_PASSWORD", "-jar", "/path/to/your/mcp-server.jar" ] } } }
  • -Dusername (可选):指定访问 Elasticsearch 集群所需的用户 ID。(例如, -Dusername=elastic
  • -Dpassword (可选):指定访问 Elasticsearch 集群所需的密码。(例如, -Dpassword=yoursecurepassword
  • /path/to/your/mcp-server.jar :必须将其替换为您构建的mcp-server.jar文件的实际完整路径。
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Elasticsearch MCP 服务器

  1. 介绍
    1. 主要特点
  2. 可用的 MCP 工具
    1. 技术堆栈
      1. 先决条件
        1. 安装和执行
          1. 1. 克隆源代码
          2. 2.配置mcp-server模块中的application.yml
          3. 3. 构建
          4. 4. 配置 MCP 客户端

        Related MCP Servers

        View all related MCP servers

        MCP directory API

        We provide all the information about MCP servers via our MCP API.

        curl -X GET 'https://glama.ai/api/mcp/v1/servers/silbaram/elasticsearch-mcp-server'

        If you have feedback or need assistance with the MCP directory API, please join our Discord server