Labels
Before filtering anywhere, list the labels that exist in your env and the values each holds. Returns the full label set with per-label value counts. Catches the common mistake of guessing namespace when the real label is k8s_namespace.
Example
You
list available labels
Log10x
47 labels: tenx_user_service (12 values) · severity_level (5: DEBUG/INFO/WARN/ERROR/FATAL) · k8s_namespace (8) · k8s_container (24) · http_code (18) · country (9) · ...
More to ask
- "what services are tracked?"
- "values for
severity_level" - "labels available in
stagingenv"
Prerequisites
This tool requires the Reporter deployed.
Schema and samples
Input example
Real call against the demo env (captured by scripts/capture-tool-envelopes.mjs).
Input schema
Agent-facing JSON Schema (the canonical shape the MCP server publishes via tools/list):
{
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "If set, return distinct values for this label (e.g., \"tenx_user_service\" returns every service). If omitted, return the full label name list."
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 200,
"default": 100,
"description": "Max values to return when a label is specified."
},
"environment": {
"type": "string",
"description": "Environment nickname (for multi-env setups)."
}
},
"additionalProperties": false
}
Source: src/tools/discover-labels.ts.
Output example
Real envelope from the demo env. view: "summary" returns the full StructuredOutput with typed data. Long arrays + base64 PNG bodies trimmed for readability; the real call returns them in full.
Headline (the 1-line agent-facing answer):
19 queryable labels (8 featured).
{
"schema_version": "1.0",
"schema_epoch": "2026-05-25",
"tool": "log10x_discover_labels",
"generated_at": "2026-05-26T15:37:15.156Z",
"view": "summary",
"summary": {
"headline": "19 queryable labels (8 featured)."
},
"data": {
"mode": "label_names",
"total_count": 19,
"shown_count": 19,
"featured_labels": [
{
"name": "tenx_user_service",
"hint": "the service that emitted the log"
},
{
"name": "severity_level",
"hint": "TRACE / DEBUG / INFO / WARN / ERROR / CRITICAL"
},
{
"name": "message_pattern",
"hint": "the stable template hash — the unit of cost attribution"
},
"... 8 more elided"
],
"other_labels": [
"http_message",
"tenx_app",
"tenx_failure_reason",
"... 8 more elided"
]
},
"actions": [
{
"tool": "log10x_discover_labels",
"args": {
"label": "tenx_user_service"
},
"reason": "list the services available as a filter scope"
}
],
"truncated": false,
"warnings": []
}
Output schema
The data block inside the StructuredOutput envelope:
interface ToolData {
mode: string;
total_count: number;
shown_count: number;
featured_labels: Array<{
name: string;
hint: string;
}>;
featured_labels_unavailable?: Array<{
name: string;
hint: string;
}>;
other_labels: string[];
}
Envelope-level fields the agent should also read: summary.headline (1-line answer), actions[] (next-call chain hints as {tool, args, reason}), truncated: boolean, images[] (PNG attachments where applicable), schema_epoch (engine-ID stability boundary).