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. |