Пропустите установку. Заработает меньше чем за 2 минуты.
Начните бесплатный период на cloud.anythingmcp.com, добавьте Elasticsearch одним кликом и направьте свой ИИ-клиент (Claude, ChatGPT, Copilot или Cursor) на сгенерированный MCP-эндпоинт. Без Docker, без git clone, без опыта разработки.
Кратко
Дайте ИИ изучать и опрашивать ваш кластер Elasticsearch в Elastic Cloud, Serverless или на ваших серверах: показывать индексы и data streams, читать маппинги, искать, агрегировать, считать, выполнять ES|QL, а с вашего подтверждения и записывать документы.
Попробуй спросить
Примеры промптов для Elasticsearch
Кликни по промпту — он скопируется. Вставь в Claude, ChatGPT, Cursor, Gemini, Copilot или OpenClaw и запусти через этот коннектор.
Claude — это AI, он может ошибаться. Проверяйте ответы.
💡 Без установки? Используйте cloud.anythingmcp.com напрямую. Войдите, нажмите Connectors → Elasticsearch, вставьте учётные данные, создайте MCP API key, и готово. Без Docker, без
git clone, без локального сервера.
Elasticsearch + Cursor
Дайте ИИ изучать и опрашивать ваш кластер Elasticsearch в Elastic Cloud, Serverless или на ваших серверах: показывать индексы и data streams, читать маппинги, искать, агрегировать, считать, выполнять ES|QL, а с вашего подтверждения и записывать документы.
Предварительные требования
Полные инструкции по настройке встроены в коннектор (видны в магазине при выборе коннектора). Требуемые переменные окружения:
ELASTICSEARCH_URL, ELASTICSEARCH_API_KEY
Шаг 1 — Получите учётные данные
- Найдите endpoint Elasticsearch. Elastic Cloud Hosted: откройте deployment на
https://cloud.elastic.coи скопируйте Elasticsearch endpoint, напримерhttps://my-deployment.es.europe-west3.gcp.cloud.es.io. Serverless: откройте проект и скопируйте его endpoint Elasticsearch. Собственный кластер: HTTPS-адрес и порт, на которых он отвечает, напримерhttps://search.example.com:9200. Вставьте его вELASTICSEARCH_URLбез завершающей косой черты. Нужен endpoint Elasticsearch, а не адрес Kibana. - Создайте API-ключ в Kibana: Stack Management → API keys → Create API key (Serverless: настройки проекта → API keys). Дайте ему имя, например
anythingmcp, срок действия и включите Control security privileges, чтобы ограничить права (см. ниже). - Скопируйте значение Encoded (base64): Elastic показывает его только один раз. Вставьте его в
ELASTICSEARCH_API_KEYи установите коннектор. Значенияidиapi_keyпо отдельности не подходят, а вход по имени пользователя и паролю не поддерживается. - Проверьте настройку через
elasticsearch_whoami: ему не нужны привилегии, и он показывает, кому принадлежит ключ.
Где работает кластер: Elastic Cloud Hosted, Elastic Cloud Serverless и собственные кластеры версии 8 и новее. AnythingMCP Cloud нужен кластер, доступный из интернета; self-hosted AnythingMCP может обращаться и к кластеру во внутренней сети, если администратор разрешит этот хост.
Ключ только для чтения (рекомендуется): используйте эти role descriptors в форме Kibana или выполните запрос в Kibana Dev Tools и скопируйте encoded из ответа:
POST /_security/api_key
{
"name": "anythingmcp-read",
"expiration": "365d",
"role_descriptors": {
"anythingmcp_read": {
"cluster": ["monitor"],
"indices": [
{ "names": ["*"], "privileges": ["read", "view_index_metadata", "monitor"] }
]
}
}
}
Замените "*" на шаблоны индексов, которые может видеть ИИ, например ["products", "logs-*"]. read покрывает поиск, подсчёт, агрегации, ES|QL и отдельные документы; view_index_metadata покрывает маппинги, алиасы и data streams; monitor покрывает список индексов и состояние кластера. У ключа никогда не бывает больше прав, чем у пользователя, который его создал.
Что умеет ИИ: показывать индексы, алиасы и data streams; читать маппинг полей индекса перед запросом; искать с помощью Query DSL (по умолчанию 10 результатов, не больше 100 за вызов); выполнять агрегации: количество по значениям, суммы, средние, гистограммы по датам; считать совпадения; выполнять запросы ES|QL для табличных ответов (не больше 500 строк); читать отдельные документы. Распространённые векторные поля не попадают в результаты поиска. Состояние кластера недоступно в Serverless, где кластером управляет Elastic.
Запись только после подтверждения: elasticsearch_index_document создаёт или полностью заменяет документ, а elasticsearch_update_document меняет отдельные поля документа. Перед каждым вызовом ИИ показывает индекс, _id и содержимое и ждёт вашего «да». Обоим нужна привилегия write, поэтому с ключом только для чтения выше они завершатся ошибкой 403, и это задуманная страховка.
Отключено при установке: elasticsearch_delete_document и elasticsearch_delete_by_query. Удаление нельзя отменить, а delete by query может удалить миллионы документов. Администратор включает их осознанно; после этого ИИ сначала считает подходящие документы и спрашивает перед удалением.
Частые ошибки: 401: ключ неверный, истёк или аннулирован, либо вместо значения Encoded вставлен id. 403 security_exception: у ключа нет привилегии, указанной в сообщении. 404 index_not_found_exception: неизвестное имя индекса. 400 parsing_exception или verification_exception: в запросе ошибка; сообщение указывает поле или позицию. 429: кластер перегружен; подождите и повторите.
Коннектор работает только с Elasticsearch, а не с Kibana. Он не создаёт и не удаляет индексы, не меняет маппинги и настройки и не охватывает снапшоты, ingest pipelines, администрирование безопасности и bulk API.
Шаг 2 — Установите адаптер
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Шаг 3 — Добавьте коннектор в Cursor
URL вашего сервера: в AnythingMCP откройте MCP Servers → сервер, на котором находится этот коннектор, и скопируйте его URL (
https://cloud.anythingmcp.com/mcp/…). Используйте его везде, где в этом руководстве указаноYOUR_SERVER_ID.
Cursor читает MCP-серверы из ~/.cursor/mcp.json. Добавь эту запись:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Создай MCP API-ключ в AnythingMCP в разделе MCP Servers → твой сервер → API keys и вставь его вместо
YOUR_MCP_API_KEY. - Сохрани файл и перезапусти Cursor.
- Открой Cursor → Settings → MCP и проверь, что
anythingmcpесть в списке и подключён. - Начинай общаться: агент теперь может вызывать инструменты
Elasticsearch.
Доступные инструменты
| Tool | What it does |
|---|---|
elasticsearch_whoami | Show who the connector is signed in as: the user behind the API key, the key's name and id and the authentication type |
elasticsearch_cluster_info | Get basic information about the cluster: name, uuid, Elasticsearch version and build flavor (serverless on Elastic Cloud Serverless) |
elasticsearch_cluster_health | Get the cluster health: status (green, yellow or red), node counts, active, relocating, initializing and unassigned shards and pending tasks |
elasticsearch_list_indices | List indices with their health, status, document count, store size, primary and replica shard counts and creation date, sorted by name (at… |
elasticsearch_get_mapping | Get the field mapping of an index or data stream: every field with its type (text, keyword, date, long, dense_vector...) |
elasticsearch_search | Search an index, data stream or alias with the Query DSL and get the matching documents (total, and per hit _index, _id, _score, _source… |
elasticsearch_aggregate | Run aggregations over an index or data stream without returning documents: counts per value (terms), sums and averages, date histograms… |
elasticsearch_count | Count the documents in an index, data stream or alias that match a query (all documents without a query) |
elasticsearch_esql_query | Run an ES|QL query, a piped language for filtering, aggregating and joining (Elasticsearch 8.11 or later, and Serverless) |
elasticsearch_get_document | Get one document by its _id from an index: found, _version and the _source, optionally only some fields |
elasticsearch_list_aliases | List index aliases: alias name, the index it points to, whether it has a filter and whether it is the write index |
elasticsearch_list_data_streams | List data streams (time series such as logs and metrics): name, health status, index template, generation, number of backing indices… |
elasticsearch_index_document | Create or replace a whole document under a given _id in an index |
elasticsearch_update_document | Change some fields of an existing document by _id, leaving the others as they are (a partial update with doc) |
elasticsearch_delete_document | Delete one document by _id |
elasticsearch_delete_by_query | Delete every document that matches a query |
Примеры запросов
- «Какие у нас есть индексы, сколько документов в каждом и сколько они занимают?»
- «Найди в индексе products беспроводные наушники дешевле 100 евро и покажи название, бренд и цену.»
- «С помощью ES|QL посчитай ошибки по хостам в logs- за последние 24 часа и покажи первые 10.»*
- «Сколько заказов в день у нас было в сентябре? Построй гистограмму по датам на индексе orders.»
- «Установи поле stock товара 4711 в индексе products в 0. Покажи изменение, прежде чем его вносить.»
FAQ
Поддерживает ли Cursor собственные MCP-серверы на бесплатном тарифе? Да, MCP доступен на тарифах Hobby, Pro и Business.
Следующие шаги
Это руководство помогло?