Skip to main content
Glama
log-10x

Log10x MCP Server

Official
by log-10x

Emit a sample-export script for the fenced POC

log10x_emit_sample_plan
Read-only

Generate a read-only script to export a log sample from your own SIEM using your own credentials, without the server contacting anything or running it for you.

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 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 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. ClickHouse, Azure Monitor, Coralogix, GCP Logging and Sumo Logic are follow-up work. Read-only: it renders text and writes one script file; it contacts nothing.

Input Schema

TableJSON 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

TableJSON 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. First observedv1.30.7

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that the server runs under `--network none`, never executes the emitted script, refuses to return a script containing a log10x hostname, writes export-sample.sh at mode 0755, and touches nothing. It also frames the readOnlyHint=true annotation explicitly ('it renders text and writes one script file; it contacts nothing'), so no hidden side effects are left unstated.

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-loads the core purpose and the network split before the procedural detail, and the POC step enumeration earns its length by telling the agent where this fits. It is somewhat verbose and repeats the 'same default as log10x_poc_from_siem' rationale across two params, which is minor redundancy rather than waste.

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?

For a 7-param tool with an output schema, it covers everything an agent needs: prerequisites, what it returns (script text, touched API operations/credential vars, checklist, next-call args), follow-up steps, and the unsupported analyzers with a manual workaround. Nothing required 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.

Parameters4/5

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

Schema description coverage is already 100%, so the schema does the heavy lifting; the description adds cross-tool meaning by explaining why defaults match log10x_poc_from_siem (so both paths sample the same size) and when to lower target_event_count. That rationale is genuinely beyond the schema, though much of the per-arg text restates enum/default facts already documented.

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 precise verb+resource: 'Render a read-only shell script that exports a log sample.' It immediately names its scope (user's own analyzer, own credentials, chosen machine) and explicitly distinguishes itself from siblings log10x_poc_from_local and log10x_poc_from_siem, so an agent can route correctly without opening any 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?

Gives explicit when-to-use: step 2 of the fenced POC (with steps 1, 3, 4 enumerated) and whenever credentials live somewhere the process cannot reach. It also states what it does NOT do (does not run the script, contacts nothing) and points at the alternative path for credentialed sampling, leaving nothing to inference.

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