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
Last scanned (11 hours ago)
Scores higher than 91% of npm servers
Category Monitoring and Observability
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
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
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 →
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 →
log10x_find_skew Find skew ~457
Identify patterns where one slot value dominates the field (>= 60% of events by default). Surfaces sampling opportunities: "slot `verb` is `get` 78% of events, sample the get case at 1/10 to cut its volume." Sampling is lossy: the other 9 in 10 of those events are discarded. Differentiated against analyzer field histograms because the engine groups by per-pattern field-set, so dominance is measured within the structural pattern, not globally. **Stage 1**: accepts events as a paste array (same shape as log10x_resolve_batch). **Calibration**: the 60% concentration floor and 1/10 sampling rate are hand-picked defaults tagged `unvalidated_default` in the output. The envelope surfaces the empirical `observed_dominant_pct_distribution` across all candidate slots so the agent can judge whether 0.6 is well above or below the noise floor for this dataset. See `docs/cross-pillar-primitives.md` for the agent behavior contract.
| Name | Type | Req | Description |
|---|---|---|---|
| events | array | yes | Events to analyze for slot skew. Same shape as log10x_resolve_batch: raw strings or JSON objects. Each event is templated locally; skew is computed across the resulting patterns. |
| min_concentration | number | – | Minimum dominant-value fraction for a slot to be flagged as skewed. Default 0.6 (a slot is "skewed" when one value is 60%+ of events). Hand-picked default tagged as `unvalidated_default` in the outpu… |
| min_events | number | – | Minimum events per pattern to bother checking. Default 10 (filters low-sample noise). |
| sample_n | number | – | Sampling rate N for the savings projection (1/N of the dominant case kept). Default 10. Same calibration caveat: sample_n=10 is a defensible starting point but not validated for any specific cost tar… |
| top_n | number | – | Number of findings to return. Default 20. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_investigate Investigate ~573
Single-call root-cause investigation for any log line, pattern, service, or environment. Returns a complete causal chain (for acute spikes) or co-drifter cohort (for gradual drift) with confidence scores derived mechanically from data signal quality, plus ready-to-run verification commands. Per-pattern blocks include `offload_status` (pass / sample / compact / drop) so the narrative reflects whether the receiver is admitting or dropping the implicated patterns, matching `top_patterns` and `pattern_trend`. Call whenever the user asks 'what is going on with X', 'why is X spiking', 'investigate X', or pastes a log line / alert and asks for diagnosis. Input is the user's natural-language target: pass their words verbatim. The tool detects whether the input is a raw log line, pattern identity, service name, or 'environment' and runs the appropriate flow. It also detects whether the trajectory is acute or gradual drift and renders a different report shape for each. Confidence percentages decompose into named sub-scores (stat × lag × chain for acute; slope_sig × cohort for drift): walk the user through the decomposition when asked. Show the entire markdown report to the user without modification.
| Name | Type | Req | Description |
|---|---|---|---|
| baseline_offset | string | – | Offset for the baseline comparison. Defaults to `24h` for short windows (acute-spike cases) and to the same value as `window` for long windows (≥7d, drift cases). Override only if you need a non-stan… |
| depth | string | – | `shallow`: anchor service only. `normal` (default): anchor service + immediate dependencies. `deep`: full environment-wide. |
| environment | string | – | Environment nickname: required in multi-env setups. |
| starting_point | string | yes | The user's target, verbatim. Can be a raw log line, a pattern identity (symbolMessage or tenx_hash), a service name, or the literal string "environment"/"all"/"audit". The tool detects the mode autom… |
| timeRange | string | – | Alias for `window` for consistency with other Log10x tools. If both are set, `window` wins. |
| use_bytes | boolean | – | Use byte-based rate instead of event-count. Event-count is strongly preferred; use only if the Reporter does not emit the count metric. |
| window | string | – | Analysis window. Defaults to `1h` for acute-spike cases; `30d` recommended for drift cases. Accepts any PromQL-style duration string (`15m`, `1h`, `6h`, `24h`, `1d`, `7d`). Alias: `timeRange`. If nei… |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_login_status Login status ~280
List the user's Log10x ACCOUNT environments and report credential / login state. **Call this, and ONLY this, for any of these phrasings**: 'which Log10x environments do I have', 'which environments are available to me', 'list my envs', 'what tenants/accounts can I query', 'am I logged in', 'switch envs'. **For 'log me in' / 'sign me up' / 'create a Log10x account' / 'use my real account'**: call `log10x_signin_start` (browser Auth0 device flow; the model chains to `log10x_signin_complete` automatically), or call `log10x_signin_complete` directly with `{ api_key: "<key>" }` if the user already has a key. **Do NOT call `log10x_discover_env` for these questions**: that tool scans the user's Kubernetes/AWS infrastructure, unrelated to Log10x account environments. In demo mode (no key set, or key failed validation), the response is a step-by-step config guide. In signed-in mode, lists the user's identity, every env they can reach with permissions (OWNER/WRITE/READ), the default env, and the most-recently used env this session. Read-only, takes no args.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_measure_compaction Measure compaction ~401
Measure per-pattern compact ratios (bytes before and after encoding) on a sample pulled from the customer's SIEM and run through a local engine; a ratio on that sample, not a SIEM meter reading. Pulls `sample_size` events for a service over `timeRange`, runs them through the local tenx engine, and returns per-pattern `compaction_ratio_x` (original bytes / encoded bytes) derived from that sample. Use this to replace the destination's default compact ratio in `log10x_estimate_savings` (one measured capture per destination, named in `compact_ratio_basis`) with ratios measured on this customer's sample. Requires: tenx CLI installed locally (LOG10X_TENX_PATH or `tenx` on PATH) AND SIEM credentials (same as `log10x_poc_from_siem_submit`). Confidence tiers: high (>=50 events), medium (10-49), low (<10). Results flow into `log10x_estimate_savings` to improve savings projections. REQUIRES a local engine: the tenx binary on PATH, or Docker with LOG10X_TENX_MODE=docker.
| Name | Type | Req | Description |
|---|---|---|---|
| environment | string | – | Log10x environment id. Omit to use the default environment. |
| sample_size | integer | – | Number of events to pull from the stack for measurement. Default 500. Larger samples improve confidence (high confidence requires >=50 events per pattern) but take longer to pull and process. |
| service | string | yes | Service name to scope the stack sample to. Used as the query filter (e.g., Datadog `service:<name>`, Splunk `sourcetype=<name>`, CloudWatch stream prefix). |
| timeRange | string | – | Lookback window for the stack pull. Format: <N><unit> where unit is m (minutes), h (hours), or d (days). Default "24h". |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_metric_overlay Metric overlay ~528
Third step of cross-pillar investigation: return aligned anchor + candidate timeseries plus deterministic facts (`peak_at`, `peak_offset_seconds`, `n_buckets_aligned`). No Pearson, no tier: pure raw data for the agent to interpret. Use this once `log10x_rank_by_shape_similarity` has narrowed to a single suspect, or to manually verify any anchor/candidate pair side-by-side. Bucket size auto-selected from window length; both series are right-aligned to the same trailing bucket grid so a sparse anchor and dense candidate compare on the same chaos window.
| Name | Type | Req | Description |
|---|---|---|---|
| anchor | string | yes | The anchor identity. For `log10x_pattern`: the pattern symbol_message (e.g. `error_processing_payment_$`). For `customer_metric`: a PromQL expression (e.g. `apm_request_duration_p99{service="payments… |
| anchor_type | string | yes | Which side the anchor comes from. `log10x_pattern`: anchor is a 10x pattern symbol_message. `customer_metric`: anchor is a customer PromQL expression. |
| candidate | string | – | The candidate metric to overlay against the anchor. Must be a customer-side PromQL expression that returns a single series. Alias of `candidates[0]`: pass either form (sibling tools metrics_that_move… |
| candidates | array | – | Candidates array. Accepted for parity with metrics_that_moved + rank_by_shape_similarity. Only the first element is overlaid (metric_overlay is single-candidate by design: use rank_by_shape_similarit… |
| customer_metrics_auth | string | – | – |
| customer_metrics_type | string | – | – |
| customer_metrics_url | string | – | Per-call override for the customer metrics backend URL. Wins over LOG10X_CUSTOMER_METRICS_URL env var. Use when MCP was launched with an empty/stale URL. |
| environment | string | – | Environment nickname (for multi-env setups). |
| max_buckets | number | – | Max buckets to return in the aligned output. Pre-truncates from the most recent end if window/step exceeds this. |
| step | string | – | Bucket step. Smaller = more samples + more cost. Default 30s. |
| timeRange | string | – | Alias for `window`. |
| window | string | – | Time window. PromQL-style duration: `15m`, `1h`, `6h`, `24h`. Alias: `timeRange`. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_metrics_that_moved Metrics that moved ~534
First step of cross-pillar investigation: deterministic filter on which customer metrics moved while an anchor was active. Anchor is either a Log10x pattern (`anchor_type: "log10x_pattern"`) OR a customer metric expression (`anchor_type: "customer_metric"`); candidates are all sibling series from the OTHER pillar. Partitions the anchor's window into high-phase / low-phase buckets by median rate and keeps only candidates whose mean value differs ≥15% between the two phases. Returns `moved[]`, `not_moved[]`, `evaluation_failed[]`: no Pearson, no tier, no causal framing. This is the cheap deterministic cut that pares the candidate set before the more expensive shape-similarity pass. Compose with `log10x_rank_by_shape_similarity` and `log10x_metric_overlay`.
| Name | Type | Req | Description |
|---|---|---|---|
| anchor | string | yes | Anchor identity. For `anchor_type=log10x_pattern`: the pattern Symbol Message NAME or its 11-char `pattern_hash` (= `tenx_hash`), the tool detects shape and queries the correct PromQL label (`message… |
| anchor_type | string | yes | Anchor side. `log10x_pattern` = anchor is a 10x pattern. `customer_metric` = anchor is a customer PromQL. |
| candidates | array | yes | Customer-side PromQL expressions to evaluate (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. Pre-filte… |
| customer_metrics_auth | string | – | – |
| customer_metrics_type | string | – | – |
| customer_metrics_url | string | – | Per-call override for the customer metrics backend URL. Wins over LOG10X_CUSTOMER_METRICS_URL env var. Use when MCP was launched with an empty/stale URL. |
| environment | string | – | – |
| phase_gap_floor | number | – | Relative gap floor between anchor-high and anchor-low phase means. Candidate is "moved" iff its gap ≥ this. Default 0.15 (=15%) is an uncalibrated default: output is tagged `unvalidated_default` unti… |
| step | string | – | Bucket step. |
| timeRange | string | – | – |
| window | string | – | Time window. Alias: `timeRange`. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_overflow_contents Overflow contents ~263
The contents view of the customer-owned offload S3 bucket: per-pattern bytes, event count, time-first-seen, time-last-seen, and growth rate. Filtered to action=offload via the cap-CSV the MCP wrote (`drop` patterns are NOT in S3; `compact` and `tier_down` route elsewhere). Call this as the maintenance-loop review: "what's accumulating in my overflow queue?" Routes the agent to log10x_retriever_query to fetch the offloaded events when an incident or audit needs them.
| Name | Type | Req | Description |
|---|---|---|---|
| environment | string | – | Environment nickname |
| limit | integer | – | Cap on the number of per-pattern rows returned. Total bytes always reflect the full overflow, even when rows are truncated. |
| service | string | – | Filter to a single service. Omit for the full overflow queue across every service that routes to S3. |
| timeRange | string | – | Window over which to compute overflow contents. 30d matches the maintenance-loop cadence; sub-30d windows for incident-window probes. '24h' and '1d' are equivalent. |
| view | string | – | Output format. Always "summary": the typed envelope (data.patterns[], data.totals). |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_pattern_detail Pattern detail ~441
CALL THIS AFTER log10x_preview_filter when the user drills into a specific pattern by number. Returns a full single-pattern view: 24h line chart (up to 12 rows, 72 chars wide), ASCII horizontal bar chart for cross-service byte distribution (top 8 services), severity breakdown, and up to 5 sample events truncated to 120 chars each. Requires pattern_hash (tenx_hash from preview_filter.data.patterns[].tenx_hash). must_ask_user: Back to preview list, or Apply with this in the picture. actions[]: log10x_preview_filter (back) and log10x_configure_engine (apply).
| Name | Type | Req | Description |
|---|---|---|---|
| environment | string | – | Environment nickname for multi-env setups. |
| include_samples | boolean | – | When true (default), attempts to fetch up to 3 full sample events from your stack. Set false to skip the stack round-trip. |
| monthly_volume_gb | number | – | 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… |
| pattern | string | – | Pattern name (Symbol Message, e.g. "Payment_Gateway_Timeout") as an alias for pattern_hash. Resolved to hash via metrics lookup. Provide either pattern or pattern_hash. |
| pattern_hash | string | – | The tenx_hash of the pattern to drill into. Obtained from log10x_preview_filter data.patterns[].tenx_hash. Preferred over pattern when available (skips a metrics lookup). |
| timeRange | string | – | Time window for the volume trend and sample events lookback. Default 7d. Pattern: ^\d+[mhd]$. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_pattern_diff Pattern diff (set diff across a time boundary) ~620
Compare which log patterns are new, gone, persistent or back again between two adjacent time windows. Compares pattern presence in two windows (the most recent `timeRange` window as "after" vs the immediately preceding `timeRange` window as "before") and returns four sets: `new` (present after, absent before), `retired` (present before, absent after), `persistent` (present in both), and `re_emerged` (flagged as new but existed prior to the before-window, the "the bug we thought we fixed is back" case, derived by checking first_seen against the before-window boundary). Plus `co_emergence_clusters`: groups of 3+ patterns whose first_seen timestamps cluster within ±co_emergence_window_seconds (default 60s). That cluster is a deploy fingerprint: no CI/CD integration required; the agent can then query the customer's deploy system externally with the cluster timestamp. The two windows compare because a pattern's hash comes from the line, the symbol library and the engine configuration, not from what a query saw: under the same engine, library and configuration the same line carries the same hash in both windows. Use for "what changed since last deploy", "which patterns disappeared this week", "did the rollback bring back the old errors", or paired with log10x_pattern_examples on a flagged hash to see slot distribution. Scoping: `service` and `severity` narrow the universe; `limit` caps rows per category. Returns structured envelope under `data.diff` with the four sets plus an `incidents` block when co_emergence clusters are detected. An engine upgrade that changes the naming rules renames the patterns it affects once: across that boundary they show as `new` and their old names as `retired`, and the frequent ones form a co-emergence cluster at the upgrade time.
| Name | Type | Req | Description |
|---|---|---|---|
| analyzerCost | number | – | stack ingestion cost in $/GB. Auto-detected from profile. |
| co_emergence_window_seconds | number | – | Time spread for clustering co-emergent patterns. Default 60s: tight enough to fingerprint a single deploy. |
| environment | string | – | Environment nickname (for multi-env setups). |
| limit | number | – | Max rows per category (new / retired / persistent / re_emerged). Default 20. |
| min_co_emergence_cluster_size | number | – | Minimum cluster size to emit. Default 3: 2 patterns sharing a timestamp is often coincidence. |
| service | string | – | Service name to scope. Omit for all services. |
| severity | string | – | Severity to scope (e.g. `ERROR`, `CRITICAL`). |
| timeRange | string | – | Window size on both sides of the boundary. The tool compares the most recent `timeRange` ("after") against the immediately preceding `timeRange` ("before"). Example: `timeRange: "1d"` compares today… |
| view | string | – | Output format. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_pattern_examples Pattern examples ~872
Pull recent live events for a pattern from the customer's log analyzer (Splunk, Datadog, Elasticsearch, CloudWatch) and return them grouped by templateHash with template-extracted slot values per match. **Bounded to a 24-hour window** (live log analyzer retention); for older history use `log10x_retriever_query`. Input is either a Symbol Message (pattern name like `Payment_Gateway_Timeout`) or a pasted raw log line; pasted lines resolve via the same templater path as `log10x_resolve_batch`. The tool runs a SIEM phrase-search probe, runs returned events through the local templater, groups by templateHash (one bucket per template variant of the pattern; each bucket carries the pattern hash, `tenx_hash`), applies a content-token Jaccard similarity threshold (≥0.85) to discriminate the matching pattern's events from look-alikes, and returns the top buckets by event count. Output marks partial extractions: per-bucket templateHash labels, recall counts, and explicit `parseFailed` markers when slot extraction fails. Multi-line group templates report head-line-only with an explicit warning. **Designed as an orchestration primitive** called by `log10x_investigate` when the chain needs concrete event evidence after a metric-tier identification. Direct user-facing use is fine but rare; prefer `log10x_event_lookup` + `log10x_pattern_trend` for single-line inspection.
| Name | Type | Req | Description |
|---|---|---|---|
| bucket_id | string | – | Bucket identifier to fully hydrate. Accepts either the `template_hash` or the `tenx_hash` returned in a prior `view=summary` call. When supplied, the response carries one bucket with full sample_even… |
| environment | string | – | Environment nickname. |
| limit | number | – | Maximum number of sample events per templateHash bucket. 1-50, default 10. |
| pattern | string | – | Pattern name (e.g. `Payment_Gateway_Timeout`) or a pasted raw log line. Pasted lines resolve to the matching pattern via the same pattern-extraction path as log10x_resolve_batch. Either pattern or pa… |
| pattern_hash | string | – | Canonical 11-char hash. Either pattern (Symbol Message name) or pattern_hash must be provided; pattern_hash is preferred when available. Resolved to the pattern name via the 10x metrics (same path pa… |
| scope | string | – | Vendor-specific scope (Splunk index, Datadog index, ES index pattern, CloudWatch log group). Defaults to a sensible per-vendor value when omitted. |
| service | string | – | Optional service-name scope. Translated to the vendor-specific service filter. |
| severity | string | – | Optional severity scope (e.g., `ERROR`, `WARN`). |
| slot_filter | object | – | Optional slot-value filter. When provided, only buckets whose slot_distribution carries the given slot value pass through. Useful for drilling into a single dominant value from a previous pattern_exa… |
| timeRange | string | – | Window for the live SIEM probe. Capped at 24h. To sample a pattern's offloaded cohort (events the Receiver routed to the overflow bucket, which the SIEM never received), use log10x_retriever_query. '… |
| vendor | string | – | Log analyzer to search. Auto-detected when exactly one of the supported vendors has credentials in the env; pass explicitly when multiple are configured. |
| view | string | – | Response shape. `summary` (default) returns slim top-3 buckets (rank, template_hash, tenx_hash, event_count, jaccard, severity, service, recommended_action, headline, ~200-char sample_event preview)… |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_pattern_mitigate Pattern mitigate ~567
[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.] Given one pattern (symbolMessage identity or tenx_hash), return the env-gated CAPABILITY MENU of which mitigation paths are reachable: drop_at_analyzer, drop_at_forwarder, mute_at_10x, compact_at_10x. Each option carries `enabled` (true/false), `label`, and `disabled_reason` when not reachable. This is a REACHABILITY-FIRST router: it answers "which of the four tiers can I use right now given my env wiring", NOT "how much would each save". Per-option estimated savings (% reduction, $/mo) and paste-ready config snippets are surfaced by the next-tool chain (log10x_cost_options for the action menu, then the specific action tool for the snippet): NOT this envelope. The agent surfaces the menu to the user; the user picks; chain to log10x_cost_options for the action-level breakdown. **Action-shaped tool: calibration honesty**: the envelope's `recommendation_basis` tells the agent WHERE the capability detection came from (envs.json, snapshot, env vars, or unknown). `recommendation_audit.capability_sources` carries the per-field source, and `snapshot_age_seconds` carries snapshot staleness. The agent SHOULD NOT auto-route to the chosen sub-tool until the user picks an option, and SHOULD verify the basis before treating capability detection as authoritative (e.g., a stale snapshot may mis-flag mute as enabled when the receiver was uninstalled). See `docs/cross-pillar-primitives.md` for the agent behavior contract. **Call this** when a previous tool surfaced a high-cost pattern and the user asks 'what should I do' / 'how do I drop this' / 'how do I reduce this'.
| Name | Type | Req | Description |
|---|---|---|---|
| pattern | string | yes | The pattern identity to mitigate. Pass the canonical name from a prior log10x_top_patterns / log10x_event_lookup row. |
| service | string | – | Optional service scope. When set, options that target a single service (forwarder drop, exclusion filter) are scoped to it. |
| snapshot_id | string | – | Snapshot from log10x_discover_env. Used to detect which 10x components are deployed in the active env (receiver, retriever, GitOps wiring). When passed, the envelope's `recommendation_audit.capabilit… |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_pattern_trend Pattern trend ~804
Return the volume history for a single pattern over a chosen window (e.g. 1h, 24h, 7d, 30d), with a sparkline and spike detection: ranked by byte volume (with cost overlay when $/GB is set). **Call this after log10x_event_lookup** when the user asks "is this getting worse", "has it been louder before", "when did it start", or wants temporal context on a pattern surfaced in an earlier step. Always state the observation window explicitly in the reply: "flat at 2/h for the last 6 months of observation, spiked at 13:58 today", and never claim history older than the window. Pass `include` to select the cohort: `kept` (default), `dropped` (offloaded-only trend, useful for "is the receiver dropping more of this lately"), or `both` (total ingest). The envelope reports which cohort the series represents so the agent never conflates kept-only with total volume.
| Name | Type | Req | Description |
|---|---|---|---|
| analyzerCost | number | – | SIEM ingestion cost in $/GB |
| environment | string | – | Environment nickname |
| include | string | – | Which engine-decision cohort to scope the trend to. `kept` (default) = events that actually reached the destination (routeState=~"pass|", absence-tolerant). `dropped` = everything the receiver acted… |
| include_chart | boolean | – | Set include_chart=true to embed the rendered chart inline (large; default false to avoid response truncation). |
| monthly_volume_gb | number | – | 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… |
| pattern | string | – | Pattern name (e.g., "Payment_Gateway_Timeout"). Provide either pattern or pattern_hash: pattern_hash is preferred when available (skips a metrics lookup). |
| pattern_hash | string | – | The tenx_hash of the pattern (the 11-character pattern hash from top_patterns / preview_filter). Preferred over pattern when available. |
| step | string | – | Data point interval. Default `auto` sizes the step to give about 12 to 30 buckets per window (1h→5m, 6h→15m, 1d/24h→1h, 7d→6h, 30d→1d). Override only when a specific resolution is required; an over-c… |
| timeRange | string | – | Time range. '24h' and '1d' are equivalent (one-day window). Sub-day values show fine-grained trajectory around an incident. |
| view | string | – | Output format. Always "summary": the structured envelope. Field retained for backward-compat. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_poc_from_local POC from local logs (kubectl) ~1,924
Run a log-cost-optimization POC entirely from local log sources: pass `path` for one log file (wrapper-normalized) or `paths` for files, directories and globs; `kubectl` samples pod logs; `docker` and `journald` to follow. No log-analyzer credentials required. Use when the prospect has no SIEM connection or has not yet shared API keys. Returns a synchronous markdown report with: (a) **sample composition** table, top-N pods by byte volume; the prospect must confirm the sample looks like their production mix, (b) **industry-pricing matrix**, projected savings at Datadog / Splunk / CloudWatch / Sumo / Elastic / OpenSearch list prices, NOT a prediction of any specific bill, (c) **top patterns** in the kubectl-sourced sample. For native exclusion configs, paste-ready Receiver YAML, and the full 9-section report tied to a specific log analyzer's GB-billed volume, run `log10x_poc_from_siem_submit` once credentials are available. **No automatic fallthrough**: this tool is invoked explicitly. If `log10x_poc_from_siem_submit` failed on missing credentials, the calling LLM should ask the user before re-invoking with this tool: local-source framing differs from SIEM-attached framing and silent fallthrough would be a bait-and-switch. REQUIRES a local engine: the tenx binary on PATH, or Docker with LOG10X_TENX_MODE=docker. No log-analyzer credentials and no deployment are needed, but without an engine this returns an error rather than a report. Pass target_percent_reduction as a whole-number percent (e.g. 40 for 40%) to get a feasibility verdict against that target. **Two modes, and the agent should name whichever the user's phrasing invites.** Run normally, this tool reads local files but the server around it still has network. Run inside the FENCED profile (`TENX_AIRGAPPED=true`, `--network none`, the `log10x/poc` image) it is the same analysis with no network at all, and its output carries its own `docker inspect` proof. `log10x_emit_sample_plan` produces the sample for that…
| Name | Type | Req | Description |
|---|---|---|---|
| allow_lossy | boolean | – | Permit sample/drop (lossy) to close a keep-everything shortfall. Default false: the plan stops at the keep-everything ceiling and reports the gap. Only set after the user explicitly chooses loss. |
| budget_gb_monthly | number | – | VOLUME BUDGET: keep projected monthly ingest at or under this many GB/mo. BYTE accounting: tier_down keeps every byte and is excluded from the ladder for this target. Sample scaled to a 30-day month… |
| budget_usd_monthly | number | – | DOLLAR BUDGET: keep the projected monthly bill on the assumed SIEM at or under this $/mo. The sample is scaled to a 30-day month (kubectl window, or the file span) before solving, so the budget and t… |
| check_dependencies | boolean | – | Datadog only, default true: before the plan moves statements off Standard, read the account's log monitors and log-based metrics (read-only GETs, needs DD_API_KEY + DD_APP_KEY in the session) and pri… |
| enterprise_security | boolean | – | Splunk only: whether Enterprise Security or any CIM data model reads this estate. True or absent keeps the add-on sourcetypes raw. Pass false only when the user states it. On a kubectl or file sample… |
| exception_services | array | – | Services / pods flagged by the customer to stay in the log analyzer with full retention (action=pass). Their bytes are subtracted from the achievable reduction pool used for the feasibility verdict.… |
| fleet_default | object | – | Set the fleet default from this capture: the limit for every service the plan gives no row, the largest statement the plan keeps per node times the headroom. The report states it in lines a day, and… |
| forwarder | string | – | Forwarder in the pipeline (fluentd, fluent-bit, filebeat, logstash, otel-collector, vector, hec). Used to pick verified apply/undo commands. Not guessed when absent: the report says commands are unav… |
| max_pods | number | – | Cap on number of pods sampled. Default 20. |
| namespace | string | – | Kubernetes namespace to sample from (`source: kubectl` only). Pass `*` to sample across all namespaces. Default `default`. |
| path | string | – | One local log file to analyse (source=`file`). Wrapped JSONL is normalized so the engine patterns payloads, not wrappers. For many files or globs use `paths` instead. |
| paths | array | – | Required for `source: file`: files, directories, or glob patterns (`*`, `**`, `?`) to sample, e.g. `["/var/log/app/*.log", "./bundle/**"]`. A directory is read one level deep; use `dir/**` for the tr… |
| per_pod_limit | number | – | Cap on log lines pulled per pod. Default 5000. |
| pin_patterns | object | – | Advanced: most customers will not need this. Map of pattern_hash to action for rare per-pattern overrides within a pod / source. Applied AFTER pin_services. |
| pin_services | object | – | Primary per-pod/source override surface. Map of pod / source name to action. Pins are applied AFTER the destination default and AFTER exception_services. Feasibility reruns with the pins; max_achieva… |
| record_overhead_bytes | integer | – | Bytes of forwarder metadata per record, for a capture that carries the log text only (a kubectl sample or plain lines). The Receiver counts each record as the forwarder sends it, metadata included, s… |
| report_annotations | object | – | Optional one-sentence annotations keyed by evidence statement identifier, rendered under the matching action. Hard cap 140 chars each; over-cap or unknown-hash input refuses the render (nothing is tr… |
| retriever_installed | boolean | – | Whether the prospect will install the S3 retriever. Gates the offload rung of the plan ladder: without it offloaded events would be unreachable, so the plan stops at the in-SIEM levers and the gap na… |
| siem | string | – | The destination SIEM, used for the report header chip and command selection. When absent the analysis assumes CloudWatch and the report labels the assumption. |
| source | string | – | Where to pull log lines from. `kubectl` samples pod logs; `file` samples local logs: pass `paths` (files, directories, globs) or `path` (one file; fluentd/k8s/docker-wrapped JSONL is detected and nor… |
| splunk_pricing | string | – | Splunk only: `ingest` (bytes per day) prices compact; `workload` (vCPU) meters compute, where compaction is not a saving and compact leaves the lever set. Set from what the user said; absent means in… |
| target_percent_reduction | number | – | Customer-specified target reduction percent. If absent, POC produces a recommendation-only output. If present, POC produces a feasibility verdict + a pre-deploy commitment artifact stub the agent can… |
| window | string | – | How far back to read per pod (`source: kubectl`, default `1h`). For `source: file`, the time span the files cover: read from the first and last record timestamps when the records carry them, and from… |
| workload | string | – | Forwarder workload name (daemonset/deployment) for the apply commands. Not guessed when absent. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_poc_from_siem_status POC from SIEM (status) ~741
Retrieve progress or a view of the report from a log10x_poc_from_siem_submit run. Pass `snapshot_id`; optionally `view` to select the level of detail. **In-progress** responses report status (pulling / templatizing / rendering), progress_pct, step_detail, and elapsed_seconds: poll every ~30s until done. **Complete** responses render one of six views: `summary` (default, ~30 lines, exec banner + top-5 wins + views CTA), `full` (complete 9-section report, ~300 lines), `yaml` (paste-ready Receiver mute-file for the top N patterns), `configs` (native SIEM exclusion configs, Datadog exclusion filter / Splunk props.conf / etc.), `top` (expanded N-row drivers table), `pattern` (deep-dive on one identity, requires `pattern` arg). **Failures** include partial_report_markdown when any events were successfully pulled before the error. The full report is also written to ${LOG10X_REPORT_DIR:-/tmp/log10x-reports}/poc_from_siem-<timestamp>.md regardless of which view the caller requested. Snapshots live in-memory per MCP process; a restart clears them, so persist the final report path to keep it. **Unified envelope**: response carries `status`, `query_count`, `total_latency_ms`, `backend_pressure_hint`, `human_summary`, plus the existing snapshot-lifecycle fields. Errors (unknown snapshot_id, render failure) come back as `status: 'error'` with a structured `PrimitiveError` envelope. See `docs/cross-pillar-primitives.md` for the agent behavior contract. **Two modes, and the agent should name whichever the user's phrasing invites.** This tool is the NETWORKED one: it reads the analyzer directly over the network with the caller's credentials, and the MCP mints one licence. The FENCED mode runs the same POC with no network at all: `log10x_emit_sample_plan` renders a read-only export script the user runs themselves, and the analysis happens in a container started with `--network none`, so 'cannot exfiltrate' is a kernel fact the user checks with one `docker inspect` rather than a clai…
| Name | Type | Req | Description |
|---|---|---|---|
| pattern | string | – | Required when view="pattern". The snake_case pattern identity to expand. Pass the raw identity as printed in prior views. |
| snapshot_id | string | yes | Snapshot id returned by log10x_poc_from_siem_submit. |
| top_n | integer | – | Number of rows for views that accept it (`top`, `yaml`, `configs`, `summary`). Defaults: summary=5, top=20, yaml/configs=5. |
| view | string | – | How to surface the report. Default `summary` returns the v2 structured envelope (`data.result` carries the full JSON: input section with scale + methodology + coverage, output section with aggregates… |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_poc_from_siem_submit POC from SIEM (submit) ~2,372
Kick off a full log-cost-optimization POC against the user's SIEM. Pulls a representative event sample, groups the events into log patterns, each with its pattern hash, and renders a 9-section markdown report covering top cost drivers, Receiver recommendations, ready-to-paste native SIEM exclusion configs, Compact mode potential, risk/dependency checks, and deployment paths. Supported SIEMs: cloudwatch (AWS CloudWatch Logs via IAM credential chain), datadog (DD_API_KEY + DD_APP_KEY), sumo (Sumo Logic), gcp-logging (GCP Cloud Logging), elasticsearch (Elastic Cloud / self-hosted), azure-monitor (Azure Monitor / Log Analytics), splunk (SPLUNK_HOST + SPLUNK_TOKEN), clickhouse (OpenObserve / SigNoz / custom schemas). Auto-detects the SIEM from env vars when `siem` omitted: explicitly pass `siem` if multiple credential sets exist. `scope` and `query` are SIEM-specific: CloudWatch (log group + filter pattern), Datadog (index + query), Sumo (_sourceCategory + query), GCP (project id + filter), Elasticsearch (index pattern + KQL), Azure (workspace id + KQL), Splunk (index + SPL), ClickHouse (database + SQL WHERE). For ClickHouse, also pass `clickhouse_table` (required) and column-mapping args for custom schemas (OpenObserve/SigNoz auto-detected). Returns a `snapshot_id`: poll via log10x_poc_from_siem_status to retrieve progress and the final report. Report is also written to `${LOG10X_REPORT_DIR:-/tmp/log10x-reports}/poc_from_siem-<timestamp>.md`. Default window is 7d, default target event count is 250k, default max pull time is 5 min: the pull stops at whichever of the two ceilings hits first. **Tier prerequisites**: none. No log10x API key required. **Templating defaults to privacy_mode=true**: events are templated by a local Log10x engine, either a native `tenx` CLI (install for macOS/Linux/Windows: https://doc.log10x.com/install/) or a local Docker container (set `LOG10X_TENX_MODE=docker`, auto-detected and preferred when the mode is unset), and never leave the machine.…
| Name | Type | Req | Description |
|---|---|---|---|
| ai_prettify | boolean | – | Default true: use MCP sampling to ask the host LLM (the same model the user is already chatting with: Claude Desktop, Claude Code, Cursor, etc.) to batch-generate 3-5-word human-readable names for th… |
| analyzer_cost_per_gb | number | – | Override the $/GB rate for cost calculations. Default is read from vendors.json per detected SIEM. |
| auto_detect_volume | boolean | – | Default true: when no total_*_gb arg is provided, probe the SIEM's usage/metrics API to auto-detect daily ingest volume. Per-SIEM best-effort: CloudWatch (describeLogGroups ÷ retention), Datadog (Usa… |
| clickhouse_message_column | string | – | [ClickHouse] Column holding the message body. Default auto-detected. |
| clickhouse_service_column | string | – | [ClickHouse] Optional column for service name. |
| clickhouse_severity_column | string | – | [ClickHouse] Optional column for severity. |
| clickhouse_table | string | – | [ClickHouse] Required: table name holding log events. |
| clickhouse_timestamp_column | string | – | [ClickHouse] Column holding the timestamp. Default auto-detected. |
| enrich_max_tokens | integer | – | Output token cap for the host-agent enrichment call. Default 8000. |
| enrich_with_host_agent | boolean | – | Default true: after the engine produces measured findings (per-pattern $/mo, growth, incident clusters), ask the MCP host LLM via sampling to contribute operational context the engine cannot see: kub… |
| enterprise_security | boolean | – | 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: their add… |
| environment | string | – | Optional environment nickname: cosmetic only, for the report header. |
| exception_services | array | – | Services flagged by the customer to stay in the SIEM with full retention (action=pass). Typically 1-3 services for audit, compliance, or executive dashboards. Patterns whose service is in this list a… |
| max_pull_minutes | number | – | Hard cap on pull wall-time. Default 30. The pull stops at whichever of target_event_count, max_pull_minutes, or saturation-detected hits first. Long pulls run in the background; poll status while the… |
| pin_patterns | object | – | Advanced: most customers will not need this. Map of pattern_hash to action for rare per-pattern overrides within a service. Applied AFTER pin_services. Use only when a single pattern inside an otherw… |
| pin_services | object | – | Primary per-service override surface. Map of service name to action. "Pin payment-svc to pass" → {"payment-svc":"pass"}. Pins are applied AFTER the destination default and AFTER exception_services. F… |
| query | string | – | SIEM-native filter expression layered on top of `scope`. Syntax per SIEM (CloudWatch filter pattern; Datadog query; KQL for ES/Azure; SPL for Splunk; SQL WHERE for ClickHouse; Sumo query). |
| record_overhead_bytes | integer | – | Bytes of forwarder metadata per record. The Receiver counts each record as the forwarder sends it, metadata included, and events read back from a SIEM's API seldom carry that record, so the caps add… |
| scope | string | – | SIEM-specific resource scope. CloudWatch: log group name or wildcard (`/aws/ecs/*`). Datadog: index name. Sumo: `_sourceCategory`. GCP: project id. Elasticsearch: index pattern. Azure Monitor: worksp… |
| siem | string | – | Which SIEM to pull from. Omit to auto-detect from ambient credentials. Valid values: cloudwatch, datadog, sumo, gcp-logging, elasticsearch, azure-monitor, splunk, clickhouse. |
| splunk_pricing | string | – | Splunk only: `ingest` (bytes per day) prices compact; `workload` (vCPU) meters compute, where compaction is not a saving and compact leaves the lever set. Set from what the user said; absent means in… |
| target_event_count | number | – | Target event count for the pull. Default 1,000,000 (~500 MB at 500B avg, tokenizes in 5-10 min). The pull self-terminates earlier on saturation: when new patterns per 100k events drops below 2%, the… |
| target_percent_reduction | number | – | Customer-specified target reduction percent. If absent, POC produces a recommendation-only output. If present, POC produces a feasibility verdict (`output.feasibility`) plus a pre-deploy commitment a… |
| total_annual_gb | number | – | Customer's total annual log volume in GB/year. See total_daily_gb for semantics. |
| total_daily_gb | number | – | Customer's total daily log volume in GB/day. Pick any one of total_daily_gb / total_monthly_gb / total_annual_gb: whichever unit the user naturally thinks in. The tool normalizes to daily internally.… |
| total_monthly_gb | number | – | Customer's total monthly log volume in GB/month. See total_daily_gb for semantics. |
| window | string | – | Window to pull over. Accepts "1h", "24h", "7d", "14d", "30d". Default "14d": wide windows unlock the differentiated longitudinal signals (first-seen, growth, stable-vs-new) that the agent cannot comp… |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_preview_filter Preview filter patterns ~230
CALL THIS AFTER log10x_explain_mode when the user picks Preview. Shows the list of patterns that would be affected by applying a given enforcement mode to a service, before any action is taken. Returns a fixed-width plain-text table (no markdown pipes) with columns: rank, descriptor, volume, %, service, severity, first seen, trend sparkline. Writes a CSV to /tmp/log10x-preview-<mode>-<service>.csv. must_ask_user offers: drill into pattern #N (calls log10x_pattern_detail), Apply, or go back to pick a different mode. forbidden_next_actions locks log10x_configure_engine, log10x_pattern_mitigate, and log10x_advise_retriever until the user commits.
| Name | Type | Req | Description |
|---|---|---|---|
| environment | string | – | Environment nickname for multi-env setups. |
| mode | string | yes | The enforcement mode being previewed. Controls which patterns are highlighted as affected. |
| service | string | yes | Service to scope the preview to. |
| top_n | number | – | Number of patterns to surface. Default 20. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_product_qa Product Q&A from shipped docs ~483
Answer Log10x product questions from the docs that ship inside the MCP build (chunked + indexed at install time). Use whenever the user asks a factual product question: "what is the Receiver", "how is pattern_hash computed", "what data leaves my network", "does the Reporter modify data", instead of answering from training data. Inputs: `topic` for an exact docs-slug lookup (e.g. `faq/security/data-protection`), or `query` for natural-language TF-IDF search across those docs. `category` narrows search to one of faq / apps / engine / api / config / manage. `max_results` caps the result count (default 3). Output is a standard chassis envelope with `found`, ranked `results` (each carrying matched chunks + canonical_url), and `similar_topics` as a did-you-mean fallback. Link the `canonical_url` of each result used in the answer. The docs are shipped from `config/mksite/docs` at build time; in development the loader also honors `LOG10X_PRODUCT_KB_PATH`.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Restrict results to one category. One of: faq, apps, engine, api, config, manage. Combines with `query`. |
| depth | string | – | Response detail. "short" (default) returns a tight grounded answer plus citation metadata (topic + canonical_url, no section bodies) and offers a chained learn_more action per citation. "full" return… |
| max_results | integer | – | Cap on the number of results returned. Default 3. |
| query | string | – | Natural-language query: prefer this for how-to / content questions. Examples: "what does the kustomize overlay patch", "how is pattern_hash computed". When `topic` is also set, ranks that page's sect… |
| topic | string | – | Exact docs slug to fetch a known page. Example: "faq/security/data-protection" or "apps/receiver/deploy". For a multi-section page, ALSO pass `query` to get the asked-about section instead of the pag… |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_rank_by_shape_similarity Rank by shape similarity ~540
Second step of cross-pillar investigation: Pearson correlation + signed lag on a pre-filtered candidate set (typically the `moved[]` output of `log10x_metrics_that_moved`). Returns per-candidate: `pearson_magnitude`, `pearson_signed` (direction preserved), `lag_seconds` (signed: negative = candidate leads anchor, positive = candidate lags), `lag_at_bound` (flag: peak landed at search-window boundary), `lag_tightness` (how sharply the Pearson surface peaks), `anchor_phase_gap`, `anchor_phase_aligned` (flag: candidate value differs ≥15% between anchor's high-phase and low-phase buckets), `n_buckets`. No tier, no causal label: the agent reads the flags and decides. Compose with `log10x_metric_overlay` for the final per-candidate aligned-timeseries view.
| Name | Type | Req | Description |
|---|---|---|---|
| anchor | string | yes | Anchor identity. For `anchor_type=log10x_pattern`: the pattern Symbol Message NAME or its 11-char `pattern_hash` (= `tenx_hash`), the tool detects shape and queries the correct PromQL label (`message… |
| anchor_phase_aligned_floor | number | – | Relative phase-gap floor for the `anchor_phase_aligned` flag. Default 0.15: uncalibrated, same provenance caveat as lag_search_max_abs. |
| anchor_type | string | yes | – |
| candidates | array | yes | Customer-side PromQL expressions to rank (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. |
| customer_metrics_auth | string | – | – |
| customer_metrics_type | string | – | – |
| customer_metrics_url | string | – | Per-call override for the customer metrics backend URL. Wins over LOG10X_CUSTOMER_METRICS_URL env var. Use when MCP was launched with an empty/stale URL. |
| environment | string | – | – |
| lag_search_max_abs | number | – | Maximum absolute lag in seconds to scan. Default 1800s: uncalibrated. Output is tagged `unvalidated_default` when used as-is. Narrow it when the use case has a known tighter upper bound on cascade la… |
| step | string | – | – |
| timeRange | string | – | – |
| window | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_resolve_batch Triage ~432
Templatize a batch of log events and return per-pattern triage. **This is one of two tools that run a local Log10x pipeline on the user's machine** (the other is `log10x_extract_templates`): call this whenever the user asks 'can you run log10x locally', 'do a local pipeline run', 'templatize these events', or supplies any batch to analyze (Datadog/Splunk/Elastic query results, Slack incident attachments, kubectl logs, raw text). Does NOT need Kubernetes, a deployed Reporter, or a Log10x account: the pipeline runs in-process on the host. Output structures the batch by a paste-local templateHash with per-pattern frequency + severity + full template structure + per-slot variable distribution. Each top pattern carries `actions[]` chaining to `log10x_investigate` (historical correlation) and `log10x_retriever_query` (offload retrieval). Do NOT call for single-line resolution: use `log10x_event_lookup` for that. REQUIRES a local engine: the tenx binary on PATH, or Docker with LOG10X_TENX_MODE=docker.
| Name | Type | Req | Description |
|---|---|---|---|
| environment | string | – | Environment nickname: used to build next_actions that call log10x_investigate. |
| events | – | – | Inline log lines: an array of lines, or a single newline-separated string (both accepted). `source` need not be set. |
| include_next_actions | boolean | – | Whether to generate next_action suggestions for each top pattern. |
| path | string | – | Local file path when source=file. Required for file mode. |
| source | string | – | Optional: auto-inferred from whichever of `events` / `text` / `path` you actually provide, so you normally do not set it. Provide explicitly only to disambiguate when more than one is present. |
| text | string | – | Raw text blob when source=text: newline-separated log events. |
| top_n_patterns | number | – | How many patterns to return in the ranked triage. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_retriever_probe Retriever e2e probe ~608
End-to-end probe of the deployed Retriever chain. Fires a synthetic query at the picked top-volume tenx_hash (or an explicit target_hash) and asserts every stage in order: offload bucket has recent data, indexer pipeline is running (kubectl logs grep for 'starting pipeline - Tenx: @/apps/retriever/index'), SQS subquery + stream queues drained (depth ≤ 10), retriever pod containers all ready, then submits the query and asserts CloudWatch scan complete events have matched>0, CloudWatch stream worker complete events exist, S3 qr/<queryId>/*.jsonl files were written, and the MCP returned events_matched>0 AND events_returned>0. Returns a structured verdict (green / broken / unknown) with per-assert observed + remedy. Call this as the post-install verify step (chained from log10x_advise_retriever step_verify) OR as a deep doctor diagnostic when log10x_retriever_query returns 0 events and the cause is unclear. Catches the silent-failure shapes that take hours to debug manually: indexer not booted, stream pipeline launch failures, IRSA s3:PutObject misconfigured, MCP input_bucket misaligned with engine write location.
| Name | Type | Req | Description |
|---|---|---|---|
| input_bucket | string | – | S3 bucket where the retriever WRITES qr/<id>/*.jsonl result objects. Default: read from the resolved env-config's `retriever.input_bucket` (walking K8s ConfigMap → AWS SSM → GCP Secret Manager → Azur… |
| namespace | string | – | Kubernetes namespace where the retriever pod runs. Default: "log10x". |
| offload_bucket | string | – | S3 bucket the receiver offloads data to (the bucket the retriever indexer reads from). Default: pick the `status="active"` entry from the resolved env-config's `offload_destinations[]` (walking K8s C… |
| query_log_group | string | – | CloudWatch log group the retriever writes per-query execution events to. |
| target_hash | string | – | Pre-picked tenx_hash to query for. When omitted, the probe queries the metric backend for the top-volume hash over the last 5 min. |
| window_minutes | number | – | Query window size in minutes. Default: 5. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_retriever_query Retriever query ~1,348
Fetch offloaded log events from the customer's own S3 bucket by pattern hash or by a variable value, reading only the byte ranges whose Bloom filters can hold a match, without a full scan. The use case: events the Receiver offloaded to the customer's S3 bucket instead of the SIEM, over any window the bucket holds. The Bloom filters cover each event's template hash and variable values. Matched events land as a list of `*.jsonl` objects in the customer's S3; the tool returns an in-context preview (capped by `limit`) PLUS `data.results_location` (the S3 bucket + prefix holding the full object set). A capable agent reads those objects directly to answer, or hands the S3 object list to the customer's own S3-to-SIEM path. No re-ingestion pipeline, no proprietary format. The envelope additionally carries per-pattern `offload_status` so retrieval results agree with the live metric-surface disposition (pass / sample / compact / drop) without a second tool call. Call for: offloaded events of a pattern; events filtered by a variable value that is not a faceted SIEM dimension (e.g. 'all payment_retry events for customer acme-corp 90 days ago'); compliance / audit / forensic exact retrieval; confirming what the Receiver offloaded for a given pattern. Optional JavaScript `filters` refine over payloads after the Bloom-scoped fetch. For a time-bucketed series instead of raw events, use `log10x_retriever_series`. The envelope carries by_severity / by_service / by_day rollups with a rollup_basis provenance stamp (qrs_summaries = whole-match from engine summaries; events_capped = derived from the capped download).
| Name | Type | Req | Description |
|---|---|---|---|
| bucket_size | string | – | Bucket size when format=aggregated or ephemeral_series. Examples: `1m`, `5m`, `1h`, `1d`. |
| debug | boolean | – | Escalate the CloudWatch log level to DEBUG for THIS query only: per-blob Bloom decisions, per-fetch S3 reads, per-event results-writer samples. Use only when normal-run diagnostics cannot explain a 0… |
| environment | string | – | Environment nickname: required if multi-env. |
| filters | array | – | JavaScript filter expressions evaluated in-memory against each decoded event after the Bloom-scoped fetch. Full TenX JS API: `this.customer_id === "acme-corp"`, `this.http_code.startsWith("5")`. Filt… |
| format | string | – | `events` (default: raw events), `count` (total + severity/service rollups, no event bodies), `aggregated` (events bucketed into a time series, use with bucket_size), `ephemeral_series` (bucketed seri… |
| from | string | yes | Start of the query window. Accepts ISO8601 (`2026-01-15T00:00:00Z`), epoch millis, or relative (`now-1h`, `now-24h`, `now-7d`). Normalized to the engine's `now("-1h")` form before dispatch. |
| limit | number | – | Hard cap on events returned after merging per-worker result files. Default 500. Typical conversational queries want 10-100; the LLM will render only the first 50. |
| pattern | string | – | Reporter-named pattern (Symbol Message). NOT SUPPORTED against the offload bucket: passing it returns an error naming the remedy, rather than a silent empty result. A Symbol Message is a label DERIVE… |
| pattern_hash | string | – | Canonical pattern_hash from top_patterns / event_lookup. When provided, search is auto-built as `includes(text, "<hash>")` and no name resolution runs. It matches the stamped hash as a TEXT TOKEN bec… |
| result_target | string | – | Tier-1 result-sink redirect: write this query OUTPUT (events, summaries, markers) under tenx/<result_target>/ in the same bucket instead of the default target, e.g. to a prefix a SIEM connector watch… |
| search | string | – | Bloom-filter search expression using the TenX subset: `==`, `||`, `&&`, `includes(field, "substr")`. Example: `severity_level=="ERROR" && includes(text, "ECONNREFUSED")`. Selective values are dramati… |
| target | string | – | Target app/service prefix to scope the index scan. Defaults to __SAVE_LOG10X_RETRIEVER_TARGET__ (env var). Required if no default is configured. |
| to | string | – | End of the query window. Same grammar as `from`. Default `now`. |
| view | string | – | summary returns the typed envelope (data.events_matched, data.events[], data.query_id, data.diagnostics, data.human_summary). The deprecated markdown view was removed; data.human_summary carries the… |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_retriever_query_status Retriever query status ~498
Post-hoc diagnostic surface for a specific retriever query, addressed by `queryId` (returned from `log10x_retriever_query` or recovered from the S3 results prefix). Pulls the coordinator's `_DONE.json` stats (scanned / matched / streamRequests / streamBlobs / submittedTasks / expectedMarkers), counts per-worker byte-count markers under `q/<queryId>/`, lists result JSONL files under `qr/<queryId>/`, optionally filters CloudWatch events from the `queryLogGroup` for the queryId substring (when the chart's `queryLogGroup` is configured), and runs a diagnostics engine that classifies the run into states like `dispatcher_failure` (scanned=0 with submittedTasks>0), `results_not_uploaded`, or `observability_disabled`. When pod logs are reachable from the MCP host, fetches a tail and greps for the `cloud/streamer/subquery` include-resolution signature to confirm the dispatcher-failure category. Call this whenever `log10x_retriever_query` returns 0 events but the wall-clock implies scan work, or whenever an offline post-mortem needs the structured timeline for a specific queryId. Pass fetch_results: true to ALSO recover the completed results from S3 (10-event preview + counts + results_location) after a partial or timed-out query, without resubmitting.
| Name | Type | Req | Description |
|---|---|---|---|
| fetch_results | boolean | – | When true and the query has completed, ALSO recover the results from S3: a 10-event preview, counts, and the results_location pointer, same core fields as a completed log10x_retriever_query. Use afte… |
| include_pod_logs | boolean | – | When true and a dispatcher_failure is suspected (scanned=0 + submittedTasks>0), attempt kubectl logs on the retriever pod to confirm the chart 1.0.20 include-resolution error. Requires kubectl access… |
| query_id | string | yes | UUID of a previously-submitted retriever query. Returned as data.query_id from log10x_retriever_query. |
| target | string | – | Target app/service prefix used when the original query was submitted. Defaults to "app". Must match the target that was passed to the original query. |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
log10x_retriever_series Retriever time series ~794
Materialize a fidelity-aware time series from the customer's S3 offload bucket over an arbitrary window, with optional group-by on enrichment fields. Auto-selects between exact full aggregation (Strategy A) and per-window-sampled fan-out (Strategy B) based on Reporter pattern volume: small/moderate-volume queries get exact counts; high-volume / long-window queries get a sampled series with time-distribution + group-ranking fidelity preserved and tail caveats reported. Pathological volume is refused with structured narrowing guidance, never silently truncated. Call when: (a) the user wants a 'rate of pattern X over the last 30 days, broken down by tenant' answer that exceeds SIEM retention/budget, (b) a baseline needs building from cost-driver patterns where Prometheus has continuous metrics but the *grouped breakdown* lives only in the offload bucket. Use `log10x_retriever_query` instead for the event payloads (not aggregates).
| Name | Type | Req | Description |
|---|---|---|---|
| bucket_size | string | – | Time bucket granularity (`1m`, `5m`, `1h`, `1d`). Determines the resolution of the output series. |
| environment | string | – | Environment nickname: required if multi-env. |
| fidelity | string | – | `auto` (tool decides via Reporter volume + window length), `full` (force exact aggregation: may exceed Lambda budget), `per_window_sampled` (force sampling, default K=1000 per sub-window), or `per_wi… |
| filters | array | – | In-memory JS filters applied after the Bloom-scoped fetch (AND-combined). |
| from | string | yes | Start of the query window. ISO8601, epoch millis, or relative (`now-1h`, `now-7d`, `now-30d`). |
| group_by | string | – | Optional enrichment field to group the series by: e.g., `tenx_user_service`, `severity_level`, `k8s_namespace`. Top-1000 group values are retained; tail collapsed to `_other_`. |
| pattern | string | – | Reporter-named pattern (Symbol Message). NOT SUPPORTED against the offload bucket: passing it returns an error naming the remedy, rather than a silent empty result. A Symbol Message is a label DERIVE… |
| search | string | – | Bloom-filter search expression using the TenX subset. Tightly bound queries (e.g., `includes(text, "<pattern_hash>")`, `severity_level == "ERROR"`) are dramatically cheaper. (legacy example removed:… |
| target | string | – | Target app prefix. Defaults to __SAVE_LOG10X_RETRIEVER_TARGET__. |
| to | string | – | End of the query window. Same grammar as `from`. Default `now`. |
| view | string | – | summary returns the typed envelope (data.mode, data.bucket_seconds, data.series_count, data.points_returned, data.top_groups, data.caveats, data.human_summary). The deprecated markdown view was remov… |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | – |
| data | – | – | – |
| generated_at | string | yes | – |
| images | array | – | – |
| next_cursor | string | – | – |
| render_hint | object | – | – |
| schema_epoch | string | yes | – |
| schema_version | string | yes | – |
| summary | object | yes | – |
| tool | string | yes | – |
| truncated | boolean | – | – |
| view | string | – | – |
| warnings | array | – | – |
No examples provided.
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
claude mcp add log-10x-log10x-mcp -- npx -y log10x-mcp
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.