Skip to main content
Glama

get_maintenance_windows

Read-only

List Zabbix maintenance windows to verify whether reported host anomalies fall inside planned suppressions before treating them as new incidents.

Instructions

List Zabbix maintenance windows -- the read counterpart to set_maintenance.

Use this to cross-check anomalies reported by OTHER tools (e.g. device unreachability, AP-offline reports) before treating them as new incidents: a host in an Active window is one Zabbix is currently suppressing new problem notifications for, because someone (or set_maintenance) registered a planned outage covering it.

Windows are grouped Active / Upcoming (and Expired when requested). "Active" means the current time falls inside the window's own time period, not just its outer active_since/active_till frame -- exact for a one-time window (the kind set_maintenance/set_maintenance_for_hosts create). A window with a recurring time period (set up outside this server) is instead evaluated against its outer frame only and labeled "(recurring)", since precise recurrence evaluation isn't implemented.

Times are the MCP server process's local timezone (same caveat as set_maintenance's since/till).

Args: include_expired: Also list windows whose active_till has passed (default False -- set_maintenance never deletes windows, so expired ones accumulate over time and are noise by default).

Input Schema

NameRequiredDescriptionDefault
include_expiredNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.9.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint=false, and the description goes well beyond them: it explains the Active/Upcoming/Expired grouping, the precise meaning of 'Active' (inner time period vs outer active_since/active_till frame), the documented limitation that recurring windows are evaluated against the outer frame only, and the process-local timezone caveat. These are exactly the non-obvious traits an agent cannot infer from structured fields.

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 opening line is a strong front-loaded summary and the remaining paragraphs are each doing real work (grouping semantics, recurrence limitation, timezone, parameter rationale). It is on the long side, with some parenthetical detail that could be trimmed, but nothing is pure filler.

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?

An output schema exists, so return values need not be described, and the description still supplies the interpretation needed to read them (what Active means, why recurring windows are labeled differently, what the Expired bucket is). For a read-only listing tool with one optional filter, nothing an agent needs to call it or interpret results is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single boolean, so the description carries the burden and does: it defines include_expired, states the default (False), and explains the rationale (set_maintenance never deletes windows, so expired ones accumulate and are noise by default). That is meaning well beyond the bare boolean name.

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+resource ('List Zabbix maintenance windows') and immediately positions itself relative to a named sibling as 'the read counterpart to set_maintenance'. An agent can distinguish it from set_maintenance and the other read tools 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 use case with a precondition: cross-check anomalies reported by other tools before treating them as new incidents, because hosts in Active windows are being suppressed. That is a concrete when-to-use rule tied to actual sibling behavior, not implied usage.

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