Skip to main content
Glama
log-10x

Log10x MCP Server

Official

Emit a sample-export script for the fenced POC

log10x_emit_sample_plan
Read-only

Generate a read-only shell script that exports a log sample from your own SIEM with your credentials, enabling a fenced POC without sharing log data.

Instructions

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

Input Schema

NameRequiredDescriptionDefault
siemYesWhich log analyzer to export the sample from. One script per analyzer: `cloudwatch` (aws CLI: DescribeLogGroups + FilterLogEvents), `splunk` (search/jobs/export), `elasticsearch` and `opensearch` (_cat/indices + _search), `datadog` (v2 logs search). ClickHouse, Azure Monitor, Coralogix, GCP Logging and Sumo Logic are follow-up work: for those, export plain text yourself, one log message per line, and run the POC over it.
queryNoAnalyzer-native filter layered on top of `scope`: a CloudWatch filter pattern, an SPL fragment, a Lucene query_string for Elasticsearch, a Datadog query. Narrowing here narrows what the savings projection covers, so say so in the report if you use it.
scopeNoAnalyzer-native scope. CloudWatch: log group name or prefix (`/aws/ecs/*`, the asterisks are stripped, CloudWatch matches on prefix). Splunk: index name. Elasticsearch / OpenSearch: index pattern (default `logs-*`). Datadog: index name. Omitted means everything the credentials can read.
windowNoHow far back to sample. Accepts `1h`, `24h`, `7d`, `14d`, `30d`. Default `14d`, matching `log10x_poc_from_siem`: a wide window is what makes first-seen, growth and stable-versus-new readable at all.14d
output_dirNoWhere the script writes the exported sample, relative to wherever the user runs it. Default `./poc/logs`, which is the directory the documented `docker run` line mounts read-only at /data.
write_scriptNoDefault true: also write the script next to the working directory as `export-sample.sh` (mode 0755) so the user can read it in an editor rather than out of a chat transcript. Set false to get the text back and nothing on disk.
target_event_countNoTarget event count for the export. Default 1,000,000 (~500 MB at 500 B average): the same default `log10x_poc_from_siem` uses, so a fenced POC and a credentialed one see samples of the same size. Lower it when the export has to fit a laptop or a coffee break.

Output Schema

NameRequiredDescriptionDefault
dataNo
toolYes
viewNosummary
imagesNo
actionsNo
summaryYes
warningsNo
truncatedNo
next_cursorNo
render_hintNo
generated_atYes
schema_epochYes
schema_versionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.30.8
    • changedInput schema / properties / scope / description
      Previous value: -"Analyzer-native scope. CloudWatch: log group name or prefix (`/aws/ecs/*` — the asterisks are stripped, CloudWatch matches on prefix). Splunk: index name. Elasticsearch / OpenSearch: index pattern (default `logs-*`). Datadog: index name. Omitted means everything the credentials can read."New value: +"Analyzer-native scope. CloudWatch: log group name or prefix (`/aws/ecs/*`, the asterisks are stripped, CloudWatch matches on prefix). Splunk: index name. Elasticsearch / OpenSearch: index pattern (default `logs-*`). Datadog: index name. Omitted means everything the credentials can read."
    • changedInput schema / properties / siem / description
      Previous value: -"Which log analyzer to export the sample from. One script per analyzer: `cloudwatch` (aws CLI: DescribeLogGroups + FilterLogEvents), `splunk` (search/jobs/export), `elasticsearch` and `opensearch` (_cat/indices + _search), `datadog` (v2 logs search). ClickHouse, Azure Monitor, Coralogix, GCP Logging and Sumo Logic are follow-up work — for those, export plain text yourself, one log message per line, and run the POC over it."New value: +"Which log analyzer to export the sample from. One script per analyzer: `cloudwatch` (aws CLI: DescribeLogGroups + FilterLogEvents), `splunk` (search/jobs/export), `elasticsearch` and `opensearch` (_cat/indices + _search), `datadog` (v2 logs search). ClickHouse, Azure Monitor, Coralogix, GCP Logging and Sumo Logic are follow-up work: for those, export plain text yourself, one log message per line, and run the POC over it."
    • changedInput schema / properties / target_event_count / description
      Previous value: -"Target event count for the export. Default 1,000,000 (~500 MB at 500 B average) — the same default `log10x_poc_from_siem` uses, so a fenced POC and a credentialed one see samples of the same size. Lower it when the export has to fit a laptop or a coffee break."New value: +"Target event count for the export. Default 1,000,000 (~500 MB at 500 B average): the same default `log10x_poc_from_siem` uses, so a fenced POC and a credentialed one see samples of the same size. Lower it when the export has to fit a laptop or a coffee break."
    • changedInput schema / properties / window / description
      Previous value: -"How far back to sample. Accepts `1h`, `24h`, `7d`, `14d`, `30d`. Default `14d`, matching `log10x_poc_from_siem` — a wide window is what makes first-seen, growth and stable-versus-new readable at all."New value: +"How far back to sample. Accepts `1h`, `24h`, `7d`, `14d`, `30d`. Default `14d`, matching `log10x_poc_from_siem`: a wide window is what makes first-seen, growth and stable-versus-new readable at all."
  2. First observedv1.30.7

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations (readOnlyHint/openWorldHint/idempotentHint): it explains the `--network none` container fence, that the emitted script carries no log10x hostname and the server refuses otherwise, the sampling equivalence to the SIEM path, and the exact return payload. It also discloses the only side effect, one 0755 script file, which is the sole tension with a strict reading of readOnlyHint, and the description surfaces it rather than hiding it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded correctly: the read-only/renders-not-runs split comes first, then the POC step map, then args, then returns. It is dense and information-rich rather than padded, though the POC step enumeration and repeated 'same default as log10x_poc_from_siem_submit' refrains run longer than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values are covered structurally, and the description still tells the agent what comes back (script text, read-only API operations/credential variables, review checklist, exact next `log10x_poc_from_local` arguments). For a 7-param tool embedded in a multi-step workflow, nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters in detail, and the description's inline arg list largely restates defaults. It does add cross-tool meaning the schema lacks, notably that `window`/`target_event_count` defaults deliberately match `log10x_poc_from_siem_submit` so both POC paths sample the same size, and the ./poc/logs mount rationale. That is real added value, but it is incremental over an already-excellent schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Render a read-only shell script that exports a log sample') and immediately delimits scope: it renders, it does not run, and it contacts nothing. It separates itself from the credentialed path (`log10x_poc_from_siem_submit`) and names the follow-on tool (`log10x_poc_from_local`), so an agent can place it among 50+ siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use: 'step 2 of the fenced POC' with steps 1/3/4 enumerated, plus a second trigger condition ('whenever the credentials live somewhere this process does not: a jump host, a locked-down laptop, another team'). The alternative path and the condition that selects it are both stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.