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.yml
的application.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. 构建
使用以下命令构建项目:
- 构建的 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
文件的实际完整路径。