Skip to content

MCP

MCP tools your AI assistant calls when prompted with cost, pattern, or incident questions. Pick a row for the workflow at hand.

Tool Ask
Orient "where do I start?"
POC "cost POC on our Splunk"
Account "sign me up for log10x"
Install "scan env, recommend install path"
Costs "rank services by cost, 7d"
Identify "is Retry_Backoff_Exhausted new, and is it spiking?"
Investigate "why did Payment_Gateway_Timeout jump 40× since yesterday?"
Detect "why is Payment_Gateway_Timeout so big?"
Drop "safe to mute DEBUG /healthz?"
Retrieve "fetch back the events I offloaded out of the log analyzer"

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.

JSON-by-default output

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.