Skip to main content
Glama

Elasticsearch MCP Server

by silbaram
1

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文件的实际完整路径。

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    Provides an MCP protocol interface for interacting with Elasticsearch 7.x databases, supporting comprehensive search functionality including aggregations, highlighting, and sorting.
    Last updated -
    3
    1
    Python
    Apache 2.0
  • -
    security
    A
    license
    -
    quality
    MCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)
    Last updated -
    1
    Python
    MIT License
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    MCP server for Mamont search engine
    Last updated -
    2
    TypeScript
    MIT License

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