Skip to content

Reference

How the log10x MCP behaves once installed. For setup and client config, see Install.

Engine compatibility

The MCP runs the local 10x engine for the paste tools (Triage, Catalog). Match the engine to the MCP version:

MCP version tenx engine Notes
1.8.13+ 1.0.22+ (recommended) Triage invokes tenx @apps/mcp over stdin/stdout, keeping events off disk. Requires the apps/mcp runtime shipped in the engine release, first available in 1.0.22.
1.8.x 1.0.21 (with overrides) Earlier engines run the MCP only with TENX_CONFIG and TENX_MODULES pointed at local clones of log-10x/config and log-10x/modules at the apps/mcp branches.

brew upgrade log10x pulls the latest released engine. OS-specific installers live on the install index.

Boot mode

The MCP picks one of three modes at boot, based on what the env exposes. The mode decides which tools register. There is no runtime flag.

Mode Trigger Catalog registered
analysis TSDB resolves AND tenx_pattern_bytes_total series exist Full analysis catalog (Costs, Identify, Investigate, Drop, Retrieve)
analysis_pending TSDB resolves, zero tenx_* series yet (fresh deploy) Analysis catalog AND install advisors
poc No TSDB resolvable from env (prospect) POC + install advisors only

Detection runs once via the customer-metrics auto-detect cascade, bounded by a 5s probe. On timeout the MCP optimistically registers analysis tools and lets individual calls surface backend issues. Restart the MCP to re-detect after a backend change. The Doctor tool prints the resolved mode and trace.

Out-of-mode tool calls return a structured "not available in <mode>" reply instead of a backend 5xx.

Operator gates

Three boot-time env vars hide tools from tools/list without code changes. Useful for read-only customer demos, prospect evals, CI sandboxes.

Env var Effect
LOG10X_MCP_ENABLED_CATEGORIES=cost,identify Allowlist. Only listed categories register. Empty or unset = all categories.
LOG10X_MCP_DISABLED_CATEGORIES=poc,account Blocklist. Applied after the allowlist.
LOG10X_MCP_DISABLE_WRITE=true Hide every tool whose annotation readOnlyHint is explicitly false.

Categories match the nav: cost, identify, investigate, detect, drop, retrieve, install, account, poc.

Output format

Every default-loaded analysis tool returns a StructuredOutput envelope:

{
  "schema_version": "1.0",
  "schema_epoch": "2026-05-25",
  "tool": "log10x_top_patterns",
  "generated_at": "2026-05-25T03:14:00Z",
  "view": "summary",
  "summary": { "headline": "...", "bullets": [...], "callout": "..." },
  "data": { ... },
  "actions": [ { "tool": "log10x_pattern_mitigate", "args": {...}, "reason": "..." } ],
  "render_hint": { "chart": "timeseries", "units": "$/h" },
  "truncated": false,
  "warnings": []
}

The agent reads actions[] to chain to the next tool without guessing the catalog graph. schema_epoch carries the deploy boundary: engine-derived IDs (template_hash, tenx_hash) are stable only within an epoch.

Pass view: "markdown" on any default-loaded tool to get the prior markdown-rendered output wrapped in data.markdown. view: "summary" (default) returns the typed data block plus a one-line summary.headline the agent quotes when it can't fit more.

Retriever tunables

Env var Default Effect
LOG10X_RETRIEVER_SERIES_USE_SUMMARIES off When set, Series and other rollup-shaped tools route through the summaries pathway (qrs/) instead of events (qr/). Counts stay exact across all matched events at any window size. See Summaries for the trade-off.
LOG10X_RETRIEVER_QUERY_PATH /streamer/query Override the engine REST path for POST /streamer/query. Set when fronting the Retriever query endpoint behind a different route.