Skip to main content
Glama
vmware-skills

io.github.zw008/vmware-log-insight

search_logs

Read-onlyIdempotent

Search VMware Aria Operations for Logs events within a time window to find the log lines behind an incident. Returns timestamped events with fields for correlation and debugging.

Instructions

[READ] Search Log Insight events within a time window.

WHEN: to find the actual log lines behind an incident (e.g. what vmkernel logged during a storage event). For "where did logs burst?" use aggregate_logs instead; for vCenter alarms use vmware-monitor.

RETURNS: {count, complete (False if truncated), constraints, events: [{timestamp_ms, text, fields}]}, plus 'note' when limit was lowered. 'fields' is a flat {name: value} dict — hostname, appname, procid, source, facility and the other static fields the appliance attached (content-pack fields are not included: the query does not ask for them). Feed events to vmware-debug build_incident_timeline to correlate across sources. Read-only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lastNoRelative window ending now, as a quantity plus a unit suffix — s, m, h or d ("30m", "2h", "7d") — or a bare number of seconds. Anything else raises a ValueError naming the accepted forms. Cannot be combined with begin_ms/end_ms; passing both is refused. Omit all three and the query defaults to the last hour, so it is never unbounded. Windows longer than ~24.8 days are sent as an absolute start time, because the appliance's LAST operator overflows there.
textNoWord(s) matched against the event message with the CONTAINS operator. Log Insight matches whole words, not substrings: "localhost" finds "localhost.localdomain", "localdom" finds nothing, "localdom*" finds it again (`*` is a wildcard; verified on 8.18.7). When a text search matches nothing, 'note' says so — 0 events for a partial word is not evidence the logs do not exist. Not a regex and not a query expression. Omit to match every event in the window. This tool has no field-filter parameter; filter on a field's value by reading 'fields' in the result.
limitNoMaximum events returned, 1..200, default 50. A larger value is lowered to 200 and the result's 'note' says so. Each event is ~650 characters, so 50 is already ~8k tokens: narrow the window or the text rather than raising this.
end_msNoAbsolute window end as epoch milliseconds (not seconds). May be given without begin_ms, which then means "everything up to this instant". Cannot be combined with last.
targetNoLog Insight target name as spelled in ~/.vmware-log-insight/config.yaml. Omit to use that file's default_target — with no default configured, omitting it is an error that lists the configured names.
begin_msNoAbsolute window start as epoch milliseconds (not seconds — a value that looks like seconds is refused). May be given without end_ms, which then means "from this instant onwards". Must be before end_ms. Cannot be combined with last.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.4.1

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, and the description adds substantial context beyond them: truncation signalled by 'complete', a 'note' when limit was lowered, whole-word CONTAINS matching semantics with wildcard behavior, the absence of a field-filter parameter, and ValueError on malformed windows. This is exactly the extra behavioral detail the annotations cannot carry.

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

Conciseness5/5

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

Front-loaded with a [READ] tag and WHEN/RETURNS headings; each sentence carries load. The RETURNS block is long but justified because no output schema exists to carry that information.

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?

With no output schema, the description fully specifies the return shape (count, complete, constraints, events with timestamp_ms/text/fields), explains the fields dict contents and the content-pack exclusion, and warns about token cost. Nothing needed to call or interpret the result 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 rich per-parameter docs (window formats, mutual exclusion, epoch-vs-seconds) are already in the schema and the description earns no extra credit for them. The description adds only the meta-point that there is no field-filter parameter. Baseline 3 is appropriate.

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?

States a specific verb and resource ('Search Log Insight events within a time window') and explicitly differentiates from siblings by naming aggregate_logs for burst questions and vmware-monitor for vCenter alarms. 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?

The WHEN section gives a concrete use case ('find the actual log lines behind an incident') plus explicit when-not conditions pointing to two named alternatives. It also names a downstream consumer (vmware-debug build_incident_timeline), so the agent knows how this tool fits a workflow.

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