Skip to content

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 staging env"

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

{
  "view": "summary"
}
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).