
Elasticsearch MCP: поиск и индексы через агента в Claude Code и Cursor
Подключает агента к кластеру Elasticsearch: список индексов и маппингов, поиск на query DSL и ES|QL. Сторонние серверы добавляют запись документов, алиасы и управление индексами.
Самый широкий набор из 20 инструментов: индексы, документы, алиасы, data streams и запрос к любому API; работает и с OpenSearch, запись отключается одной переменной.
Как подключить
Что сделать до подключения
uv с командой uvx
Кластер Elasticsearch 7.x, 8.x или 9.x и API-ключ или логин с паролем
ELASTICSEARCH_API_KEYAPI-ключ Elasticsearch или Elastic Cloud; вместо него можно задать ELASTICSEARCH_USERNAME и ELASTICSEARCH_PASSWORD
ELASTICSEARCH_HOSTSадрес кластера, несколько узлов через запятую; по умолчанию https://localhost:9200
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --env ELASTICSEARCH_HOSTS=https://localhost:9200 --env 'ELASTICSEARCH_API_KEY=<ваш API-ключ Elasticsearch>' --transport stdio elasticsearch \
-- uvx elasticsearch-mcp-serverПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.elasticsearch]
command = "uvx"
args = ["elasticsearch-mcp-server"]
[mcp_servers.elasticsearch.env]
ELASTICSEARCH_HOSTS = "https://localhost:9200"
ELASTICSEARCH_API_KEY = "<ваш API-ключ Elasticsearch>"Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"elasticsearch": {
"command": "uvx",
"args": ["elasticsearch-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"elasticsearch": {
"type": "stdio",
"command": "uvx",
"args": ["elasticsearch-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"elasticsearch": {
"command": "uvx",
"args": ["elasticsearch-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"elasticsearch": {
"command": "uvx",
"args": ["elasticsearch-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"elasticsearch": {
"type": "local",
"command": ["uvx", "elasticsearch-mcp-server"],
"environment": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"elasticsearch": {
"command": "uvx",
"args": ["elasticsearch-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"elasticsearch": {
"command": "uvx",
"args": ["elasticsearch-mcp-server"],
"env": {
"ELASTICSEARCH_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
list_indicesпоказывает все индексыget_indexчитает маппинг, настройки и алиасыcreate_indexсоздаёт индексdelete_indexудаляет индексsearch_documentsищет документыget_documentчитает документ по IDindex_documentсоздаёт или обновляет документdelete_documentудаляет документ по IDdelete_by_queryудаляет документы по запросуget_cluster_healthпоказывает здоровье кластераget_cluster_statsсобирает статистику кластераlist_aliasesпоказывает все алиасыget_aliasчитает алиасы индексаput_aliasсоздаёт или меняет алиасdelete_aliasудаляет алиасcreate_data_streamсоздаёт data streamget_data_streamчитает data streamdelete_data_streamудаляет data streamanalyze_textразбирает текст анализаторомgeneral_api_requestшлёт запрос к любому APIПакет из npm на 11 инструментов: кроме поиска умеет reindex, загрузку пачкой и шаблоны индексов; рассчитан на Elasticsearch 8.x.
Как подключить
Что сделать до подключения
Node.js с командой npx
Кластер Elasticsearch 8.x и API-ключ или логин с паролем
ES_API_KEYAPI-ключ Elasticsearch; вместо него можно задать ES_USERNAME и ES_PASSWORD
ES_HOSTадрес кластера, несколько узлов через запятую
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --env 'ES_HOST=<адрес кластера>' --env 'ES_API_KEY=<ваш API-ключ Elasticsearch>' --transport stdio elasticsearch-mcp \
-- npx -y @awesome-ai/elasticsearch-mcpПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.elasticsearch-mcp]
command = "npx"
args = ["-y", "@awesome-ai/elasticsearch-mcp"]
[mcp_servers.elasticsearch-mcp.env]
ES_HOST = "<адрес кластера>"
ES_API_KEY = "<ваш API-ключ Elasticsearch>"Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": ["-y", "@awesome-ai/elasticsearch-mcp"],
"env": {
"ES_HOST": "<адрес кластера>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"elasticsearch-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@awesome-ai/elasticsearch-mcp"],
"env": {
"ES_HOST": "<адрес кластера>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": ["-y", "@awesome-ai/elasticsearch-mcp"],
"env": {
"ES_HOST": "<адрес кластера>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": ["-y", "@awesome-ai/elasticsearch-mcp"],
"env": {
"ES_HOST": "<адрес кластера>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"elasticsearch-mcp": {
"type": "local",
"command": ["npx", "-y", "@awesome-ai/elasticsearch-mcp"],
"environment": {
"ES_HOST": "<адрес кластера>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": ["-y", "@awesome-ai/elasticsearch-mcp"],
"env": {
"ES_HOST": "<адрес кластера>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": ["-y", "@awesome-ai/elasticsearch-mcp"],
"env": {
"ES_HOST": "<адрес кластера>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
elasticsearch_healthпоказывает здоровье кластераlist_indicesищет индексы, понимает regexcreate_indexсоздаёт индекс с настройкамиreindexпереносит данные между индексамиget_mappingsчитает маппинг индексаcreate_mappingсоздаёт или меняет маппингsearchищет запросом query DSLbulkзагружает данные пачкойcreate_index_templateсоздаёт шаблон индексаget_index_templateчитает шаблоны индексовdelete_index_templateудаляет шаблон индексаСервер самой Elastic в Docker-образе, 5 инструментов для чтения и запросов, включая ES|QL; объявлен устаревшим и получает только критические исправления безопасности.
Как подключить
Что сделать до подключения
Docker
Кластер Elasticsearch 8.x или 9.x и API-ключ или логин с паролем
ES_API_KEYAPI-ключ Elasticsearch; вместо него можно задать ES_USERNAME и ES_PASSWORD
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --env 'ES_URL=<адрес кластера Elasticsearch>' --env 'ES_API_KEY=<ваш API-ключ Elasticsearch>' --transport stdio mcp-server-elasticsearch \
-- docker run -i --rm -e ES_URL -e ES_API_KEY docker.elastic.co/mcp/elasticsearch stdioПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.mcp-server-elasticsearch]
command = "docker"
args = ["run", "-i", "--rm", "-e", "ES_URL", "-e", "ES_API_KEY", "docker.elastic.co/mcp/elasticsearch", "stdio"]
[mcp_servers.mcp-server-elasticsearch.env]
ES_URL = "<адрес кластера Elasticsearch>"
ES_API_KEY = "<ваш API-ключ Elasticsearch>"Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"mcp-server-elasticsearch": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ES_URL",
"-e",
"ES_API_KEY",
"docker.elastic.co/mcp/elasticsearch",
"stdio"
],
"env": {
"ES_URL": "<адрес кластера Elasticsearch>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"mcp-server-elasticsearch": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ES_URL",
"-e",
"ES_API_KEY",
"docker.elastic.co/mcp/elasticsearch",
"stdio"
],
"env": {
"ES_URL": "<адрес кластера Elasticsearch>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"mcp-server-elasticsearch": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ES_URL",
"-e",
"ES_API_KEY",
"docker.elastic.co/mcp/elasticsearch",
"stdio"
],
"env": {
"ES_URL": "<адрес кластера Elasticsearch>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"mcp-server-elasticsearch": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ES_URL",
"-e",
"ES_API_KEY",
"docker.elastic.co/mcp/elasticsearch",
"stdio"
],
"env": {
"ES_URL": "<адрес кластера Elasticsearch>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"mcp-server-elasticsearch": {
"type": "local",
"command": [
"docker",
"run",
"-i",
"--rm",
"-e",
"ES_URL",
"-e",
"ES_API_KEY",
"docker.elastic.co/mcp/elasticsearch",
"stdio"
],
"environment": {
"ES_URL": "<адрес кластера Elasticsearch>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"mcp-server-elasticsearch": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ES_URL",
"-e",
"ES_API_KEY",
"docker.elastic.co/mcp/elasticsearch",
"stdio"
],
"env": {
"ES_URL": "<адрес кластера Elasticsearch>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"mcp-server-elasticsearch": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ES_URL",
"-e",
"ES_API_KEY",
"docker.elastic.co/mcp/elasticsearch",
"stdio"
],
"env": {
"ES_URL": "<адрес кластера Elasticsearch>",
"ES_API_KEY": "<ваш API-ключ Elasticsearch>"
}
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
list_indicesпоказывает все индексыget_mappingsчитает маппинг индексаsearchищет запросом query DSLesqlвыполняет запрос ES|QLget_shardsпоказывает шарды индексовЧто попросить агента
Для каких задач
Ограничения
Сервер Elastic объявлен устаревшим: его заменил MCP-эндпоинт Elastic Agent Builder, доступный в Elastic 9.2.0 и новее и в Serverless-проектах
У cr7258 по умолчанию открыты запись и удаление, включая delete_by_query и general_api_request, а проверка SSL-сертификатов выключена (VERIFY_CERTS=false)
awesimon проверен только на Elasticsearch 8.x: 7.x и 9.x не тестировались, npm test проверяет лишь компиляцию TypeScript
В режиме HTTP сервер cr7258 без переменной MCP_API_KEY открыт любому, кто достучится до порта
Если не работает
Сервер подключён, но агент не получает данные из кластера
Claude Desktop не подключается к серверу Elastic в режиме HTTP
Какую реализацию выбрать
| Реализация | Кто делает | Звёзды | Запуск | Ключ | Инструменты | Обновлён |
|---|---|---|---|---|---|---|
| Elasticsearch/OpenSearch MCP Server | cr7258 | 317 | локально | токен | 20 | 11 ноября 2026 |
| Elasticsearch MCP Server | awesimon | 24 | локально | токен | 11 | 12 ноября 2026 |
| Elasticsearch MCP Serverразработчик сервиса | Elastic | 732 | локально | токен | 5 | 6 ноября 2026 |