Сервер Elasticsearch MCP
Введение
Elasticsearch Model Context Protocol (MCP) Server — это серверное приложение, разработанное на основе Spring AI MCP. Оно предназначено для простого определения различных рабочих процессов обработки данных через MCP и эффективной индексации и поиска результатов в кластере Elasticsearch.
Основные характеристики
- Автоматическая регистрация и выполнение инструмента MCP : функции, определенные с помощью аннотации
@Tool
в среде Spring Boot, автоматически регистрируются на сервере MCP. Это позволяет внешним клиентам (например, Claude, FastMCP CLI) вызывать эти функции через стандартную связь на основе JSON-RPC. - Интеграция с кластером Elasticsearch : использует официальный клиент Java Elasticsearch для простого вызова основных API Elasticsearch, таких как проверки работоспособности кластера, поиск по индексному отображению, индексация и поиск документов, а также предоставляет результаты в виде инструментов 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
: поиск документов в индексе Elasticsearch с использованием запросов DSL, сгенерированных ИИ.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. Клонировать исходный код
2. Настройте application.yml
в модуле mcp-server
Откройте файл application.yml
, расположенный в mcp-server/src/main/resources/application.yml
чтобы настроить информацию о кластере Elasticsearch.
3. Строить
Для сборки проекта используйте следующую команду:
- Собранный JAR-файл можно найти в каталоге
mcp-server/build/libs/
.
4. Настройте MCP-клиент
- Запустите свой клиент MCP. (Список клиентов MCP можно найти на странице MCP Client List . В этом руководстве в качестве примера используется Claude Desktop.)
- В меню настроек клиента MCP перейдите в раздел «Разработчик» > «Серверы MCP».
- Нажмите кнопку «Изменить конфигурацию» и добавьте новую конфигурацию сервера MCP со следующим содержимым. (Необходимо использовать фактический путь к созданному ранее файлу JAR.)
-Dusername
(необязательно): указывает идентификатор пользователя, необходимый для доступа к кластеру Elasticsearch. (например,-Dusername=elastic
)-Dpassword
(необязательно): указывает пароль, необходимый для доступа к кластеру Elasticsearch. (например,-Dpassword=yoursecurepassword
)/path/to/your/mcp-server.jar
: Его необходимо заменить на фактический полный путь к созданному вами файлуmcp-server.jar
.
Related MCP Servers
- AsecurityAlicenseAqualityProvides an MCP protocol interface for interacting with Elasticsearch 7.x databases, supporting comprehensive search functionality including aggregations, highlighting, and sorting.Last updated -31PythonApache 2.0
- -securityAlicense-qualityMCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)Last updated -1PythonMIT License
- TypeScriptMIT License
- TypeScriptApache 2.0