Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Log10x MCP

NPM · LOG10X-MCP

Rank log patterns by volume and cost, then compact, tier down or offload the excess over each cap

Available components

+59 this week 90 Trust /100

Last scanned (10 hours ago)

Scores higher than 92% of npm servers

Category Monitoring and Observability

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security90
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects uuid 9.0.1, reached via @google-cloud/logging > google-gax > uuid. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 110 of 400 dependencies flagged as unhealthy (5 deprecated). View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to log-10x/log10x-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability72
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 43316 tokens (~746/item across 58 items; 57 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 97% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "log10x_signout" implies "wipe" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 59 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 16 Oct 26 +44
    • Known CVEs: fail → unverified ▼ security
    • Injection markers: unverified → pass ▲ security
    • Stability: unverified → pass ▲ security
    • Tool safety: Tool safety not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Dependency health: 0.88 → unverified ▼ functional
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Package version: 1.30.65 → 1.30.68 functional
    • Package version: 1.30.65 → 1.30.67 functional
    • Package version: 1.30.37 → 1.30.66 functional
  • 15 Oct 26 +8
    • Known CVEs: unverified → fail ▼ security
    • Stability: Stability not yet verified: this server's registry entry declares environment variables (an API key or similar), and its server did not start in our sandbox, so we have no schema to compare. security
    • Tool safety: Tool safety not yet verified: this server's registry entry declares environment variables (an API key or similar), and its server did not start in our sandbox, so we have no tool text to scan. security
    • Dependency health: unverified → 0.88 ▲ functional
    • Schema quality: Schema quality not yet verified: this server's registry entry declares environment variables (an API key or similar), and its server did not start in our sandbox, so we have no schema to assess. functional
    • Capabilities: Protocol version not yet verified: this server's registry entry declares environment variables (an API key or similar), and its server did not start in our sandbox, so we never saw its MCP handshake. functional
    • Tool coverage: Tool coverage not yet verified: this server's registry entry declares environment variables (an API key or similar), and its server did not start in our sandbox, so we have no tool definitions to assess. functional
    • Package version: 1.30.37 → 1.30.65 functional
    • Package version: 1.30.37 → 1.30.63 functional
    • Package version: 1.30.37 → 1.30.62 functional
    • Package version: 1.30.54 → 1.30.62 functional
    • Package version: 1.30.54 → 1.30.60 functional
    • Package version: 1.30.37 → 1.30.59 functional
    • Package version: 1.30.54 → 1.30.58 functional
    • Package version: 1.30.54 → 1.30.56 functional
    • Package version: 1.30.37 → 1.30.55 functional
  • 14 Oct 26 −8
    • Known CVEs: fail → unverified ▼ security
    • Stability: Stability not yet verified: this package could not be installed in a clean environment, so we have no schema to compare. security
    • Tool safety: Tool safety not yet verified: this package could not be installed in a clean environment, so we have no tool text to scan. security
    • Dependency health: 0.88 → unverified ▼ functional
    • Schema quality: Schema quality not yet verified: this package could not be installed in a clean environment, so we have no schema to assess. functional
    • Capabilities: Protocol version not yet verified: this package could not be installed in a clean environment, so we never saw its MCP handshake. functional
    • Tool coverage: Tool coverage not yet verified: this package could not be installed in a clean environment, so we have no tool definitions to assess. functional
    • Package version: 1.30.49 → 1.30.54 functional
    • Package version: 1.30.49 → 1.30.52 functional
    • Package version: 1.30.49 → 1.30.50 functional
  • 13 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 12 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
    • Security disclosure: fail → unverified ▼ functional
    • Package version: 1.30.37 → 1.30.49 functional
  • 9 Oct 26 −56
    • Malware scan: pass → unverified ▼ security
    • Stability: 0.77 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: 1.30.37 → 1.30.45 functional
  • 4 Oct 26 +16
    • Malware scan: unverified → pass ▲ security
  • 3 Oct 26 0
    • Malware scan: unverified → pass ▲ security
    • Package version: 1.30.36 → 1.30.37 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Oct 2026 · Analysed npm/log10x-mcp@1.30.68

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo log-10x/log10x-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/log-10x/log10x-mcp/.github/workflows/publish.yml@refs/heads/main
Rekor log index 3280949421
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:45f8b511e722cd049c9b750b81ded932b40749b67301fef74648d53f31d54796b5d3dca2bc1b9d034389323f4f43b1d706aff523d262263edab4c5cf5

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 400 packages
Packages resolved 400
Deprecated 5
Stale 105
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 57 exposed · ~39,546 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
log10x_advise_install ~1,605

Progressive install wizard for the Log10x Reporter / Receiver on Kubernetes. **This is the SINGLE entry point for installs: call it first.** Do NOT call `log10x_doctor` or `log10x_login_status` as a pre-flight; the wizard handles login state, license acquisition, and demo-mode fallback internally, and surfacing the doctor's optional-capability warnings (Retriever, Datadog backfill, cross-pillar metrics) ahead of the install confuses users with concepts that are unrelated to deploying the Reporter/Receiver. Takes a `snapshot_id` from `log10x_discover_env` and walks the user through five decisions, asking one at a time and remembering each answer across turns (the snapshot's wizard session): (1) **app**, `reporter` (dedicated DaemonSet forwarder, zero-touch) or `receiver` (sidecar inside the user's existing forwarder); (2) **forwarder**, Receiver-only, auto-picked when one is detected, asked when multiple; (3) **backends**, array of metrics destinations, can be multiple (e.g., `["log10x", "datadog"]` to report to both SaaS + own backend simultaneously); (4) **airgapped**, opt-in, conflicts only with `"log10x"` in `backends` (engine sends NOTHING to log10x.com); (5) **license_jwt**, auto-fetched from `/api/v1/license/demo` if the user is not signed in, or from `/api/v1/license` with the persisted Auth0 token if they are. Each call merges new args into the session and either asks the next question (returning a markdown prompt) or emits the final install plan once all answers are in. Demo + airgapped surfaces a soft warning (engine downgrades to online mode on demo licenses). Plan is plan-only: emits helm commands + values.yaml; the user runs them. With `log_destination: "datadog"` a Receiver plan adds the step after the POC: the fleet default for every service with no rule (`fleet_default.action` tier_down to Flex, or offload to S3), with the Flex index and its `@routeState:tier_down` filter or the S3 branch, the always-pass sample, and what an error monitor sees. **Ti…

NameTypeReqDescription
actionstring–Plan scope when the wizard is ready to emit. Default: `all`.
airgappedboolean–When true, the Log10x agents send nothing to log10x.com: engine metrics, license re-validation, and update checks all go silent. Use to reduce CISO friction. Conflicts with `"log10x"` in `backends` (…
appstring–Which Log10x app to install. **reporter** = a dedicated DaemonSet forwarder (zero-touch, runs alongside your existing forwarder); **receiver** = a sidecar plugged into your existing forwarder (filter…
backend_credentialsobject–Per-backend credential configuration, keyed by backend kind (one of: datadog, elastic, cloudwatch, prometheus; `log10x` needs none, since it authenticates with the licence JWT). Each entry has a `sec…
backendsarray–Where the engine emits TenXSummary metrics: the user's own TSDB(s), one or more of **prometheus**, **datadog**, **elastic**, **cloudwatch**. When omitted, the wizard asks, listing any backend whose a…
fleet_defaultobject–The fleet default for a Datadog Receiver plan (with `log_destination: "datadog"`). The Receiver values are written only on an engine release that reads `rateReceiverDefaultAction`.
forwarderstring–Receiver-only: which detected forwarder kind to sidecar into. Auto-uses the snapshot's detected forwarder when there's exactly one; the wizard asks when there are multiple.
k8s_team_labelstring–A pod label key whose value names the owning team (e.g. `team`). Receiver plans write `k8sTeamLabel` with it, on an engine release that reads that option, so the metrics carry `tenx_team`.
license_jwt_pastestring–License JWT supplied by the user when `license_source: "paste"` (passing it alone implies `paste`). Minted from `POST /api/v1/license` (signed-in) or `POST /api/v1/license/demo` (anonymous). Maps to…
license_sourcestring–How the engine is licensed. **Defaults to `"builtin"`** when omitted: the plan carries no licence and the engine runs its built-in evaluation licence (10 nodes, 30 days from each start, airgapped). N…
log_destinationstring–Where the forwarder ships the log events (not the metrics; `backends` is the metrics). `datadog` adds the step after the POC to a Receiver plan: the fleet default for every service the POC report giv…
namespacestring–Target namespace. Default: snapshot.recommendations.suggestedNamespace.
release_namestring–Helm release name. Default: `my-<app>` (e.g., `my-reporter`).
snapshot_idstring–ID returned by `log10x_discover_env`, and the one arg the wizard cannot infer. The snapshot is cached for 30 min. Call `log10x_discover_env` first when there is no snapshot yet.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_advise_retriever ~1,366

Given a DiscoverySnapshot (from `log10x_discover_env`), produce an install/verify/teardown plan for the Log10x Retriever. Unlike Reporter + Receiver, the Retriever has no forwarder choice: it is a standalone set of workloads (indexer + query-handler + stream-worker) that read source logs from object storage through a queue and serve an HTTP query endpoint. Two storage providers, picked by `storage_provider`: **aws** (S3 input bucket with an `indexing-results/` prefix, four SQS queues, an IRSA-annotated ServiceAccount), auto-detected from the discovery snapshot or supplied explicitly; **azure** (AKS, Azure Blob containers, four Azure Storage Queues, workload identity), where the chart's own `provision-retriever.sh` creates the resources and the plan quotes it. `blockers` carries the inputs a complete plan is still missing and the plan emits no steps while it is non-empty; the preflight table is the state report beside it, and a FAIL row there is reported, not a gate, so read `preflight_summary.fail` as well as `blockers`. Verify probes follow the provider: pods Ready, indexer processing, query endpoint responding, then S3 + SQS probes on aws and Blob + Storage Queue probes on azure. Teardown uninstalls the Helm release; on aws the S3 / SQS / IAM lifecycle stays with Terraform, on azure the last step runs the provisioning script with `--destroy` to delete the resource group it created.

NameTypeReqDescription
actionstring–Plan scope. Default: `all`.
aks_cluster_namestring–AKS cluster the release installs into (azure only). Used by the provisioning command (`--create-aks` for a new cluster) and by the `az aks get-credentials` step that points kubectl at it.
azure_client_idstring–Client id of the user-assigned managed identity federated to the release ServiceAccount (azure only). The provisioning script writes it into the values file it produces, under `storage.azure.auth.cli…
azure_queuesobject–Azure Storage Queue names on the storage account (azure only). Default: tenx-index / tenx-query / tenx-subquery / tenx-stream, matching the provisioning script.
azure_tenant_idstring–Entra tenant id (azure only). The provisioning script writes it into the values file it produces, under `storage.azure.auth.tenantId`.
destinationstring–Destination SIEM for the kept slice (e.g. `datadog`, `cloudwatch`, `splunk`). Gates SIEM down-tier sub-sections in the offload markdown.
iam_role_arnstring–IAM role ARN for the Retriever ServiceAccount (IRSA) (module output: iam_role_arn). Auto-detected from snapshot.
index_bucketstring–S3 path for indexed results (include prefix). Default: `<index_source_bucket>/indexing-results/`.
index_containerstring–Blob path for indexed results (azure only), as `account/container/path`. Default: `<storage_account>/tenx-index/tenx`.
index_queue_urlstring–SQS URL for index operations (module output: index_queue_url). Auto-detected from snapshot.
index_source_bucketstring–S3 bucket for source logs (module output: index_source_bucket_name). Auto-filled from snapshot.recommendations.retrieverS3Bucket when present.
infra_modestring–How the customer provisions AWS infra. **terraform** = emit .tf module block. **cli** = emit aws-cli commands. **existing** = infra already provisioned, wizard skips infra steps and jumps to helm val…
input_containerstring–Azure Blob container holding source logs (azure only). Bare container name, e.g. `logs`.
license_jwt_pastestring–License JWT supplied by the user when `license_source: "paste"`.
license_sourcestring–How the engine is licensed. Defaults to `"builtin"`: nothing is minted and no key is written, and the engine runs its built-in evaluation licence (10 nodes, 30 days from each start, airgapped). Pass…
locationstring–Azure region for the provisioning command, e.g. `eastus` (azure only).
namespacestring–Target namespace. Default: snapshot.recommendations.suggestedNamespace.
query_queue_urlstring–SQS URL for query operations (module output: query_queue_url). Auto-detected from snapshot.
release_namestring–Helm release name. Default: `my-retriever`.
resource_groupstring–Azure resource group for the provisioning command and the teardown (azure only).
snapshot_idstringyesID returned by `log10x_discover_env`. The snapshot is cached for 30 min.
storage_accountstring–Azure storage account holding the input and index containers (azure only). Flat namespace only: a hierarchical-namespace account reorders listings and is refused by the engine at construction.
storage_providerstring–Which object store the Retriever reads. **aws** (default) = S3 buckets, four SQS queues, IRSA. **azure** = Azure Blob containers, four Azure Storage Queues, AKS workload identity, behind the chart's…
stream_queue_urlstring–SQS URL for stream operations (module output: stream_queue_url). Auto-detected from snapshot.
subquery_queue_urlstring–SQS URL for sub-query operations (module output: subquery_queue_url). Auto-detected from snapshot.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_baseline ~483

Pre-flight readiness gate for cost-reduction tools. Verifies Reporter age (default 7d), pattern-coverage stability, and absence of acute anomalies before configure_engine / estimate_savings should run. Returns structured `not_ready` with the specific gate(s) that failed.

NameTypeReqDescription
destinationstring–Destination SIEM. Required to project dollar baselines and decide which top contributors are compactable. Auto-detected from `env.analyzer` when omitted; falls back to `not_ready/no_destination` if n…
effectiveIngestPerGbnumber–Customer-negotiated $/GB for the destination. When supplied, baseline dollar projections use this rate and `rate_source` resolves to `customer_supplied`. Omit to fall back to vendors.json list pricin…
environmentstring–Environment nickname for multi-env setups.
horizonstring–Lookback window for the baseline. 30d is the default and what `recommended_target_range` is calibrated against; 90d trades freshness for stability on lower-volume tenants.
monthly_volume_gbnumber–What-if volume lens (forecast mode): model the environment at THIS monthly volume (decimal GB/month) instead of its measured volume. The real per-pattern shares and pattern mix are held fixed; only a…
statedDailyGbnumber–Customer-stated daily SIEM ingest in GB. When supplied, the coverage gate compares observed bytes against this number; ≥80% passes, <80% returns `not_ready/coverage_low`. Omit to skip the coverage ga…
viewstring–Output format. Always "summary": the typed envelope. Field retained for backward-compat with callers that still pass `view: "summary"`.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_commitment_report ~348

Weekly aggregate against a commitment record opened by `log10x_configure_engine`. Reports delivered bytes (and dollars at the contract rate where the contract allows), projects the next 90 days from a weak Beta(2,2) prior updated with weekly evidence, and renders a markdown summary suitable for sharing. REQUIRES a commitment record opened by a prior configure_engine apply; without one there is no baseline to report against.

NameTypeReqDescription
action_intent_pathstring–Override path to data/action-intent.json (relative to the gitops repo root or absolute). Used only when format=weekly_digest.
commitment_idstring–Commitment record id (created by log10x_configure_engine on PR-merge). If omitted, resolves the most recent commitment for the active service.
environmentstring–Environment nickname; defaults to the active env.
formatstring–cfo_md=executive markdown with weekly chart and forward confidence; summary=typed envelope only; json=full structured data; weekly_digest=7-day operational digest from the recurring tick audit trail.
history_pathstring–Override path to the recurring-tick JSONL audit trail (default: $LOG10X_RECUR_HISTORY_PATH or /tmp/log10x-recur-history.jsonl). Used only when format=weekly_digest.
periodstring–Reporting window. 30d=last 30 days, 90d=last 90 days, ytd=since Jan 1 of current year.
servicestring–Service name to resolve a commitment by: used when commitment_id is omitted. When both are present, commitment_id wins.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_compile ~2,839

Compile a symbol library from any mix of sources, waiting inline for the result when it is quick and handing back a pollable `job_id` when it is not. It waits up to `max_wait_ms` (default 45s): a small compile, and EVERY re-run (which reuses prior units via the pinned output folder), finishes inside that window and returns the finished library plus the full scan/link diagnostics in ONE call; a long first compile of a large tree overruns the wait and returns a running `job_id` to poll with log10x_compile_status, or just call this tool again later, since the output is pinned and a finished run is returned by the next call. `max_wait_ms: 0` returns the job_id immediately (fire-and-forget). Sources combine freely: a local folder of source code / binaries (`source_path`), GitHub repositories via the GitHub REST API (`github_repos`, with optional `github_branch` / `github_folders`), docker/OCI images (`docker_images`), Helm charts (`helm_charts`), and Artifactory artifacts (`artifactory_instance` + `artifactory_repo`, with `artifactory_files` / `artifactory_folders`). The run scans the sources (Java, Go, Python, JS/TS, Scala, C/C++, C#, plus binaries) and writes per-file `.10x.json` symbol units plus a single linked `.10x.tar` library, the AOT artifact the 10x runtime later uses to assign hidden classes (TenXTemplates) to events. GitHub pull REQUIRES a token even for public repos: pass `github_token` or set GH_TOKEN; without one the tool returns not_configured. Docker-image pull is daemonless (podman bundled in compiler-10x, `--cap-add SYS_ADMIN` granted automatically) and public images need no credentials. Helm pull is a meta-source (renders the chart, by default also pulls the images it references); OCI/URL chart refs resolve standalone while a bare `repo/chart` needs a matching `helm_repos` entry. Artifactory pull needs a token (`artifactory_token` or ARTIFACTORY_TOKEN). REQUIRES the COMPILER flavor: runs `log10x/compiler-10x @apps/compiler` by default, or a local com…

NameTypeReqDescription
artifactory_filesarray–Specific files within artifactory_repo to pull, each a repo-relative path (e.g. ["dist/app-1.0.0.tar.gz"]). Combine with artifactory_folders; at least one of the two is required when pulling from Art…
artifactory_foldersarray–Folder paths within artifactory_repo to pull (e.g. ["com/acme/app"]). Traversed recursively unless artifactory_recursive is false. At least one of artifactory_files / artifactory_folders is required…
artifactory_instancestring–Base URL of an Artifactory instance to pull artifacts (Java archives, .NET assemblies, etc.) from and scan, e.g. "https://demo.jfrog.io/artifactory". Requires artifactory_repo and a token (artifactor…
artifactory_recursiveboolean–Whether artifactory_folders are pulled recursively (sub-folders too). Default true. Ignored when only artifactory_files are given.
artifactory_repostring–Artifactory repository key to pull from, e.g. "libs-release-local". Required when artifactory_instance is given. Scope the pull with artifactory_files and/or artifactory_folders.
artifactory_tokenstring–Artifactory API access token for artifactory_instance. Falls back to ARTIFACTORY_TOKEN from the MCP server environment. Required when pulling from Artifactory. Reaches the compiler as process environ…
docker_imagesarray–Docker/OCI images to pull and scan for symbols, as image refs, fully-qualified recommended (e.g. ["docker.io/grafana/grafana:11.1.0"]; a port-bearing host like "harbor.corp:8443/team/app:2.1" is fine…
docker_tokenstring–Registry token/password for docker_images (fed to `docker login --password-stdin` against the default registry, Docker Hub). Falls back to DOCKER_TOKEN from the MCP server environment. Omit for publi…
docker_usernamestring–Registry username for docker_images login, also used for private images a Helm chart references (helm_pull_images). Authenticates the default registry (Docker Hub). Falls back to DOCKER_USERNAME from…
github_branchstring–Branch to pull for ALL github_repos. Omit to pull each repo's default branch.
github_foldersarray–Folders within each GitHub repo to pull (e.g. ["src/main/java"]). Omit to pull entire repos. Narrowing this speeds up both the pull and the scan.
github_reposarray–GitHub repositories to pull (via the GitHub REST API) and scan, each as owner/repo (e.g. ["apache/commons-cli"]). REQUIRES a GitHub token, even for public repos: pass github_token, or have GH_TOKEN /…
github_tokenstring–GitHub access token for github_repos (a fine-grained token with read-only Contents access to the target repos suffices). Falls back to GH_TOKEN / GITHUB_TOKEN from the MCP server environment. Reaches…
helm_chartsarray–Helm charts to render and scan, as chart refs. A meta-source: the compiler runs `helm template` / `helm show chart` to extract the docker images and GitHub source repos the chart references, then (by…
helm_pull_imagesboolean–Whether to pull + scan the docker images a chart references (the richest symbol source for a chart). Default true. When true the tool grants the compile container `--cap-add SYS_ADMIN` (daemonless po…
helm_pull_reposboolean–Whether to pull + scan the GitHub source repos a chart references (via org.opencontainers.image.source annotations). Default false because it REQUIRES a GitHub token (engine refuses an empty token);…
helm_reposarray–Helm chart repositories to register before resolving helm_charts, each as "name=url" (e.g. ["ingress-nginx=https://kubernetes.github.io/ingress-nginx"]). Required for bare "repo/chart" names; unneces…
library_namestring–Base name for the linked .10x.tar library file and the compile runtimeName. Sanitized to [A-Za-z0-9_.-].
max_wait_msinteger–How long to wait inline (ms) for the compile to finish before handing back a job_id to poll. Default 45,000 (45s): small compiles, and re-runs over unchanged local sources (the engine skips files who…
modestring–Execution backend. `auto` (default) prefers Docker (the compiler image, guaranteed compiler flavor) and falls back to a local compiler-flavor tenx; the backend is chosen once, before the output folde…
output_pathstring–Absolute path where the symbol library is written (the .10x.json units and the linked .10x.tar). Defaults to a fresh temp directory, returned in the result as data.payload.output.folder.
source_pathstring–Absolute path to a local folder of source code / binaries to scan, traversed recursively. Parsed with a grammar or AST: Java, Scala, Python, Go, C/C++, C#, JavaScript, TypeScript (.ts; .tsx goes thro…
timeout_msinteger–Hard cap on compile wall time in milliseconds. Default 1,800,000 (30 min). The engine's own whole-scan cap (scanOperationTimeout, bundled default 10 min) is raised to 90% of this value on the command…
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_compile_link ~564

Link an existing folder of `.10x.json` symbol units (from a prior compile) into a single `.10x.tar` library, with NO source scan. This is the same compiler-flavor Compiler app invoked with link-only arguments: the units folder is the `outputSymbolFolder` and no source is mounted, so the engine reuses the units already on disk (scans 0 new files) and merges them into the library, which is written into that same folder. Like log10x_compile it waits inline up to `max_wait_ms` (default 45s; linking is usually fast, so it normally returns the linked library in ONE call) and otherwise hands back a `job_id` to poll with log10x_compile_status. Use it to re-link after editing or pruning units, to assemble a library from a units tree built piecemeal, or to rebuild a library from the output folder of a prior log10x_compile. REQUIRES the COMPILER flavor (runs `log10x/compiler-10x @apps/compiler` by default, or a local compiler-flavor `tenx` with mode="local"; an engine reporting the flavor as `cloud` is accepted, the native runtime build is refused). No Kubernetes or Log10x account needed.

NameTypeReqDescription
library_namestring–Base name for the linked .10x.tar and the runtimeName. Sanitized to [A-Za-z0-9_.-].
max_wait_msinteger–How long to wait inline (ms) for the link to finish before handing back a job_id to poll. Default 45,000 (45s). Linking usually finishes inside this and returns the library in ONE call. A very large…
modestring–Execution backend, same contract as log10x_compile's `mode`: `auto` prefers the compiler image, `docker` forces it, `local` uses a compiler-flavor tenx. Only the compiler flavor can link; see log10x_…
timeout_msinteger–Hard cap on link wall time in ms. Default 600,000 (10 min). Linking is much faster than scanning, but a very large units tree can still take minutes.
units_pathstringyesAbsolute path to a folder of .10x.json symbol units (produced by a prior compile) to link into a single .10x.tar library. Traversed recursively; the existing units are merged with NO source re-scan,…
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_compile_status ~332

Poll an asynchronous compile started by log10x_compile (or a link started by log10x_compile_link), by its `job_id`. Returns `job_status` (running / completed / failed / timed_out), the units produced so far + the linked `.10x.tar` (path + size), elapsed time, the engine exit code, and a credential-redacted tail of the engine log. Crucially, it promotes the engine's scan/link DIAGNOSTICS into the envelope so the compiler is not a black box at 100k to 500k file scale: per-language scan-failure counts with capped failure samples (which files failed to parse and why), and the link report (units merged / skipped, files excluded by folder/name filter, and the symbol-type histogram: class / enum / log / exec). Those appear once the compiler-10x image carries the engine diagnostics change; on an older image the tool degrades to unit counts + the log tail. The first terminal poll captures the exit code into the job record and frees the container; later polls stay readable and the compiled library is never removed.

NameTypeReqDescription
job_idstringyesThe job id returned by log10x_compile (data.payload.job_id).
log_linesinteger–How many trailing engine-log lines to include in data.payload.log_tail (credential-redacted). 0 to omit. Raise it when diagnosing a failed or incomplete run.
viewstring–summary returns the typed envelope (data.payload.job_status, .loss_markers, .diagnostics, .output, .log_tail).
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_cost_options ~577

CALL THIS after the user picks 'show me what cutting costs would look like' from log10x_start. At Receiver/Retriever tier returns the 6-mode outcome-first menu (drop / sample / compact / tier_down / offload / observe_only), each gated by the customer's detected capabilities (receiver tier, SIEM type, offload bucket). At Reporter-only or Dev tier, collapses to 2 entries: observe_only + install_receiver (with prose explaining that the full 6-mode menu requires the Receiver in-path). All non-observe modes route to log10x_explain_mode. The envelope carries must_render_verbatim (show to user as-is), must_ask_user (numbered question), and forbidden_next_actions (do not call estimate_savings, configure_engine, or pattern_mitigate until the user picks). Accepts siem_lens (what-if destination): keeps the measured volumes, prices + gates for that destination at list rates, and stamps siem_actual vs siem_lens in the envelope.

NameTypeReqDescription
destinationstring–Destination stack. When set, routes_to.args carries THIS destination forward to estimate_savings: overrides the env-auto-detected SIEM. Pass when the upstream tool (baseline / configure_engine) alrea…
monthly_volume_gbnumber–What-if volume lens (forecast mode), forwarded to the estimate_savings this menu routes to. cost_options scales nothing itself; it carries this value into routes_to.args so the projection survives th…
pattern_hashstring–Optional pattern hash to scope the cost option menu to a single pattern. When present, routes_to.args will include a proposed_config row for this hash.
servicestring–Scope to a service. Passed forward to estimate_savings when the user picks a mode.
siem_lensstring–What-if destination lens (alias of `destination` with provenance stamping): gate the 6-mode menu and downstream pricing for THIS destination while the connected pipeline keeps its actual one. The env…
splunk_pricingstring–Splunk only: `ingest` (bytes per day) prices compact; `workload` (vCPU) meters compute, where compaction is not a saving, so the compact mode is gated with that reason. Set from what the user said; a…
target_percentnumber–% reduction goal carried from log10x_start pick, pre-filled when the user stated a target.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_customer_metrics_query ~269

Low-level PromQL passthrough to the customer metric backend configured via LOG10X_CUSTOMER_METRICS_URL. Returns the raw Prometheus response shape plus metadata about which backend served the query. This is the escape hatch for cross-pillar investigations the higher-level primitives don't cover: use it to explore the customer backend's label universe, run a one-off PromQL expression, or verify that a specific metric exists before correlating against it. For typical cross-pillar workflows, compose the deterministic primitives: `log10x_metrics_that_moved` → `log10x_rank_by_shape_similarity` → `log10x_metric_overlay`.

NameTypeReqDescription
endstring–End of the range window. Required when mode=range.
modestring–`instant` runs a point-in-time query; `range` runs over a time window with a bucket step.
promqlstringyesPromQL expression to execute against the customer metric backend. Example: `apm_request_duration_p99{service="payments-svc"}`.
startstring–Start of the range window: ISO8601 or UNIX seconds. Required when mode=range.
stepstring–Bucket step for range queries, in seconds. Required when mode=range.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_datadog_change_report ~728

Weekly change report for a Datadog install, read from the per-pattern series the engine's Datadog metric output publishes (`emitted_events_summaryVolume`, tagged message_pattern, tenx_hash, k8s_container, tenx_user_service, routeState, and tenx_team once the team label ships). Lists the statements new in a service since `since` (a duration like `7d` or a date; stateless, so pass the previous report's `next_since` to continue), each with lines a day, estimated Standard indexing cost a month at Datadog list price, whether a rule held it, and the rule that did (the container's row and action in caps.csv / actions.csv, read from the gitops repo or the policy ConfigMap). Ends with proposed per-service rows in the plan's form: "<service>: any statement above N lines a day goes to Flex. Today that is these K statements, about $X a month." `view: "monitors"` instead renders two Datadog monitor definitions as JSON for the account owner to apply: a metric monitor that fires when a statement's route turns tier_down or offload, and an anomaly monitor with weekly seasonality that fires when a statement's volume rises above its weekly baseline. Read-only: Datadog's query API with DD_API_KEY / DD_APP_KEY / DD_SITE (GET only), and the engine files. Writes nothing.

NameTypeReqDescription
actionstring–Where a proposed row sends a statement: `tier_down` (Flex, the default) or `offload` (S3) for an account without Flex.
environmentstring–MCP environment nickname, used to find the gitops repo holding caps.csv and actions.csv.
headroomnumber–Multiplier on the fleet's largest kept statement, for a service with no history of its own. Default 2.
limitinteger–Most new statements listed. Default 25.
lookbackstring–How far before `since` to look for earlier lines of a statement. Default `28d`, at most `90d`.
notifyarray–Notification handles for the monitors view (e.g. `@slack-log-cost`).
sincestring–Start of the report: a duration back from now (`7d`, `36h`) or a date or ISO timestamp (`2026-10-06`). A statement is new when it had no line in its service in the `lookback` before this point. Pass…
sitestring–Datadog site (e.g. `us5.datadoghq.com`). Defaults to DD_SITE, then `datadoghq.com`.
team_tagstring–Team tag key on the series (e.g. `tenx_team`). Omit to detect `tenx_team` on the series; the team is shown only when present.
tenx_envstring–`tenx_env` tag value to scope the series to. Omit for every environment.
viewstring–`markdown` (default): the weekly change report. `summary`: the same data without the rendered page. `monitors`: two Datadog monitor definitions as JSON (a statement turning tier_down or offload; a st…
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_datadog_spike_audit ~568

Prices an account's log spikes from Datadog's estimated usage metrics, with no 10x install. Reads `datadog.estimated_usage.logs.ingested_events` (datadog_is_excluded:false, by service and datadog_index) and `datadog.estimated_usage.logs.ingested_bytes` (by service) in hourly sums over `lookback` (default `90d`). An hour is a spike hour for a service when its indexed events exceed `spike_multiplier` (default 3) times the median of the same hour over the 7 days before; consecutive hours are one spike, and a service's first 7 days set its baseline. Each spike's excess events are priced at the Standard rate (list $1.70 per million, `standard_rate_per_million` overrides) and its excess bytes at ingestion (list $0.10 per GB, `ingestion_rate_per_gb` overrides). Estimates what a fleet default limit, `headroom` (default 2) times the service's largest hour outside its spikes, would have held, as an upper bound. Returns services by spike cost, each spike (start, hours, index, excess events, cost, held), the total a year at that rate, and the caveats. Read-only: Datadog's query API with DD_API_KEY / DD_APP_KEY / DD_SITE (GET only). Writes nothing.

NameTypeReqDescription
headroomnumber–The fleet default's multiplier on a service's largest hour outside its spikes. Default 2.
ingestion_rate_per_gbnumber–The account's ingestion rate in dollars per GB. Default: list, $0.10.
limitinteger–Services listed, by spike cost. Default 10.
lookbackstring–Days back from now to read, e.g. `90d` (default), from `8d` to `455d`; older days the API does not return are left out. The first 7 days of each service set its baseline.
sitestring–Datadog site (e.g. `us5.datadoghq.com`). Defaults to DD_SITE, then `datadoghq.com`.
spike_multipliernumber–An hour is a spike when its events exceed this many times the median of the same hour over the 7 days before. Default 3.
standard_rate_per_millionnumber–The account's Standard indexing rate in dollars per million events. Default: list, $1.70 (15-day retention).
viewstring–`markdown` (default): the audit page. `summary`: the same data without the page.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_dependency_check ~276

Given a pattern identity, generate commands to scan the user's SIEM/observability stack (Datadog monitors, Splunk saved searches, Grafana dashboards, Prometheus alert rules) for anything that depends on that pattern. **Call this before any mute, drop, or source-code deletion**: deleting a log line that feeds a live alert silently breaks the alert. Also call when a developer asks "am I allowed to delete this log.info() call" or "what references this pattern".

NameTypeReqDescription
patternstringyesPattern name (e.g., "Payment_Gateway_Timeout")
servicestring–Service name to scope the scan
severitystring–Severity level
vendorstring–SIEM vendor to scan. Omit to auto-detect from ambient credentials (DD_API_KEY+DD_APP_KEY → datadog; SPLUNK_HOST+SPLUNK_TOKEN → splunk; ELASTIC_URL → elasticsearch; AWS chain → cloudwatch). When multi…
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_discover_env ~670

Read-only discovery of the caller's Kubernetes cluster + AWS account: i.e. the customer's INFRASTRUCTURE environment, NOT their Log10x account. **When the user wants to install Log10x: call this tool FIRST and then `log10x_advise_install`, that's the whole pre-flight. Do NOT call `log10x_doctor` / `log10x_login_status` / `log10x_savings` / etc. before the install; the wizard handles all login + license logic internally, and surfacing those tools' optional-capability warnings (Retriever, Datadog backfill, cross-pillar metrics) makes the install feel more complicated than it is.** Probes kubectl (workloads, DaemonSets, Helm releases, service-account IRSA annotations, metrics-backend agents) and AWS (EKS, S3, SQS, CloudWatch log groups) to detect: which forwarder is running (Fluent Bit, Fluentd, Filebeat, Logstash, OTel Collector, Vector), which log10x apps are already installed (Reporter, Receiver, Retriever), and which metrics backends are already deployed (Datadog Agent, Prometheus, Elastic, CloudWatch Agent, etc.). Returns a terse markdown report + a `snapshot_id` (cached 30 min) the advisor tools consume. **Do NOT call this tool to answer "which Log10x environments do I have access to" / "list my envs" / "switch envs": those are about the user's Log10x ACCOUNT environments, use `log10x_login_status` for that.** Call THIS tool only when the question is about k8s workloads, AWS infra, or "what's deployed in my cluster". Every shell call is logged in the snapshot's `probeLog` for audit. No writes, no state mutation: only `kubectl get` and `aws ... describe/list` verbs. **Tier prerequisites**: none, this is a pre-install tool and runs against any customer environment.

NameTypeReqDescription
bucket_hintstring–Substring to match against S3 bucket names. Defaults to "retriever"; also matches "log10x" and "tenx" out of the box.
eks_cluster_namestring–EKS cluster to describe. If omitted and exactly one cluster exists in the account/region, that one is auto-selected.
forwarder_hintstring–Override forwarder detection. Use this if multiple forwarders are running and you want the advisor to target a specific one.
namespace_hintstring–Preferred namespace for new installs. Defaults to "logging" unless an existing forwarder namespace is found.
namespacesarray–Explicit list of Kubernetes namespaces to probe. If omitted, the tool auto-picks up to 5 likely candidates (demo, logging, observability, otel-demo, default) plus kube-system.
regionstring–AWS region to probe. If omitted, uses the region from your AWS CLI profile.
skip_awsboolean–Skip all AWS probes (for cluster-only discovery).
skip_kubectlboolean–Skip all kubectl probes (for AWS-only discovery or when cluster access is restricted).
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_discover_join ~633

Auto-discover the structural join label between Log10x pattern metrics and the customer metric backend. Runs Jaccard similarity on label value sets across candidate label pairs, returns the best pair above the 0.7 threshold plus runner-ups above 0.5. The result is cached per-session keyed by (environment, customer-backend-endpoint) so the cross-pillar primitives (metrics_that_moved, rank_by_shape_similarity, metric_overlay) can auto-run this once at session start and reuse the cached join without re-probing. Agents should normally NOT need to call this tool directly: the primitives call it internally. The explicit tool exists for power users who want to inspect the join universe or force a re-discovery after backend changes. When no pair crosses the threshold, returns a structured `no_join_available` response with the full probed-label matrix and recommended next actions.

NameTypeReqDescription
candidate_labelsarray–Optional subset of customer-side labels to probe (max 100). An AI caller reasoning over results can't meaningfully digest more than a few dozen; the cap reflects that, not a backend constraint. When…
customer_metrics_authstring–Per-call override for the customer metrics auth credential (bearer token, API key, or apiKey/envId for log10x type).
customer_metrics_typestring–Per-call override for the customer metrics backend type. Defaults to generic_prom if customer_metrics_url is supplied without a type.
customer_metrics_urlstring–Per-call override for the customer metrics backend URL. Wins over LOG10X_CUSTOMER_METRICS_URL env var. Use this when the MCP server was launched with an empty/stale URL and you want to redirect to a…
environmentstring–Environment nickname (for multi-env setups).
force_refreshboolean–When true, bypass the session cache and re-run the Jaccard pass against the live backends.
minimum_jaccardnumber–Minimum Jaccard similarity to accept as a primary join. Default 0.7. Lower to 0.5 for exploratory discovery, 0.3 for noisy environments with historical stale values.
timeRangestring–Alias for `window` for consistency with other Log10x tools.
windowstring–Time window for label value enumeration (e.g., "10m", "1h", "30m"). When set, both the Log10x and customer backends are queried with [now - window, now] filtering, excluding stale label values from s…
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_discover_labels ~146

List the labels Log10x metrics can be filtered or grouped by. Call at the start of a session, or before calling any tool that takes a label/filter argument: stops the model from guessing label names like "namespace" when the label is "k8s_namespace". Pass a label name to get its distinct values.

NameTypeReqDescription
environmentstring–Environment nickname (for multi-env setups).
labelstring–If set, return distinct values for this label (e.g., "tenx_user_service" returns every service). If omitted, return the full label name list.
limitnumber–Max values to return when a label is specified.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_doctor ~183

Run a startup health check on the Log10x MCP installation. Probes: environment configuration validity, prometheus.log10x.com reachability and auth, Reporter tier detection (Edge / Cloud / none), Retriever endpoint configuration (informational), Datadog destination credentials (informational), paste endpoint reachability, cross-pillar enrichment floor (v1.4, when LOG10X_CUSTOMER_METRICS_URL is set). Returns a markdown report with pass / warn / fail per check and remediation hints. Call this once at the start of a session to verify the install, or any time a tool returns an unexpected error to isolate whether the problem is configuration or transient.

NameTypeReqDescription
environmentstring–Optional environment nickname to probe. In multi-env setups, omit to run the checks against ALL configured environments; pass a specific nickname to check only that one.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_emit_sample_plan ~947

Render a read-only shell script that exports a log sample out of the user's OWN log analyzer, with the user's OWN credentials, on a machine the user chooses: and then stop. This server does not run the script and, in the fenced profile, could not: it runs inside a container started with `--network none`. That split is the point. Code that sees log data has no network; code that has network is the user's own `aws` / `curl` driven by a script short enough to read once. Use this as step 2 of the fenced POC (step 1 is minting the licence with one visible curl, step 3 is running `log10x_poc_from_local` inside the fenced container over the exported files, step 4 is verifying the fence with `docker inspect` and by turning Wi-Fi off). Also use it whenever the credentials live somewhere this process does not: a jump host, a locked-down laptop, another team. Args: siem (required: cloudwatch / splunk / elasticsearch / opensearch / datadog), window (default 14d), target_event_count (default 1,000,000, the same default `log10x_poc_from_siem_submit` uses, so both paths sample the same size), scope, query, output_dir (default ./poc/logs), write_script (default true, writes export-sample.sh mode 0755 in the working directory). Returns the script text, the read-only API operations and credential variables it touches, a review checklist, and the exact `log10x_poc_from_local` arguments to call next. The sampling matches `log10x_poc_from_siem_submit` bucket for bucket (same stratified sub-windows, same per-bucket cap) so a fenced POC and a credentialed POC over the same window differ because the logs differ. Emitted scripts contain no log10x hostname; the server refuses to return one that does. Read-only: it renders text and writes one script file; it contacts nothing.

NameTypeReqDescription
output_dirstring–Where the script writes the exported sample, relative to wherever the user runs it. Default `./poc/logs`, which is the directory the documented `docker run` line mounts read-only at /data.
querystring–Analyzer-native filter layered on top of `scope`: a CloudWatch filter pattern, an SPL fragment, a Lucene query_string for Elasticsearch, a Datadog query. Narrowing here narrows what the savings proje…
scopestring–Analyzer-native scope. CloudWatch: log group name or prefix (`/aws/ecs/*`, the asterisks are stripped, CloudWatch matches on prefix). Splunk: index name. Elasticsearch / OpenSearch: index pattern (de…
siemstringyesWhich log analyzer to export the sample from. One script per analyzer: `cloudwatch` (aws CLI: DescribeLogGroups + FilterLogEvents), `splunk` (search/jobs/export), `elasticsearch` and `opensearch` (_c…
target_event_countnumber–Target event count for the export. Default 1,000,000 (~500 MB at 500 B average): the same default `log10x_poc_from_siem` uses, so a fenced POC and a credentialed one see samples of the same size. Low…
windowstring–How far back to sample. Accepts `1h`, `24h`, `7d`, `14d`, `30d`. Default `14d`, matching `log10x_poc_from_siem`: a wide window is what makes first-seen, growth and stable-versus-new readable at all.
write_scriptboolean–Default true: also write the script next to the working directory as `export-sample.sh` (mode 0755) so the user can read it in an editor rather than out of a chat transcript. Set false to get the tex…
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_env_diff_vs_envvars ~297

Compare the stored env-config document against the `LOG10X_*` environment variables the env-var bridge would have produced, and report per-field disagreements with remediation recommendations. **Call this when** the user says "but I set the env var" or downstream tools report a value the user thinks they overrode: the on-prem store wins over env vars per resolver precedence, and silent-override is the most common boot-time surprise. Args: `env_id` (required, env_id UUID or nickname). For each disagreeing field (env_id, nickname, cluster.*, destination.*, streamer.*, retriever.*, offload_destinations[0].*), returns `{ field, stored, envvar, recommendation }`. The recommendation tells the user to either unset the LOG10X_* env var (preferred: on-prem store is the source of truth) or to update the stored doc via the matching setter (log10x_dest_set for destination, log10x_set_gitops_repo for gitops). Pure-on-prem-store configs (no LOG10X_* env vars set) return ok:true with an empty diff and a note that no ambiguity is possible.

NameTypeReqDescription
env_idstringyesEnv identifier: either the `env_id` UUID or the `nickname` from the env-config document. Resolved by walking the store chain (k8s → aws_ssm → gcp_sm → azure_ac → local).
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_env_validate ~304

Run schema validation + cross-field sanity checks on a stored env-config document at `~/.log10x/envs/<env_id>.json`. **Call this** after any edit to the env doc (via `log10x_dest_set` / hand-edit / restore) or pre-flight before downstream tools that need a coherent config (commitment_report, configure_engine, offload-recipe emitters). Args: `env_id` (required, env_id UUID or nickname). Returns the canonical zod schema parse result PLUS findings across: destination.region required for vendors that need it (cloudwatch / datadog / azure-monitor / gcp-logging); ingest_url shape sanity (http(s):// prefix, splunk /services/collector suffix); streamer.url / retriever.url shape; cluster cloud type vs offload destination type alignment (eks↔s3, gke↔gcs, aks↔azure_blob); at-least-one active offload destination; SIEM region vs offload destination region (cross-region egress warning). Each finding carries severity (error / warning / info) and a remediation recommendation. Errors block downstream actions; warnings/info surface for the user.

NameTypeReqDescription
env_idstringyesEnv identifier: either the `env_id` UUID or the `nickname` from the env-config document. Resolved by walking the store chain (k8s → aws_ssm → gcp_sm → azure_ac → local).
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_estimate_savings ~2,339

[FRESH-SESSION ROUTING: if this is the user first cost question of the session, call log10x_start first instead, it returns the orientation menu the user needs before any per-tool action.] Two-mode savings estimator with percent-first reporting and a dollar overlay. `forecast` projects bytes_in -> bytes_out and percent reduction for a proposed plan; pass `effective_ingest_per_gb` (or rely on the account profile list-price rate) to overlay $/mo per pattern and in totals. `verify` counts realized savings from the engine `routeState` label over a window with cap-hit / drift / new-patterns / leakage attribution, leading with percent and adding the dollar overlay only when a rate is set. Without a rate, dollar fields are emitted as null (never as a fabricated $1/GB number); the envelope carries `rate_source: list_price | customer_supplied | unset` so callers can show how the overlay was derived. Accepts siem_lens (what-if destination): keeps the measured volumes, prices + gates for that destination at list rates, and stamps siem_actual vs siem_lens in the envelope. REQUIRES Reporter-tier cost attribution (per-pattern bytes in the metrics backend). Before anything is deployed, use log10x_poc_from_local or log10x_poc_from_siem_submit instead.

NameTypeReqDescription
allow_lossyboolean–Permit the ladder solver to close a keep-everything shortfall with sample/drop (lossy, opt-in). Default false: the plan stops at the keep-everything ceiling and reports the gap instead of silently di…
baseline_windowstring–verify mode: PromQL range expression for the pre-merge window, e.g. "7d", "168h".
budget_gb_monthlynumber–forecast mode: VOLUME BUDGET, keep monthly ingest toward the destination at or under this many GB/mo. BYTE accounting: tier_down keeps every byte in the destination, so it cannot serve this target an…
budget_usd_monthlynumber–forecast mode: DOLLAR BUDGET, keep the (service-scoped or whole) destination bill at or under this $/mo. The ladder solver derives the reduction: max(0, bill - budget). Idempotent: already under budg…
check_dependenciesboolean–Ladder-plan path only: scan the destination (read-only) for dashboards, alerts, and saved searches that reference the top planned message types, and attach the result as plan_dependencies. Runs only…
commitment_idstring–verify mode: when present, the verify output is shaped as a commitment delta (used by log10x_commitment_report).
contract_typestring–verify mode: shapes the dollar projection (committed vs on-demand renewal math).
current_compute_unitsnumber–forecast mode, compute-billed destinations only (ClickHouse): the service's current compute unit count. Turns the modeled compute saving in totals.compute_saving from a fraction into dollars.
default_actionstring–forecast mode, OPTIONAL: force one action onto every solver-selected pattern (a mode choice, "cut 50% via drop"). Hard constraint when present, subject to destination compatibility (compact is replac…
deploymentstring–How the customer RUNS the destination, which decides whether compaction is available at all: the expander is software they install (the l1es Elasticsearch/OpenSearch plugin, the 10x Splunk app), so a…
destinationstring–Destination stack. Required for both modes (used to look up ingest $/GB + compact ratio band).
effective_ingest_per_gbnumber–forecast and verify mode: override the destination default rate with the customer's contracted $/GB. When supplied, dollar projections use this rate and surface rate_source='customer_supplied'.
enforcement_modestring–forecast mode: when manual_report, reframes the headline as a potential-savings estimate under external enforcement rather than engine enforcement. Headline reads 'If you enforce externally: X saving…
enterprise_securityboolean–Splunk only: whether Enterprise Security or any CIM data model reads this estate. True or absent keeps the add-on sourcetypes (Windows, Palo Alto, Zeek, CrowdStrike, Okta and the like) raw, since the…
environmentstring–Environment nickname; routes to the right metrics backend.
es_prunedboolean–Elasticsearch only: are compactable fields excluded from _source? Default false: the unpruned ratio band is used.
exception_servicesarray–Ladder-plan path only: services pinned at pass, their patterns stay in the bill but are never planned, exactly like protected severities. The SOC-owned or compliance-bound slice of the estate, stated…
include_referencedboolean–Ladder-plan path only: message types LITERALLY referenced by a monitor, alert, saved search, or dashboard (found by the dependency scan) are EXCLUDED from the plan by default: they stay exactly as th…
modestring–forecast: project savings of a proposed per-pattern policy (or a target_percent). verify: measure realized savings from a deployed policy by comparing baseline vs post-merge windows.
monthly_compute_spend_usdnumber–forecast mode, compute-billed destinations only (ClickHouse): the service's current monthly compute spend in dollars. Converted to units at the destination's unit price; ignored when current_compute_…
monthly_volume_gbnumber–What-if volume lens (forecast mode): model the environment at THIS monthly volume (decimal GB/month) instead of its measured volume. The real per-pattern shares and pattern mix are held fixed; only a…
observation_windowstring–forecast mode: PromQL range expression for the observation window the solver/projection runs over. Default `30d`. Accepts `1h`, `24h`, `7d`, `30d`, etc. Alias: `timeRange`.
pattern_limitinteger–forecast mode: maximum number of per_pattern rows returned. Default 50 when service is omitted; ignored (unlimited) when service is set. Totals and coverage_pct are always computed over the full solv…
post_windowstring–verify mode: PromQL range expression for the post-merge window, e.g. "7d".
proposed_configarray–forecast mode: explicit per-pattern (action, optional cap) rows. Either this OR target_percent is required.
retention_monthsnumber–Retention window for storage cost. Default 1 month.
retriever_installedboolean–Whether the S3 retriever is installed (or the user has agreed to install it). Gates the offload rung of the ladder solver: without it, offloaded events would be unreachable, so the plan stops at the…
servicestring–Scope the target_percent greedy solver and coverage_pct to a single service. When present, only patterns from that service are candidates; coverage_of_env_pct and dollar totals reflect that service o…
siem_lensstring–What-if destination lens (alias of `destination` with provenance stamping): price the projection for THIS destination while the pipeline keeps its actual one. Envelope stamps siem_actual vs siem_lens.
splunk_pricingstring–Splunk only: how the licence meters. `ingest` (bytes per day, the common case) prices compact; `workload` (vCPU) meters compute, where compaction saves storage and not the bill and searches that expa…
target_percentnumber–forecast mode: % volume reduction goal. Tool runs the same greedy solver as configure_engine on observed 30d bytes.
tier_down_planstring–Which tier_down plan to price when the action is tier_down. Matches the plan name (case-insensitive substring): omit for the destination default (e.g. Azure Basic Logs), or pass e.g. "auxiliary" to p…
timeRangestring–forecast mode: alias for `observation_window` for consistency with other Log10x tools. If both are set, `observation_window` wins.
unprotect_patternsarray–Ladder-plan path only: pattern hashes the user EXPLICITLY unpinned from the severity floor (a warn-level retry storm they chose to act on). Bypasses severity protection for the listed hashes only; ha…
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_event_lookup ~605

Resolve a raw log line or pattern name to its pattern hash, which is the same for the same line under the same engine, symbol library and configuration, then return byte volume + share per service (with cost overlay when $/GB is set), before→after delta, first-seen timestamp within the observation window, and the current offload disposition (pass / sample / compact / drop) read from the Reporter `routeState` label; only when `LOG10X_AI_SUMMARY=true`, an AI category for the pattern (error/debug/info/metric/health) with a one-line explanation. **Call this first** whenever a user pastes a SINGLE log line and asks "what is this", "is this new", "is this safe to drop", or "is this being dropped / offloaded". The lookup is structural, not byte-exact: different timestamps/request IDs/user IDs on the same underlying pattern resolve to the same hash. If no match is returned, say so. Use log10x_resolve_batch instead when the user pastes MULTIPLE events, a SIEM dump, or a batch to triage.

NameTypeReqDescription
analyzerCostnumber–SIEM ingestion cost in $/GB (deprecated alias of `effective_ingest_per_gb`)
effective_ingest_per_gbnumber–Customer-supplied SIEM ingest cost in $/GB. When set, dollar fields populate with rate_source=customer_supplied; when absent and no default rate is detected, dollar fields collapse to null and rate_s…
environmentstring–Environment nickname
patternstring–Pattern name or search term to look up (e.g., "Payment_Gateway_Timeout"). Omit when passing `pattern_hash` / `tenxHash` instead.
pattern_hashstring–Canonical 11-char hash seen on a SIEM / CloudWatch Logs event (e.g. "03ndjreM-sU"). Alias of `tenxHash`; both are accepted. Resolved against the 10x metrics to recover the pattern, then the normal co…
servicestring–Service to scope the lookup
siemScopestring–SIEM scope for the live sample line on a tenxHash reverse lookup: a CloudWatch log group (`/aws/ecs/my-svc`), ES index, or Splunk index. When omitted, the detected SIEM connector uses its own default…
tenxHashstring–Legacy alias of `pattern_hash`. Both are accepted. Pass either the canonical `pattern_hash` form or this legacy form: they are treated identically.
timeRangestring–Time range. Sub-day values for incident-window lookups. '24h' and '1d' are equivalent.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_explain_mode ~530

CALL THIS AFTER log10x_cost_options when the user picks a mode. Explains the chosen enforcement mode (drop / sample / compact / tier_down / offload / observe_only) in service-level plain language, with dollar math when byte metrics are available. Returns must_render_verbatim (plain-text three-section card, no markdown), must_ask_user (Apply or Preview choice), and forbidden_next_actions (locks apply tools and log10x_preview_filter until the user picks). routes_to.apply routes all non-observe modes to log10x_configure_engine; observe_only has routes_to.apply === null (no enforcement step). routes_to.preview routes to log10x_preview_filter with { service, mode }.

NameTypeReqDescription
destinationstring–Auto-detected destination stack or forwarder. When omitted the tool infers from envs.json / env vars. Used to name the specific vendor in the explanation ("your Datadog workspace", "your Splunk index…
effective_ingest_per_gbnumber–Customer-supplied $/GB rate used for the dollar overlay. When set, source_disclosure.rate_source='customer_supplied'. When absent, the shared rate resolver falls back to envs.json analyzerCost → LOG1…
modestringyesWhich enforcement mode to explain. Keep-everything levers come first, then the lossy opt-ins. `compact` = keeps everything: engine minifies events; all events still reach the stack, and the destinati…
servicestringyesService name to personalize the explanation with service-level volume and cost figures.
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

log10x_extract_templates ~433

Extract the structural template library from a set of log lines by running a local Log10x pipeline on the user's machine. Returns per-template records (the engine-internal templateHash + the template body with variable slots) and event count. Companion to `log10x_resolve_batch`: both tools answer 'can you run log10x locally / templatize these events'. Does NOT need Kubernetes, a deployed Reporter, or a Log10x account; the pipeline runs in-process on the host via either a locally-installed `tenx` binary or a `docker run log10x/pipeline-10x` container. Use for: (a) bootstrapping a pattern catalog before wiring up a Reporter, (b) offline auditing of stored log files, (c) validating that a config change produces expected template identities. **Validation mode**: pass `expected.min_templates`, `expected.required_patterns`, and/or `expected.forbidden_merges` to turn extraction into assertion-checked validation, each assertion reports PASS/FAIL in the output. REQUIRES a local engine: the tenx binary on PATH, or Docker with LOG10X_TENX_MODE=docker. No preflight checks for it: log10x_doctor does not probe the engine.

NameTypeReqDescription
eventsarray–Inline log lines when source=events.
expectedobject–Optional assertions: turns extraction into validation. Each assertion reports pass/fail in the output.
pathstring–Local file path or glob when source=file.
sourcestringyesInput mode. `file`: read from a local path/glob. `events`: array of raw log lines. `text`: newline-separated log events as a single string.
textstring–Raw text blob when source=text.
top_nnumber–Max templates to return.
viewstring–summary returns the typed envelope (data.templates[], data.event_count, data.assertions, data.human_summary). The deprecated markdown view was removed; data.human_summary carries the prose distillati…
NameTypeReqDescription
actionsarray––
data–––
generated_atstringyes–
imagesarray––
next_cursorstring––
render_hintobject––
schema_epochstringyes–
schema_versionstringyes–
summaryobjectyes–
toolstringyes–
truncatedboolean––
viewstring––
warningsarray––

No examples provided.

Install

How do I install the Log10x MCP server?

Log10x MCP runs locally as an npm package, launched with npx -y log10x-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · log10x-mcp

# add to Claude Code
claude mcp add log-10x-log10x-mcp -- npx -y log10x-mcp
Common questions

What is the Log10x MCP server?

Log10x MCP is listed in the public MCP registry as io.github.log-10x/log10x-mcp. Rank log patterns by volume and cost, then compact, tier down or offload the excess over each cap. This page covers its npm package (log10x-mcp).

Is the Log10x MCP server safe to use?

Log10x MCP scores 90 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 16 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Log10x MCP server expose?

Log10x MCP exposes 57 tools: log10x_event_lookup, log10x_pattern_examples, log10x_product_qa, log10x_savings, log10x_pattern_trend, and 52 more. Their descriptions and schemas cost roughly 39,546 tokens of context every time the server is loaded.

Is the Log10x MCP server still maintained?

Log10x MCP is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Log10x MCP server under?

Log10x MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.