Log10x MCP Server
Задавайте AI-ассистенту вопросы о расходах на логи, их шаблонах и инцидентах на обычном английском языке и получайте структурированные ответы с метриками для каждого шаблона. Например: «Почему на этой неделе выросли расходы на логи?», «Что увеличивает объём логов payments-svc?», «Получите события payment_retry для acme-corp за период с 15 января по 15 апреля». Сервер предоставляет Claude и любому совместимому с MCP ассистенту доступ к платформе 10x в виде набора инструментов.
10x группирует логи по типам сообщений. Одни и те же строки повторяются снова и снова, меняются только временная метка или ID запроса. 10x объединяет потоки почти идентичных строк в один тип сообщения и ранжирует типы по объёму и стоимости. Имена формируются на основе символов, скомпилированных из кода, поэтому одна и та же строка получает одинаковое имя на всех узлах при использовании одного движка, библиотеки и конфигурации.
Этот сервер имеет открытый исходный код и распространяется по лицензии MIT. Лицензия продукта Log10x (API-ключ) открывает доступ к инструментам, связанным с учётной записью. Без ключа сервер запускается в режиме только чтения с публичным демонстрационным набором данных, чтобы вы могли сразу изучить инструменты.
Что можно спросить
| Вы говорите | Что происходит |
|---|---|
| «С чего начать? Помогите сократить расходы на логи». | Пошаговое меню уточняет вашу цель (сократить расходы, провести расследование или выполнить установку) и предлагает дальнейшие действия, а также рассказывает о нововведениях и изменениях. log10x_start, log10x_whats_new, log10x_whats_changing |
| «Войдите в мою учётную запись». / «От имени кого я подключён?» | Вход через GitHub создаёт и сохраняет API-ключ, а также показывает среды, доступные вашей учётной записи. log10x_signin_start, log10x_login_status, log10x_create_env |
| «Покажите, как установить это в моём стеке». | Готовые к копированию инструкции по настройке собственного конвейера, подключению fetch-back и рекомендуемому действию для каждой службы. Политика отправляется в виде pull request для слияния. Для ConfigMap запись выполняется только после отдельного явного вызова. log10x_advise_install, log10x_advise_retriever, log10x_configure_engine |
| «Оцените экономию на моих данных до развёртывания». | Отчёт об экономии без установки: на основе локального файла логов или вашей существующей платформы логирования. log10x_poc_from_local, log10x_poc_from_siem_submit, log10x_poc_from_siem_status. При запуске без ключа сервер также подключается к публичному демонстрационному набору данных и регистрирует эти три инструмента: они работают на компьютере пользователя и не обращаются к демонстрационному серверу. Если установить LOG10X_DEMO_FALLBACK=off, сервер запустится в режиме POC. В этом режиме недоступны log10x_top_patterns, log10x_investigate, log10x_savings и все инструменты Retriever. |
| «Сколько можно сэкономить и сколько уже удалось сэкономить?» | Прогнозируемая и фактическая экономия с расчётами для каждого шаблона, на которых основаны все значения. log10x_estimate_savings, log10x_savings, log10x_commitment_report |
| «Что сейчас увеличивает расходы?» | Повторяющиеся типы сообщений и службы, влияющие на объём и стоимость, а также изменения по сравнению с прошлой неделей. log10x_top_patterns, log10x_whats_changing, log10x_services |
| «Почему выросла нагрузка на payments-svc?» | Расследование одним вызовом: временная шкала, связанные шаблоны и наиболее убедительные временные свидетельства. Уровень достоверности указывается отдельно, чтобы предположения не выдавались за доказанную причину. log10x_investigate, log10x_metrics_that_moved, log10x_metric_overlay |
| «Этот тип сообщений — шум, отключите его». | Выбранный тип сообщений можно сэмплировать, отбрасывать, уплотнять, переводить на более низкий уровень хранения или выгружать. Примеры и динамика помогают понять последствия выбранного действия. log10x_pattern_mitigate, log10x_pattern_examples, log10x_pattern_trend |
| «У нас только Lambda, без кластера. Установите туда». | План установки адаптируется к бессерверной инфраструктуре: движок запускается как расширение Lambda вместе с OTel-коллектором функции, используется конструкция CDK, а периодический запуск настраивается средствами AWS через плоскость конфигурации S3. log10x_advise_install, log10x_setup_recurring |
| «Получите фактические события, которые я выгрузил». | По запросу получите точные события из собственного S3. log10x_retriever_query, log10x_offload_add, log10x_retriever_register |
| «Распознавайте больше типов моих сообщений». | Скомпилируйте исходный код, бинарные файлы и образы контейнеров в собственную библиотеку символов, чтобы движок мог присваивать имена большему числу типов сообщений. log10x_compile, log10x_compile_link, log10x_compile_status |
Установка
Claude Code
claude mcp add --transport stdio --env LOG10X_API_KEY=your-api-key log10x -- npx -y log10x-mcp
Проверьте подключение с помощью /mcp. Чтобы запустить сервер в режиме только чтения с публичным демонстрационным набором данных, не указывайте флаг --env.
Claude Desktop
Добавьте конфигурацию в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"log10x": {
"command": "npx",
"args": ["-y", "log10x-mcp"],
"env": {
"LOG10X_API_KEY": "your-api-key"
}
}
}
}
Cursor, Windsurf и другие MCP-клиенты
Добавьте запись mcpServers с такими же параметрами: "command": "npx", "args": ["-y", "log10x-mcp"] и LOG10X_API_KEY в env. Если не указывать ключ, сервер запустится в демонстрационном режиме только для чтения.
Подробная инструкция по настройке: https://doc.log10x.com/apps/mcp/
Учётные данные
Для работы инструментов, связанных с учётной записью, нужен API-ключ Log10x. Получить его можно двумя способами:
-
Вход через GitHub: запустите
log10x_signin_start, завершите процесс входа с помощьюlog10x_signin_complete. Ключ будет сохранён автоматически. Инструментlog10x_login_statusпоказывает, от имени кого вы подключены. -
Переменная окружения: задайте
LOG10X_API_KEYнапрямую.
Нет ключа? Сервер запустится в режиме только чтения с публичным демонстрационным набором данных 10x — тем же примером данных, который отображается в консоли на сайте. Анализ, обнаружение и рекомендации по установке будут доступны сразу. Инструменты, изменяющие данные, в этом режиме отключены, чтобы не затрагивать общее состояние демонстрационной среды. Установите LOG10X_DEMO_FALLBACK=off, чтобы запустить сервер в чистом режиме POC: оценка экономии на собственных файлах без учётной записи. Режим определяется при запуске; чтобы определить его заново, перезапустите сервер.
Переменные окружения
Все переменные необязательны. В большинстве случаев достаточно указать LOG10X_API_KEY; можно обойтись и без ключа.
| Переменная | Назначение |
|---|---|
LOG10X_API_KEY | Ваш ключ API Log10x. Если не указывать его, сервер запустится в режиме только для чтения и будет работать с общедоступным демонстрационным набором данных. |
LOG10X_API_BASE | Переопределение базового URL API (по умолчанию https://prometheus.log10x.com). |
LOG10X_ENV_ID | Фиксация конкретного идентификатора среды вместо автоматического поиска в вашей учётной записи. |
LOG10X_DEMO_FALLBACK | Укажите off, чтобы при отсутствии ключа запускаться в режиме POC, а не подключаться к общедоступному демонстрационному набору данных. |
LOG10X_MCP_READ_ONLY | Укажите true или 1, чтобы принудительно включить режим только для чтения: все инструменты, изменяющие данные, откажутся выполнять действия. |
LOG10X_CUSTOMER_METRICS_URL / _TYPE / _AUTH | Подключение собственного хранилища метрик (Prometheus, Grafana Cloud, Mimir, Thanos, AMP) для конфигураций с собственными метриками. |
DD_API_KEY / DD_APP_KEY / DD_SITE | Учётные данные Datadog для загрузки метрик по шаблонам в Datadog. |
PROMETHEUS_REMOTE_WRITE_URL / PROMETHEUS_URL | Конечные точки Prometheus для загрузки и чтения рядов данных по шаблонам. |
__SAVE_LOG10X_RETRIEVER_URL__ / __SAVE_LOG10X_RETRIEVER_BUCKET__ | Конечная точка запросов Retriever и индексируемый им бакет для обратной выгрузки данных. Необходимо указать обе переменные; log10x_retriever_register задаёт эту же пару. URL функции Lambda подписывается с помощью ваших учётных данных AWS. |
__SAVE_LOG10X_RETRIEVER_TARGET__ | Префикс приложения, используемый по умолчанию в качестве целевого объекта запросов обратной выгрузки, например app. |
LOG10X_RETRIEVER_LOG_GROUP | Группа журналов CloudWatch, куда Retriever записывает события запросов; значение соответствует TENX_QUERY_LOG_GROUP. Если запрос не вернёт результатов, эта переменная позволит увидеть, на каком этапе ничего не нашлось. |
LOG10X_RETRIEVER_TIMEOUT_MS / LOG10X_RETRIEVER_POLL_MS | Тайм-аут запроса обратной выгрузки (по умолчанию 90000) и интервал опроса (по умолчанию 1500). |
LOG10X_RETRIEVER_AUTH_HEADER / LOG10X_RETRIEVER_AUTH_VALUE | Переопределение заголовка авторизации для обратной выгрузки; по умолчанию значения определяются активной средой. |
LOG10X_OFFLOAD_BUCKET / LOG10X_STREAMER_BUCKET | Имена бакетов S3, которыми управляют инструменты выгрузки. |
TENX_LICENSE_KEY | Лицензионный ключ движка. Передаётся движку как при компиляции, так и при локальном запуске движка (log10x_resolve_batch, log10x_extract_templates) — и в режиме Docker, и в локальном режиме. В режиме Docker, если движок отклоняет ключ, при автоматическом повторе ключ не передаётся. Запуск продолжается с использованием встроенной ограниченной лицензии образа, а не завершается ошибкой; информация о переходе на ограниченную лицензию записывается в stderr сервера. |
TENX_LICENSE_FILE | Путь к файлу лицензии движка; используется вместо TENX_LICENSE_KEY. Файл читает сам движок, поэтому путь должен быть доступен процессу движка (если движок работает в Docker, путь должен быть доступен внутри контейнера). |
LOG10X_TENX_MODE | Режим local или docker для инструментов локального движка и компиляции. Если переменная не задана, режим определяется автоматически: приоритет отдаётся tenx в PATH, а Docker используется как запасной вариант. Укажите docker, чтобы запускать образ движка вместо локальной установки; это также позволяет обойти отсутствие лицензии у локального tenx. |
LOG10X_TENX_PATH | Путь к локальному исполняемому файлу tenx (используется, когда выбран режим local). По умолчанию — tenx в PATH. |
LOG10X_RUNTIME_IMAGE | Образ движка для запуска в режиме Docker (по умолчанию log10x/pipeline-10x:latest). Поддерживается псевдоним native, который выбирает образ GraalVM-native log10x/edge-10x. |
LOG10X_TENX_IMAGE | Образ движка, используемый для запуска и, в качестве запасного варианта, для log10x_compile. На этапе компиляции не принимается образ с вариантом для выполнения. |
LOG10X_COMPILER_IMAGE | Образ компилятора для log10x_compile / log10x_compile_link (по умолчанию log10x/compiler-10x:1.1.136, закреплённый по digest, чтобы каждый запуск использовал один и тот же компилятор; укажите :latest, чтобы отслеживать выпуски; если переменная не задана, используется LOG10X_TENX_IMAGE). Только вариант образа компилятора может создавать библиотеку символов. |
LOG10X_GH_REPO / LOG10X_GITOPS_REPO_PATH | Репозиторий GitHub и локальный путь для инструментов с поддержкой GitOps. |
Подключение собственных данных (необязательно)
10x сохраняет возможность запрашивать журналы, не оплачивая индексацию всех данных. Receiver отправляет шум, превышающий установленный лимит, в ваш S3, а Retriever при необходимости получает оттуда именно эти события. Инструменты log10x_offload_add и log10x_retriever_register настраивают выгрузку и последующее получение данных. Инструмент log10x_backfill_metric передаёт ряды данных об объёме и стоимости по шаблонам в уже используемые вами Datadog или Prometheus, чтобы данные о затратах отображались вместе с остальными панелями мониторинга.
Безопасность
Сервер локально запускается как дочерний процесс вашего AI-клиента. За пределы компьютера передаются только предварительно агрегированные запросы к метрикам — об объёме и стоимости по шаблонам; исходное содержимое журналов не передаётся. Локальная диагностика с помощью log10x_resolve_batch полностью выполняется на вашем компьютере через stdin и stdout. Для подключения к вашей платформе журналов используются учётные данные с правами только на чтение. Укажите LOG10X_MCP_READ_ONLY=true, чтобы запретить все инструменты, изменяющие данные, независимо от режима.
Изолированный POC: работа без сети
Для оценки, результат которой можно проверить, а не просто принять на веру: MCP-сервер и движок журналов запускаются в одном контейнере с параметром --network none и анализируют образец журналов, который вы самостоятельно экспортировали с помощью собственных учётных данных.
docker run -i --rm --pull=never --network none --hostname localhost \
--cap-drop ALL --security-opt no-new-privileges \
-v "$PWD/poc/logs:/data:ro" -v "$PWD/poc/out:/out" \
-e TENX_LICENSE_KEY -e TENX_AIRGAPPED=true log10x/poc:local
Варианта этой команды с npx нет — и это сделано намеренно. npx при запуске загружает и выполняет пакет, а его сценарий postinstall представляет собой неограниченный код, работающий с теми же сетевыми правами, что и хост. Именно этого изоляция и призвана не допустить. Всё содержимое образа подготавливается на этапе сборки; при запуске контейнера ничего не устанавливается.
Лицензию получаете вы сами с помощью одной видимой команды curl — до того, как в область обработки попадут какие-либо журналы. В этом режиме сервер не получает лицензию самостоятельно. Если лицензии нет, сервер завершится с ошибкой и покажет инструкции, а не начнёт что-либо загружать. Образец журналов также экспортируете вы: log10x_emit_sample_plan создаёт для каждого анализатора сценарий оболочки только для чтения. Вы предварительно просматриваете его, а затем запускаете вне контейнера.
Проверьте настройки одной командой docker inspect, а затем убедитесь в изоляции: отключите Wi-Fi и повторно запустите анализ.
Полное пошаговое руководство, включая проверку сценария экспорта и описание нюансов, которые мы не скрываем: docs/fenced-poc.md.
Открытый исходный код и лицензия
MIT. Пакет опубликован в npm под именем log10x-mcp (Node 20+). Исходный код открыт, поэтому реализацию каждого инструмента можно изучить напрямую. Для инструментов, привязанных к учётной записи, нужна лицензия на продукт Log10x — ключ API. Для общедоступного демонстрационного набора данных лицензия не требуется.
MCP-клиенты запускают сервер как долгоживущий дочерний процесс. После обновления пакета перезапустите клиент, чтобы изменения вступили в силу.
Отчёт о запуске
Это необязательно, регистрация не требуется. Если вы запускаете инструмент на собственных журналах, создайте issue и укажите платформу, с которой он считывал данные, результаты запуска или место, где он остановился, а также хотите ли вы получить ответ. Если ответ не нужен, сообщите об этом — и мы не будем вам писать.
Документация
Почему инструменты используют стабильный идентификатор шаблона: статья в блоге.