Skip to main content
Glama

Elasticsearch MCP Server

by silbaram
1

Сервер 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. Клонировать исходный код

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

2. Настройте application.yml в модуле mcp-server

Откройте файл application.yml , расположенный в mcp-server/src/main/resources/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. Строить

Для сборки проекта используйте следующую команду:

./gradlew build
  • Собранный JAR-файл можно найти в каталоге mcp-server/build/libs/ .

4. Настройте MCP-клиент

  • Запустите свой клиент MCP. (Список клиентов MCP можно найти на странице MCP Client List . В этом руководстве в качестве примера используется 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. (например, -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