API ВЕГА
English

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 и укажите платформу, с которой он считывал данные, результаты запуска или место, где он остановился, а также хотите ли вы получить ответ. Если ответ не нужен, сообщите об этом — и мы не будем вам писать.

Документация

Документация

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