cr7258/elasticsearch-mcp-server

cr7258/elasticsearch-mcp-server

от cr7258
MCP сервер для Elasticsearch и OpenSearch: поиск документов, управление индексами, анализ текста и мониторинг кластера. Помогает разработчикам встраивать поиск в AI-агентов и управлять ES через MCP.

Elasticsearch/OpenSearch MCP Server

MseeP.ai Security Assessment Badge

Trust Score

Overview

A Model Context Protocol (MCP) server implementation that provides Elasticsearch and OpenSearch interaction. This server enables searching documents, analyzing indices, and managing cluster through a set of tools.

Elasticsearch MCP Server

Demo

https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15

Features

General Operations
  • general_api_request: Perform a general HTTP API request. Use this tool for any Elasticsearch/OpenSearch API that does not have a dedicated tool.
Index Operations
  • list_indices: List all indices.
  • get_index: Returns information (mappings, settings, aliases) about one or more indices.
  • create_index: Create a new index.
  • delete_index: Delete an index.
  • create_data_stream: Create a new data stream (requires matching index template).
  • get_data_stream: Get information about one or more data streams.
  • delete_data_stream: Delete one or more data streams and their backing indices.
Document Operations
  • search_documents: Search for documents.
  • index_document: Creates or updates a document in the index.
  • get_document: Get a document by ID.
  • delete_document: Delete a document by ID.
  • delete_by_query: Deletes documents matching the provided query.

Часто задаваемые вопросы

Инструменты были проиндексированы:
analyze_text

Анализирует текст, чтобы увидеть, как он будет токенизирован. Этот инструмент помогает понять, как Elasticsearch/OpenSearch токенизирует и преобразует текст с помощью анализаторов. Это важно для отладки поисковых запросов и понимания, почему одни документы совпадают, а другие нет.

Параметры
  • analyzerstring | null

    Имя анализатора для использования (например, 'standard', 'korean', 'korean_search'). Если индекс указан, можно использовать пользовательские анализаторы, определённые в этом индексе.

  • attributesstring[] | null

    Список атрибутов токена, возвращаемых при explain=True (например, ['keyword', 'type']). Если не указано, возвращаются все атрибуты.

  • char_filterstring[] | null

    Список фильтров символов, применяемых перед токенизацией. Используется вместе с 'tokenizer' для пользовательской цепочки анализа.

  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • explainboolean

    Если True, возвращает подробную информацию о каждом токене, включая все атрибуты токена и преобразования фильтров. Полезно для отладки сложных цепочек анализаторов.

  • filterstring[] | null

    Список фильтров токенов для применения (например, ['lowercase', 'stop']). Используется вместе с 'tokenizer' для пользовательской цепочки анализа.

  • indexstring | null

    Имя индекса, чтобы использовать его настроенный анализатор. Если не указано, используется анализ на уровне кластера только со встроенными анализаторами.

  • textstringобязательный

    Текст для анализа.

  • tokenizerstring | null

    Токенизатор для пользовательской цепочки анализа. Нельзя использовать вместе с 'analyzer'.

create_data_stream

Создаёт новый поток данных. Создаёт новый поток данных с указанным именем. Перед созданием у потока данных должен быть соответствующий шаблон индекса.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • namestringобязательный

    Имя создаваемого потока данных

create_index

Создаёт новый индекс.

Параметры
  • bodyobject | null

    Необязательная конфигурация индекса, включая mappings и settings

  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • indexstringобязательный

    Имя индекса

delete_alias

Удаляет псевдоним для конкретного индекса.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • indexstringобязательный

    Имя индекса

  • namestringобязательный

    Имя псевдонима

delete_by_query

Удаляет документы, соответствующие указанному запросу.

Параметры
  • bodyobjectобязательный

    Запрос на сопоставление документов для удаления

  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • indexstringобязательный

    Имя индекса

delete_data_stream

Удаляет один или несколько потоков данных. Безвозвратно удаляет указанные потоки данных и все поддерживающие их индексы.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • namestringобязательный

    Имя потока (потоков) данных для удаления. Можно указать список через запятую или шаблон с подстановочными знаками.

delete_document

Удаляет документ по ID.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • idstringобязательный

    ID документа

  • indexstringобязательный

    Имя индекса

delete_index

Удаляет индекс.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • indexstringобязательный

    Имя индекса

general_api_request

Выполняет общий HTTP API-запрос. Использует этот инструмент для любого Elasticsearch/OpenSearch API, для которого нет отдельного инструмента.

Параметры
  • bodyobject | null

    Тело запроса.

  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • methodstringобязательный

    HTTP-метод (GET, POST, PUT, DELETE и т. д.)

  • paramsobject | null

    Параметры запроса

  • pathstringобязательный

    Путь эндпоинта API

get_alias

Получает информацию об алиасах для конкретного индекса.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • indexstringобязательный

    Имя индекса

get_cluster_health

Возвращает базовую информацию о состоянии кластера.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

get_cluster_stats

Возвращает общий обзор статистики кластера.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

get_data_stream

Получает информацию об одном или нескольких потоках данных. Получает конфигурацию, сопоставления, настройки и другую информацию об указанных потоках данных.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • namestring | null

    Имя потока (потоков) данных для извлечения. Может быть списком через запятую или шаблоном с подстановочными знаками. Если не указано, извлекает все потоки данных.

get_document

Получает документ по ID.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • idstringобязательный

    ID документа

  • indexstringобязательный

    Имя индекса

get_index

Возвращает информацию (mappings, settings, aliases) об одном или нескольких индексах.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • indexstringобязательный

    Имя индекса

index_document

Создаёт или обновляет документ в индексе.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • documentobjectобязательный

    Документирует данные

  • idstring | null

    Необязательный ID документа

  • indexstringобязательный

    Имя индекса

list_aliases

Перечисляет все алиасы.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

list_indices

Перечисляет все индексы.

Параметры
  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

put_alias

Создаёт или обновляет псевдоним для конкретного индекса.

Параметры
  • bodyobjectобязательный

    Конфигурация псевдонимов

  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • indexstringобязательный

    Имя индекса

  • namestringобязательный

    Имя псевдонима

search_documents

Ищет документы.

Параметры
  • bodyobjectобязательный

    Поисковый запрос

  • clusterstring | null

    Необязательное имя кластера. Если не указано, используется кластер по умолчанию.

  • indexstringобязательный

    Имя индекса

2.1.6основная
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.19
2.0.18
2.0.17
2.0.16
2.0.15
2.0.14
2.0.13
2.0.12
2.0.11
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.0.0

Выберите клиент, чтобы установить cr7258/elasticsearch-mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "cr7258-elasticsearch-mcp-server-flx086ck9q": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_CLUSTERS": "{\"prod\": {\"hosts\": [\"https://prod-es:9200\"], \"api_key\": \"<PROD_API_KEY>\", \"verify_certs\": true}, \"staging\": {\"hosts\": [\"https://staging-es:9200\"], \"username\": \"elastic\", \"password\": \"<STAGING_PASSWORD>\"}}",
        "DEFAULT_CLUSTER": "prod"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "cr7258-elasticsearch-mcp-server-flx086ck9q": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_CLUSTERS": "{\"prod\": {\"hosts\": [\"https://prod-es:9200\"], \"api_key\": \"<PROD_API_KEY>\", \"verify_certs\": true}, \"staging\": {\"hosts\": [\"https://staging-es:9200\"], \"username\": \"elastic\", \"password\": \"<STAGING_PASSWORD>\"}}",
        "DEFAULT_CLUSTER": "prod"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "cr7258-elasticsearch-mcp-server-flx086ck9q": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_CLUSTERS": "{\"prod\": {\"hosts\": [\"https://prod-es:9200\"], \"api_key\": \"<PROD_API_KEY>\", \"verify_certs\": true}, \"staging\": {\"hosts\": [\"https://staging-es:9200\"], \"username\": \"elastic\", \"password\": \"<STAGING_PASSWORD>\"}}",
        "DEFAULT_CLUSTER": "prod"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"cr7258-elasticsearch-mcp-server-flx086ck9q\",\"type\":\"stdio\",\"command\":\"uvx\",\"args\":[\"elasticsearch-mcp-server\"],\"env\":{\"ELASTICSEARCH_CLUSTERS\":\"{\\\"prod\\\": {\\\"hosts\\\": [\\\"https://prod-es:9200\\\"], \\\"api_key\\\": \\\"<PROD_API_KEY>\\\", \\\"verify_certs\\\": true}, \\\"staging\\\": {\\\"hosts\\\": [\\\"https://staging-es:9200\\\"], \\\"username\\\": \\\"elastic\\\", \\\"password\\\": \\\"<STAGING_PASSWORD>\\\"}}\",\"DEFAULT_CLUSTER\":\"prod\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "cr7258-elasticsearch-mcp-server-flx086ck9q": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_CLUSTERS": "{\"prod\": {\"hosts\": [\"https://prod-es:9200\"], \"api_key\": \"<PROD_API_KEY>\", \"verify_certs\": true}, \"staging\": {\"hosts\": [\"https://staging-es:9200\"], \"username\": \"elastic\", \"password\": \"<STAGING_PASSWORD>\"}}",
        "DEFAULT_CLUSTER": "prod"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add cr7258-elasticsearch-mcp-server-flx086ck9q --env ELASTICSEARCH_CLUSTERS={"prod": {"hosts": ["https://prod-es:9200"], "api_key": "<PROD_API_KEY>", "verify_certs": true}, "staging": {"hosts": ["https://staging-es:9200"], "username": "elastic", "password": "<STAGING_PASSWORD>"}} --env DEFAULT_CLUSTER=prod -- uvx elasticsearch-mcp-server

Либо через JSON-конфиг:

claude mcp add-json cr7258-elasticsearch-mcp-server-flx086ck9q "{\"command\":\"uvx\",\"args\":[\"elasticsearch-mcp-server\"],\"env\":{\"ELASTICSEARCH_CLUSTERS\":\"{\\\"prod\\\": {\\\"hosts\\\": [\\\"https://prod-es:9200\\\"], \\\"api_key\\\": \\\"<PROD_API_KEY>\\\", \\\"verify_certs\\\": true}, \\\"staging\\\": {\\\"hosts\\\": [\\\"https://staging-es:9200\\\"], \\\"username\\\": \\\"elastic\\\", \\\"password\\\": \\\"<STAGING_PASSWORD>\\\"}}\",\"DEFAULT_CLUSTER\":\"prod\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add cr7258-elasticsearch-mcp-server-flx086ck9q --env ELASTICSEARCH_CLUSTERS={"prod": {"hosts": ["https://prod-es:9200"], "api_key": "<PROD_API_KEY>", "verify_certs": true}, "staging": {"hosts": ["https://staging-es:9200"], "username": "elastic", "password": "<STAGING_PASSWORD>"}} --env DEFAULT_CLUSTER=prod -- uvx elasticsearch-mcp-server

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.cr7258-elasticsearch-mcp-server-flx086ck9q]
command = "uvx"
args = ["elasticsearch-mcp-server"]

[mcp_servers.cr7258-elasticsearch-mcp-server-flx086ck9q.env]
ELASTICSEARCH_CLUSTERS = "{\"prod\": {\"hosts\": [\"https://prod-es:9200\"], \"api_key\": \"<PROD_API_KEY>\", \"verify_certs\": true}, \"staging\": {\"hosts\": [\"https://staging-es:9200\"], \"username\": \"elastic\", \"password\": \"<STAGING_PASSWORD>\"}}"
DEFAULT_CLUSTER = "prod"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите cr7258/elasticsearch-mcp-server, а в поле команды запуска — строку ниже:
uvx elasticsearch-mcp-server

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "cr7258-elasticsearch-mcp-server-flx086ck9q": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_CLUSTERS": "{\"prod\": {\"hosts\": [\"https://prod-es:9200\"], \"api_key\": \"<PROD_API_KEY>\", \"verify_certs\": true}, \"staging\": {\"hosts\": [\"https://staging-es:9200\"], \"username\": \"elastic\", \"password\": \"<STAGING_PASSWORD>\"}}",
        "DEFAULT_CLUSTER": "prod"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "cr7258-elasticsearch-mcp-server-flx086ck9q": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_CLUSTERS": "{\"prod\": {\"hosts\": [\"https://prod-es:9200\"], \"api_key\": \"<PROD_API_KEY>\", \"verify_certs\": true}, \"staging\": {\"hosts\": [\"https://staging-es:9200\"], \"username\": \"elastic\", \"password\": \"<STAGING_PASSWORD>\"}}",
        "DEFAULT_CLUSTER": "prod"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например cr7258-elasticsearch-mcp-server-flx086ck9q.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: cr7258-elasticsearch-mcp-server-flx086ck9q
    command: uvx
    args:
      - "elasticsearch-mcp-server"
    env:
      ELASTICSEARCH_CLUSTERS: {"prod": {"hosts": ["https://prod-es:9200"], "api_key": "<PROD_API_KEY>", "verify_certs": true}, "staging": {"hosts": ["https://staging-es:9200"], "username": "elastic", "password": "<STAGING_PASSWORD>"}}
      DEFAULT_CLUSTER: prod
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "cr7258-elasticsearch-mcp-server-flx086ck9q": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_CLUSTERS": "{\"prod\": {\"hosts\": [\"https://prod-es:9200\"], \"api_key\": \"<PROD_API_KEY>\", \"verify_certs\": true}, \"staging\": {\"hosts\": [\"https://staging-es:9200\"], \"username\": \"elastic\", \"password\": \"<STAGING_PASSWORD>\"}}",
        "DEFAULT_CLUSTER": "prod"
      }
    }
  }
}

Похожие MCP-сервера

amineelkouhen/mcp-cockroachdb

amineelkouhen/mcp-cockroachdb

от amineelkouhen

MCP сервер для CockroachDB дает AI-агентам управлять базой через естественный язык: мониторинг кластера, выполнение запросов и администрирование. Строгая проверка прав и read-only режим для безопасности.

Python⭐ 12
Couchbase-Ecosystem/mcp-server-couchbase

Couchbase-Ecosystem/mcp-server-couchbase

официальный

от couchbase-ecosystem

MCP-сервер для Couchbase, который даёт языковым моделям прямой доступ к кластерам: выполнять SQL++ запросы, управлять документами, проверять здоровье и производительность. Полезен разработчикам, интегрирующим ИИ-агенты с Couchbase.

Python⭐ 34
crystaldba/postgres-mcp

crystaldba/postgres-mcp

от crystaldba

Подбирает оптимальные индексы, объясняет планы запросов и проверяет здоровье PostgreSQL. Выполняет SQL в безопасном режиме только для чтения.

Python⭐ 3413
JaviMaligno/postgres_mcp

JaviMaligno/postgres_mcp

от javimaligno

MCP сервер для работы с PostgreSQL: выполняет SQL-запросы, исследует схемы, таблицы и индексы, помогает с производительностью через EXPLAIN. Работает read-only по умолчанию — безопасность на первом месте. Подходит для Claude Desktop, Cursor и других MCP-клиентов.

Python⭐ 12
Redis MCP

Redis MCP

официальный

от redis

MCP сервер Redis дает AI-агентам управлять Redis на естественном языке: кэширование, сессии и векторный поиск. Интегрируется с MCP клиентами, упрощает разработку приложений для работы с данными в р...

Python⭐ 637
quantgeekdev/mongo-mcp

quantgeekdev/mongo-mcp

от quantgeekdev

MCP сервер для MongoDB: LLM выполняет запросы, инспектирует схемы и управляет документами с индексами на естественном языке. Полезен разработчикам для автоматизации работы с базами данных.

TypeScript⭐ 176
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин