Skip to main content
Glama

List alerts raised by alerting monitors

malcolm_alerting_alerts
Read-only

Fetch OpenSearch alerting alerts that actually fired, including completed and recovered states. Filter by monitor, severity, state, or free-text search.

Instructions

Read what OpenSearch alerting monitors have actually fired, in any state.

    Use this for "what fired overnight". malcolm_alerting_monitors lists the
    standing rules and counts only ACTIVE alerts, so a monitor that fired and
    then recovered — state COMPLETED — is invisible there, as are the
    per-monitor, per-severity and free-text filters. That tool answers "what
    is being watched", this one answers "what happened". These are OpenSearch
    alerting alerts, a different mechanism from Suricata's IDS alerts: for
    those use malcolm_alerts. To read the rule behind an alert, take its
    monitor id to malcolm_alerting_monitor_detail.

    alert_state and severity are validated here rather than passed through:
    an unknown alertState or severityLevel answers 200 with an empty list
    rather than 400, so a typo would look exactly like
    a quiet night.

    Returns JSON {"total", "showing", "alerts"} with each alert as the
    plugin sends it — monitor id and name, trigger name, state, severity and
    the start/end/acknowledged timestamps. An empty list is a successful
    answer and a common one, since no alert can exist while every monitor is
    disabled.
    

Input Schema

NameRequiredDescriptionDefault
searchNoFree-text match across the alert fields (monitor name, trigger name). Empty = no text filter.
severityNoKeep only alerts whose trigger is configured at this severity, "1" (highest) through "5". This is the level a human set on the trigger, not a score computed from the traffic. Empty = any.
monitor_idNoKeep only one monitor's alerts, using the `id` malcolm_alerting_monitors returns (not the monitor name). Empty = every monitor.
alert_stateNoLifecycle state to return: ALL (default), ACTIVE (firing now), ACKNOWLEDGED (an analyst has seen it, still firing), COMPLETED (fired and has since recovered — the overnight history), ERROR (the monitor itself failed to run), DELETED (the alert outlived the monitor that raised it — a state to read, nothing here removes anything). Case-insensitive.ALL

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.2.1
    • changedOutput schema / $defs / AlertList / description
      Previous value: -"Alerts raised by alerting monitors. `alerts` is typed as a list of\nanything on purpose: the rows are the plugin's own documents, whose keys\nvary by monitor type and alert state, and this lab holds zero alerts, so a\nnarrower declaration would be a guess that could reject a real answer."New value: +"Alerts raised by alerting monitors. `alerts` is typed as a list of\nanything on purpose: the rows are the plugin's own documents, whose keys\nvary by monitor type and alert state, so a narrower declaration would be\na guess that could reject a real answer."
  2. Addedv1.0.2

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnly/destructive annotations, it discloses the non-obvious validation quirk (unknown alertState/severityLevel returns 200 with an empty list rather than 400, so typos masquerade as quiet periods), the return envelope shape, and the note that an empty list is a normal successful answer. That is exactly the behavioral context 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.

Conciseness4/5

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

Front-loaded with the core purpose and organized into sibling routing, validation caveat, and return shape; every paragraph does work. It is slightly verbose and leans on stylistic phrasing ('a typo would look exactly like a quiet night'), but nothing is off-topic.

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 read-only, filterable list tool with an output schema, the description covers purpose, alternatives, validation behavior, and result interpretation. Nothing needed to call it correctly is missing, and there is no contradiction with the annotations.

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 coverage is 100%, so the baseline is 3; the description adds real value by explaining that alert_state and severity are validated server-side and that DELETED is a readable state, not a mutation. It stops short of enumerating all default/empty-value semantics, but the schema already covers those.

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 ('Read what OpenSearch alerting monitors have actually fired, in any state') and explicitly frames the tool as answering 'what happened' versus the 'what is being watched' of malcolm_alerting_monitors. It also disambiguates the mechanism from Suricata IDS alerts surfaced by malcolm_alerts, so an agent can route 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 an explicit triggering scenario ('what fired overnight'), names the three relevant alternatives (malcolm_alerting_monitors, malcolm_alerts, malcolm_alerting_monitor_detail) and the exact condition that selects each. This is textbook when/when-not guidance.

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