Skip to main content
Glama

List unique values of one field

arkime_unique
Read-only

List distinct values of a single Arkime field as plain text, with optional counts. Use when you need to see what values a field holds without a full aggregation.

Instructions

List distinct values of ONE Arkime field as plain text, optionally with counts.

    For distinct value COMBINATIONS across a tuple of fields use
    arkime_multiunique; for top values of one field plus a time-series graph
    use arkime_spigraph; to profile many fields in one call use
    arkime_spiview. Lighter than a full aggregation when you only need to see
    what values a field holds.

    Returns plain TEXT (one value per line, not JSON) — Arkime streams it
    directly. "(no values)" has TWO causes and this route cannot tell them
    apart: the window holds nothing, or the field name does not resolve.
    Measured on Malcolm v26.07.1, field="nosuch.field" over a window with
    6M sessions answers HTTP 200 with a zero-byte body, exactly like a
    genuinely empty result — where every sibling is loud (arkime_multiunique
    says "Unknown expression", arkime_spigraphhierarchy answers 403,
    arkime_sessions_summary lists the name in ignored_fields). So check the
    spelling against arkime_field_search's exp column before assuming the
    window is wrong; only then pass time_from.

    A wide field is truncated silently at Arkime's aggregation ceiling of
    10,000 values, with no marker and no error: measured on Malcolm v26.07.1, one
    port field returned exactly 10,000 lines over a window that held 16,005
    distinct values. Treat a round 10,000 as "there are more", and scope
    with expression rather than reading it as the whole value set.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldYesOne Arkime field expression, e.g. "ip.dst", "protocols", "http.host".
countsNoInclude a per-value occurrence count (default true). Turning it off cuts about a third of the characters (measured on v26.07.1: 91,033 down to 59,931 for one field over a 24-hour window) and is the right choice when you only need the value set itself — to paste into arkime_create_shortcut, for instance.
time_toNoEnd time as EPOCH SECONDS (NOT a dateparser string). Empty = now.
time_fromNoStart time as EPOCH SECONDS (NOT a dateparser string). Empty = Arkime's default recent window, which finds nothing in a capture older than it — pass a range to reach historical data.
expressionNoOptional Arkime expression syntax to scope the values, e.g. "protocols==dns". Empty = all sessions.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Discloses plain-text streaming (one value per line, not JSON), the ambiguous '(no values)' response with two indistinguishable causes, silent truncation at Arkime's 10,000-value ceiling, and measured behavior on specific versions (e.g., zero-byte body for invalid field). This adds substantial context beyond the readOnlyHint and destructiveHint annotations.

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?

The description is longer than average but each paragraph earns its place: the first sentence states the core purpose, the second gives alternative-tool guidance, and subsequent paragraphs cover critical caveats (empty result ambiguity, truncation). It is front-loaded and structured logically, though the measurement details could be trimmed without losing key warnings.

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?

Given the tool's complexity (5 params, potential edge cases), the description is remarkably complete. It covers return format, ambiguous empty results with troubleshooting advice, silent truncation with scoping suggestions, and notes about historical data windows. Since an output schema exists, it need not explain return values, yet it still covers all operational pitfalls.

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?

The schema already provides 100% parameter coverage with detailed descriptions (e.g., counts default true and its performance impact, time_from explanation, expression example). The description adds minimal parameter-specific meaning beyond reinforcing that only ONE field is accepted and suggesting expression for scoping, so it stays at the baseline.

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?

The opening sentence clearly states the tool lists distinct values of ONE Arkime field as plain text with optional counts. It distinguishes from sibling tools by naming arkime_multiunique (value combinations), arkime_spigraph (top values with time-series), and arkime_spiview (multi-field profiling), making the purpose unambiguous.

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?

Explicitly directs users to alternative tools for value combinations, top values with time-series, and multi-field profiling, and notes it is lighter than full aggregation for simple value inspection. This directly tells when to use this tool versus alternatives.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nagameTW/mcp-server-malcolm'

If you have feedback or need assistance with the MCP directory API, please join our Discord server