Monitoring AIops
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Monitoring AIopsshow me the active alerts rollup"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Monitoring AIops
Disclaimer: Community-maintained open-source project. Not affiliated with, endorsed by, or sponsored by SolarWinds, Paessler, Zabbix, or any monitoring vendor. SolarWinds, Orion, SWQL, THWACK, PRTG, Paessler and Zabbix are trademarks of their respective owners. MIT licensed.
Governed AI-ops for network / infrastructure monitoring across three NOC
platforms in one server — SolarWinds Orion (SWIS REST + SWQL, port 17774
with an automatic fallback to the legacy 17778, HTTP Basic auth), Paessler
PRTG (web API, port 443/8080, API token), and
Zabbix 6.x/7.x (JSON-RPC 2.0 at /api_jsonrpc.php, API token) — with
a built-in governance harness: unified audit log, policy engine,
token/runaway budget guard, undo-token recording, and risk-tier labelling on
the audit trail. One config can span all NOCs; each target names its own
platform.
What it does
Answers the questions a NOC operator actually repeats, and guards the writes that follow:
Canned-SWQL library — the most-asked THWACK questions shipped as named, validated queries (
nodes_down,flapping_interfaces,muted_report,high_cpu_nodes,volumes_full,unmanaged_scheduled), plus a validated read-only SWQL passthrough (SELECT-only) for everything else.Active-alert dedup / rollup — collapses an interface-flap or node-down storm into a single counted entry instead of a wall of near-identical alerts, across SolarWinds, PRTG, and Zabbix (problems, with the 0-5 severity scale mapped to canonical levels).
Triple SolarWinds + PRTG + Zabbix coverage — one MCP server spans all three NOCs; no incumbent hobby MCP does.
Governed writes — mute/unmute, maintenance windows (incl. Zabbix
maintenance.createwith a replayable delete-undo), unmanage/remanage, node removal, and PRTG sensor pause/resume — each audited, risk-tiered, and the destructive ones gated with dry-run + double-confirm. Suppression and maintenance writes are time-boxed (they require an end time / duration).
Related MCP server: domotz-mcp
What this tool does, and does not, decide
It delivers NOC operations — reads and writes — accurately and efficiently, and records every one of them. It does not decide whether a write is allowed to happen. That is the agent's judgement, or the permission of the account you connect it with: give it a SolarWinds/PRTG/Zabbix account with read-only monitoring scope and the writes fail at the server — the place that actually owns the permission.
So there is no read-only switch, no policy file, no approval gate to configure.
The one thing the tool guarantees is that nothing is silent: every call, over
MCP and over the CLI alike, lands an audit row in
~/.monitoring-aiops/audit.db, and destructive writes still capture their
before-state and record an inverse where one exists.
Each tool declares a
risk_level, kept in agreement with its[READ]/[WRITE]documentation tag by a test, and carried into the audit row as a descriptive tier — so a reviewer can see at a glance that a row was a high-risk node removal. It is a label, not a gate.
Running a smaller / local model? See agent-guardrails.md — it lists the guardrails this tool now enforces for you (so you don't spend prompt budget restating them) and gives a ready-made system prompt for what's left.
Capability matrix (42 MCP tools)
Group | Platform | Tools | Count | R/W |
SWQL | SolarWinds |
| 3 | read |
Alerts | all |
| 1 | read |
all |
| 1 | write (low) | |
SolarWinds health | SolarWinds |
| 7 | read |
SolarWinds writes | SolarWinds |
| 3 | read |
SolarWinds |
| 4 | write (med) | |
SolarWinds |
| 2 | write (high) | |
PRTG reads | PRTG |
| 7 | read |
PRTG writes | PRTG |
| 3 | write (med) |
Zabbix reads | Zabbix |
| 7 | read |
Zabbix writes | Zabbix |
| 1 | write (med) |
Zabbix |
| 1 | write (high) | |
Undo | all |
| 2 | undo |
The CLI exposes a convenience subset; the full 42-tool surface is via the MCP server.
Quick start
As a Claude Code plugin
One install gives an agent both the skill and the MCP server:
/plugin marketplace add AIops-tools/marketplace
/plugin install monitoring-aiops@aiops-toolsThe MCP server is fetched with uv and pinned to the
package version this plugin declares, so an audit row can be traced back to the
code that wrote it. Credentials are still configured with monitoring-aiops init — see below.
As a CLI or standalone MCP server
uv tool install monitoring-aiops # or: pipx install monitoring-aiops
monitoring-aiops init # wizard: pick platform (solarwinds/prtg/zabbix) + store the secret (encrypted)
monitoring-aiops doctor # verify config, secrets, connectivity
monitoring-aiops overview # NOC summary: platform + active/unacked alerts + top rollup
monitoring-aiops swql library # list the canned SWQL queries
monitoring-aiops swql canned nodes_down # run a named canned queryRun as an MCP server (stdio):
export MONITORING_AIOPS_MASTER_PASSWORD=... # unlock secrets non-interactively
monitoring-aiops mcpGovernance
Every MCP tool passes through the bundled @governed_tool harness:
Audit — every call (params, result, status, duration, risk tier, approver, rationale) is logged to
~/.monitoring-aiops/audit.db(relocatable viaMONITORING_AIOPS_HOME).Budget / runaway guard — token and call budgets trip a circuit breaker on tight poll/retry loops. It is a safety backstop, not authorization.
Risk-tier labelling — each tool's declared
risk_levelis carried into the audit row as a descriptive tier (a label, not a gate).MONITORING_AUDIT_APPROVED_BY/MONITORING_AUDIT_RATIONALEare optional audit annotations, recorded when set and never required.Undo recording — reversible writes record an inverse descriptor (
mute_alerts→unmute,unmanage_node→remanage,pause_sensor→resume,zabbix_create_maintenance→delete that maintenance id).
Supported scope & limitations
Platforms: SolarWinds Orion (SWIS REST + SWQL), Paessler PRTG (web API), and Zabbix 6.x/7.x (JSON-RPC 2.0; API token via Bearer header on 6.4+/7.x, with a legacy
auth-field fallback for 6.0).Zabbix scope: problems/triggers/hosts/host groups/events, bounded item history, maintenance windows (create/delete), and event acknowledge via the cross-platform
alert_acknowledge. Template/discovery/user CRUD andtrend.getare not covered — open an issue if you need them.Validation status. Behaviour is exercised by the test suite against mocked SWIS/PRTG/Zabbix responses; it has not been run against a live NOC (see
docs/VERIFICATION.md). PRTG has a free perpetual 100-sensor Freeware edition with the API, and Zabbix is fully open source (a Docker-compose appliance is a 10-minute live check) — the easiest live checks. SolarWinds is a 30-day trial only; past the trial this tool is mock-only, which is the largest verification debt.monitoring-aiops doctoris the fastest live check (a SWQL query for SolarWinds,/api/status.jsonfor PRTG, unauthenticatedapiinfo.version+ an authed host count for Zabbix).
Missing a capability?
Want another canned query, a platform dialect fixed, or a capability that isn't here? Open an issue or a PR — feedback and contributions are welcome.
Available Tools
42 toolsactive_alertsA
[READ] Active alerts with dedup/rollup by message (SolarWinds or PRTG).
Rolls up storms (e.g. interface-flap repeats) into one counted entry so the signal isn't buried under duplicates.
Args: target: Monitoring target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral disclosure burden. It clearly states this is a read operation, that alerts are deduplicated/rolled up by message, and that storms are collapsed into a counted entry. This is valuable context, though exact output fields are not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: purpose, behavior, and arguments. The key information is front-loaded and every sentence contributes, with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with only one optional parameter, no annotations, and no output schema, the description covers purpose, behavior, and parameter semantics. It hints at the return shape with 'one counted entry' but does not fully specify result fields; the low complexity makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines a nullable 'target' with a default and no description, and schema coverage is 0%. The description compensates by explaining that 'target' is a monitoring target name from config and that omitting it uses the default, which is the essential semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '[READ] Active alerts' and explains the dedup/rollup behavior, giving a clear verb and resource. It is specific enough to distinguish from simple listing tools, but it does not explicitly contrast with siblings like list_events or prtg_alarms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you need active alerts without duplicate storm entries. However, it gives no explicit when-not guidance or alternative tool routing, leaving the agent to infer the choice from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alert_acknowledgeA
[WRITE][risk=medium] Acknowledge one active alert (reversible triage action).
Pass dry_run=True to preview (reports the platform whose acknowledge API would be called — the three platforms take different endpoints and different id shapes, so it is the part of this call most worth confirming first).
Args: alert_id: Alert id (AlertActiveID on SolarWinds, sensor objid on PRTG, problem event id on Zabbix). dry_run: If True, preview without acknowledging. target: Monitoring target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| dry_run | No | ||
| alert_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses that this is a WRITE action with medium risk, that it is reversible, and that the ID shapes and endpoints differ across SolarWinds, PRTG, and Zabbix. It could go further by describing failure modes or post-acknowledgment effects, but it covers the most important safety-relevant traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized with a clear action header, a practical dry-run tip, and a compact Args list. Every sentence earns its place, and the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given multiple platforms, no annotations, and no output schema, the description covers the critical invocation details: parameters, platform-specific ID shapes, reversibility, and preview behavior. It is slightly incomplete in that it does not describe the expected return value after a real acknowledgment or point to a sibling tool like active_alerts as the source of alert IDs, but it is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three parameters. It fully does: alert_id is explained per platform, dry_run's preview behavior is stated, and target's default behavior is clarified. This goes well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Acknowledge one active alert', and frames it as a 'reversible triage action'. This clearly separates it from sibling tools like mute_alerts, unmute_alerts, and list_events, which have different intents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational context by instructing the agent to pass dry_run=True to preview and identify which platform's acknowledge API will be called. It does not explicitly name alternative tools to use instead, but the singular 'one active alert' and the dry-run guidance make the appropriate use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application_statusA
[READ] SAM application status (Orion.APM.Application); resilient if absent.
Args: target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. The '[READ]' tag explicitly marks the operation as non-mutating, and 'resilient if absent' discloses behavior when the application is missing. It does not describe output format or failure modes, but for a simple read-only status tool the disclosure is reasonable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: an explicit read/status statement with a resilience note, followed by a single-line parameter explanation. Every sentence earns its place with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the one parameter is fully documented, but there is no output schema and the description does not specify what the returned status contains or exactly what 'resilient if absent' means. An agent can call the tool safely but may be uncertain how to interpret its result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description had to explain the target parameter—and it does. 'SolarWinds target name from config; omit for the default' clearly defines the source of the value and the behavior when omitted, fully compensating for the schema's silence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '[READ]' and identifies the resource as 'SAM application status (Orion.APM.Application)', giving a clear verb and object. It distinguishes the tool from sibling status tools like node_status or interface_status by the SAM/APM application resource, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings such as node_status or volume_status, and no exclusions or alternative conditions. The note about the target parameter is parameter usage, not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interface_statusA
[READ] Interface status + utilization (Orion.NPM.Interfaces).
With top set, sets truncated: true when more interfaces existed than
were returned — the whole table is fetched and ranked before the cut, so the
flag is measured rather than inferred.
Args: top: If given, return only the top-N interfaces by peak utilization. target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It discloses a non-obvious behavior: with top set, the entire table is fetched and ranked before truncation, and truncated is a measured flag rather than inferred. The [READ] prefix signals a non-mutating operation, though authentication, rate limits, and error behavior are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first line, and the top behavior is explained in a compact, structured way. The truncated-flag detail earns its place, though the description could be slightly tighter by adding an explicit 'returns' phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the two parameters and a key behavior, but with no output schema it never describes the shape of the returned interface data, ordering, or default top size. For a simple 2-parameter tool it is nearly sufficient, yet the missing return contract is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the Args section fully compensates by explaining top as 'top-N interfaces by peak utilization' and target as a 'SolarWinds target name from config' with default behavior. This adds meaningful semantic detail beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (Orion.NPM.Interfaces) and the action (status + utilization) with a [READ] prefix, making the purpose clear. It is naturally distinguishable from sibling tools like node_status and volume_status, though it does not explicitly differentiate itself from the similar 'topn' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides parameter-level guidance like 'omit for the default' but gives no explicit direction on when to choose interface_status over alternatives such as topn or node_status. An agent would have to infer the appropriate use case from the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsA
[READ] Most recent SolarWinds Orion events (newest first).
Sets truncated: true when more events exist than were returned.
Args: top: Number of events to return (newest first). target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden. It explicitly marks the operation as read-only with '[READ]' and discloses the important truncation behavior: 'Sets truncated: true when more events exist than were returned.' It does not detail every output field, but the key side-effect and boundary behavior are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well structured, front-loading the purpose and then providing a useful behavioral note followed by parameter details. There is minor redundancy in saying 'newest first' twice, but no wasteful content otherwise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters and no output schema, this definition provides enough information to invoke it correctly: it names the resource, sort order, parameter semantics, and the truncation signal. It does not enumerate event fields, but that is not critical for selecting or calling the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. The 'Args' section explains both parameters: top is the number of newest events to return, and target selects a SolarWinds target from config with a default when omitted. This adds real meaning beyond the bare schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Most recent SolarWinds Orion events (newest first)'. It clearly identifies the domain (SolarWinds Orion) and the tool's function, distinguishing it from sibling tools like zabbix_events. The '[READ]' prefix reinforces the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the purpose: an agent should use this tool when it needs recent SolarWinds Orion events. However, it never explicitly says when not to use it, nor does it compare against alternatives such as active_alerts or zabbix_events, leaving some selection ambiguity among the many monitoring siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mutedB
[READ] Objects currently in an alert-suppression (muted) window.
Args: target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It does disclose a safe read operation via [READ] and clarifies that the result is current, not historical. However, it does not describe the output shape, pagination, or behavior when the target is missing, leaving notable gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then the argument. Every sentence serves a purpose, and there is no filler or repetition of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter, the invocation details are mostly covered. But with no output schema and no usage context, the description leaves out what the returned objects look like and when to prefer this over related sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only provides type and default for target. The description adds meaningful semantics: target is a SolarWinds config name, and omitting it selects the default target. This adequately compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete read operation: list objects in an alert-suppression (muted) window. The [READ] prefix and the phrase 'muted window' make the resource and state clear. It does not explicitly contrast with sibling tools like list_unmanaged, but the meaning is sufficiently distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus siblings such as mute_alerts, unmute_alerts, active_alerts, or list_unmanaged. It only documents the target argument, so an agent must infer selection criteria from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_unmanagedA
[READ] Nodes unmanaged now or with a scheduled future unmanage window.
Args: target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden. The explicit [READ] marker discloses that this is a read-only operation, and the phrase 'now or with a scheduled future unmanage window' clarifies exactly which nodes are included. It does not describe output format or permissions, but for a simple read-only list this is meaningful disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the core purpose in the first line and documenting the argument immediately after. Every sentence earns its place with no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with no output schema, the description covers the essential invocation details and result scope. It could be more complete by pointing to related maintenance tools or describing the returned node fields, but the current level is sufficient for basic correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully explains the only parameter: target is the SolarWinds target name from config and can be omitted for the default. This adds real semantic meaning beyond the schema's bare 'Target' label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing: lists nodes that are unmanaged now or scheduled for a future unmanage window. This clearly distinguishes it from related tools like list_muted and unmanage_node, so an agent can identify its purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives such as nodes_list, list_muted, or unmanage_node. The target configuration note is a parameter detail, not a usage condition or exclusion, so the agent is left to infer when this tool is the correct choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mute_alertsA
[WRITE][risk=medium] Time-boxed alert suppression for an entity. Inverse: unmute_alerts.
Args: entity_uri: SWIS entity URI to suppress (e.g. from list_muted / SWQL). minutes: Suppression window length in minutes. target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| minutes | No | ||
| entity_uri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses [WRITE] and risk=medium, describes the operation as time-boxed, and implicitly indicates reversibility via unmute_alerts. This is useful context beyond the schema, though it omits details about side effects such as whether existing alerts are immediately silenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the write/risk marker and purpose, and each line earns its place. The parameter list is formatted for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no output schema, the description provides enough information to call it correctly: purpose, duration, target selection, and inverse operation. A minor gap is that it does not clarify what happens to currently firing alerts during the suppression window, which would round out the behavioral picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining all three parameters: entity_uri with a useful source hint (list_muted / SWQL), minutes as the suppression window, and target as an optional config-derived name. This goes well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: 'Time-boxed alert suppression for an entity', giving a specific action and target resource. It also names the inverse tool (unmute_alerts), which distinguishes it from the closest sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies unmute_alerts as the inverse, giving the agent a clear alternative for undoing the action. It implies the natural use case is temporary suppression, though it does not explicitly state when not to use mute_alerts or compare it with other alert-management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
noc_rollupA
[READ] One-shot NOC glance: down/warning counts + top-3 worst CPU nodes.
Args: target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full behavioral burden and includes [READ] to signal non-mutating behavior and 'one-shot' to indicate a single call returns the summary. It also discloses what data is included (down/warning counts and top-3 CPU nodes), but does not address auth, rate limits, or exact output formatting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every line earns its place: the first line front-loads the read behavior, purpose, and output scope; the Args section directly covers the sole parameter. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter read tool with no output schema, the description provides the necessary output summary and parameter guidance. It is slightly light on what 'worst CPU nodes' means and possible return structure, but these are not blocking for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, target, is explained in the description as a SolarWinds target name from config with an explicit 'omit for the default' behavior. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a concrete read action ('[READ] One-shot NOC glance') and specifies the exact content returned: down/warning counts and top-3 worst CPU nodes. It is distinct from siblings by combining summary counts with a top-node list, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'One-shot NOC glance' clearly frames the intended use: a quick overall status snapshot rather than detailed per-device investigation. No explicit exclusions or alternative routing is given, but the context is clear enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_listA
[READ] List SolarWinds nodes, optionally filtered by status.
Args: status: Optional Orion status filter (1=Up, 2=Down, 3=Warning). target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden; it explicitly labels the operation as '[READ]' and explains the optional status mapping and default target behavior. It does not disclose response formatting or error behavior, but for a read-only list operation the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the operation, and uses a clean Args block where every line provides non-redundant information. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only list call, the description provides the essential invocation details: what it lists, the optional filter, and target default. It lacks response shape/fields and any alternative-tool routing, but these are not blockers for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only type/null defaults with no descriptions (0% coverage), while the description adds concrete meaning: status values 1=Up, 2=Down, 3=Warning, and target as a SolarWinds target name from config with a documented default behavior. This fully compensates for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '[READ] List SolarWinds nodes, optionally filtered by status,' which names a specific verb and resource. It is clear, but it does not explicitly distinguish nodes_list from sibling tools such as node_status or list_unmanaged.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives, nor any exclusions or prerequisites. The only usage hint is the status filter, which is a parameter explanation rather than a selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_statusA
[READ] One SolarWinds node's health by caption or IP (Orion.Nodes).
Args: name_or_ip: Node caption or IP address to look up. target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| name_or_ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavior disclosure burden. It does signal a safe read operation and explains the target default behavior, but it does not describe the shape of the health result, not-found behavior, or any required permissions. This is adequate for a simple read but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is stated in one front-loaded sentence, followed by two compact argument lines with no filler. The structure lets an agent parse intent and invocation details quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description supplies the essential context: what is read, how the node is identified, and how the optional target behaves. It is slightly incomplete only in not specifying return details or explicit sibling alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description covers both parameters: name_or_ip is defined as 'Node caption or IP address to look up,' and target is explained as a config target with the default-omission rule. This goes well beyond the bare schema and fully compensates for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '[READ] One SolarWinds node's health by caption or IP (Orion.Nodes)', stating a specific verb, resource, and lookup key. It clearly separates node_status from sibling list/interface/volume/application tools by restricting to a single node and an identity key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement, and no sibling alternatives are named. The '[READ]' and 'One ... by caption or IP' wording implies the intended case, but an agent must infer how this differs from nodes_list or interface_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_sensorA
[WRITE][risk=medium] Pause a PRTG object; reversible via resume_sensor.
Open-ended when minutes is 0, otherwise auto-resumes after minutes.
Args: object_id: PRTG object id (sensor/device/group) to pause. minutes: Auto-resume after this many minutes; 0 pauses indefinitely. message: Pause message shown in PRTG. target: Monitoring target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| message | No | paused | |
| minutes | No | ||
| object_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well: it flags the write operation, labels risk=medium, and discloses reversibility and auto-resume behavior. It stops short of mentioning permission requirements or response/error behavior, but the core side-effect profile is clearly communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with each line contributing useful information: the write/risk tag, reversibility, auto-resume semantics, and parameter explanations. There is no filler or redundant repetition of schema defaults.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and no annotations, the description covers all required parameters, default behavior, and reversibility. It could add explicit note about expected return values or failure conditions, but nothing essential to invoking the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fully compensates. It explains that object_id can be a sensor/device/group, that minutes=0 means indefinite, that message is shown in PRTG, and that target defaults to the config value. This adds real meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Pause a PRTG object', and immediately names the reversal tool resume_sensor. It also clarifies that object_id can refer to a sensor, device, or group, making the tool's purpose unambiguous and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operating context: pausing can be open-ended or time-bound and is reversible via resume_sensor. It does not explicitly contrast with related tools like mute_alerts or schedule_maintenance, but the behavior is distinctive enough for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prtg_alarmsB
[READ] Active PRTG alarms — sensors in a down state (status 5).
Args: target: PRTG target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the burden. '[READ]' signals a non-mutating operation and the status-5 filter describes what is returned, which is useful. However, it does not disclose response shape, result limits, or authentication/config prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is extremely short, front-loads the core behavior in the first sentence, and uses a compact Args block. Every sentence adds information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter read tool, the description covers the essential selection logic and parameter semantics. Yet because no output schema exists and no annotations are present, the absence of any return-value description and the unresolved meaning of 'the default' leave a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema and description both cover target, but the description adds meaning by explaining that it is a 'PRTG target name from config' and explicitly says to omit it for the default. This is sufficient for the only optional parameter, despite no enum or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource ('PRTG alarms') and its scope ('sensors in a down state (status 5)'), and the leading '[READ]' supplies the operation. It is distinct from sibling tools like prtg_sensors by the down-state filter, though it never uses an explicit verb such as 'list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to prefer this tool over active_alerts or prtg_sensors, and it does not state any exclusions or prerequisites. The only usage hint is the target parameter, which is operational rather than a when-to-use/alternative note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prtg_devicesA
[READ] List monitored PRTG devices (objid, device, host, status, group).
Args: target: PRTG target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It usefully signals non-mutating behavior with '[READ]' and lists output fields, but it does not describe behavior around the default target resolution, invalid targets, empty results, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence plus a one-line argument explanation. There is no filler, and the essential information is immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one optional parameter, it provides the core purpose, output fields, and target semantics. However, with no annotations and no output schema, it leaves some context unspecified: how the default target behaves, what the return structure looks like, and when to choose this tool over other PRTG listing tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only shows that 'target' is an optional string with a default of null. The description adds real meaning by explaining it is a 'PRTG target name from config' and that omitting it uses the default, though it does not enumerate valid target names or explain where the config lives.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('monitored PRTG devices') and enumerates the returned fields (objid, device, host, status, group). This clearly distinguishes it from sibling tools that target sensors, groups, alarms, or other monitoring systems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like prtg_sensors or prtg_groups. The '[READ]' prefix and resource name imply its use for device-level listing, but there are no explicit exclusions, alternatives, or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prtg_groupsA
[READ] List PRTG device groups with their rollup status.
Args: target: PRTG target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. The explicit [READ] marker and 'List' verb signal a non-mutating operation, but the description does not discuss rollup calculation behavior, pagination, permissions, or the exact response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence plus a one-line parameter note. The [READ] marker is front-loaded, and every word adds value without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is mostly complete: it names the resource, the status data, and the parameter behavior. It leaves 'rollup status' undefined and does not describe the return format, which prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines target as an optional string/null with a default of null, providing no semantic meaning. The description adds that target is a PRTG target name from config and that omitting it uses the default, which compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with [READ] and clearly states 'List PRTG device groups with their rollup status,' naming the specific operation, the resource, and a distinguishing output attribute. This makes it easy to differentiate from sibling tools like prtg_devices and prtg_sensors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when a list of PRTG device groups with rollup status is needed, and it offers a minor usage hint about omitting the target for the default. However, it does not explicitly mention alternatives, when-not-to-use conditions, or how to choose between this and similar PRTG list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prtg_historyB
[READ] Historic data points for one PRTG sensor over the recent window.
Args: sensor_id: PRTG sensor object id (objid). hours: Look-back window in hours (default 24). target: PRTG target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | ||
| target | No | ||
| sensor_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds the useful '[READ]' hint and scopes the operation to one sensor, but it does not disclose the output format, data resolution, timezone handling, rate limits, or other behavioral traits that an agent might need to anticipate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line summary followed by a clear Args block. Every sentence adds value, and the main purpose is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The parameter guidance is sufficient for making a basic call, but the description is otherwise minimal. There is no output schema or description of the returned data shape, and the lack of usage exclusions leaves some ambiguity relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does this well by explaining all three parameters: sensor_id as the PRTG objid, hours as a look-back window with a 24-hour default, and target as a config-defined PRTG target with an omission default. This adds meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this is a read operation returning historic data points for one specific PRTG sensor over a recent window, so the resource and scope are identifiable. However, it does not explicitly differentiate itself from sibling tools like prtg_sensor_details or zabbix_item_history, which also involve retrieving sensor-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The '[READ]' marker and 'Historic data points' imply usage for retrieving past sensor data, but the description does not say when not to use it or which sibling should be preferred for current sensor details or other history sources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prtg_sensor_detailsA
[READ] Detailed status for one PRTG sensor (name, status, lastvalue, ...).
Args: sensor_id: PRTG sensor object id (objid). target: PRTG target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| sensor_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. The '[READ]' prefix explicitly signals a read-only, non-mutating operation, and the listed return fields give some idea of what will be observed. It does not discuss errors or edge cases, but for a simple read endpoint this disclosure is meaningfully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the '[READ]' label and purpose appear first, followed by concise parameter notes. Every sentence adds value with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with only two parameters, no output schema, and no annotations, the description covers purpose, parameter semantics, and basic read behavior. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does. It defines sensor_id as 'PRTG sensor object id (objid)' and clarifies target as 'PRTG target name from config; omit for the default', giving each parameter clear purpose and usage beyond the plain schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Detailed status') and the resource ('one PRTG sensor'), and it lists representative return fields (name, status, lastvalue). This distinguishes it from sibling tools that list sensors or perform different operations, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one PRTG sensor' implies it is used when detailed information about a specific sensor is needed, but the description does not explicitly mention when to prefer this over alternatives like prtg_sensors or prtg_history, nor does it state any exclusions. The context is clear but the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prtg_sensorsA
[READ] List PRTG sensors (objid, sensor, device, status, message, lastValue).
Args: status: Optional PRTG status code to filter by (e.g. "5" for down). target: PRTG target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description begins with '[READ]' and says 'List', clearly signaling a non-mutating operation, and it states the output fields. However, with no annotations and no output schema, it does not disclose pagination, rate limits, authentication needs, or behavior when no status is provided. These gaps keep it at an adequate but not strong level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: a one-line summary with [READ] and output fields, followed by a concise arg list. Every sentence adds value, and the key purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional parameters, the description covers the returned fields, filtering, and target behavior. It does not provide a full status-code reference or pagination details, but the low complexity and optional parameters make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only names and nullability, while the description explains that status is an optional filter with an example ('5' for down) and that target comes from config with a default fallback. This adds meaningful guidance beyond the schema, though the full set of valid status codes is not documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List PRTG sensors' and enumerates the returned fields (objid, sensor, device, status, message, lastValue). It is clear but does not explicitly distinguish itself from siblings like prtg_sensor_details or prtg_devices, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful parameter instructions (filtering by status, target default) but never explicitly says when to choose this tool over prtg_sensor_details or other sensor-related tools. Usage context is implied by the word 'List' and the field list, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prtg_system_statusB
[READ] System-wide PRTG sensor counters (up/down/warning/paused/alarms).
Args: target: PRTG target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It explicitly tags the operation as [READ] and lists the counter categories, which conveys a non-destructive overview intent. However, it does not describe the response format, whether data is aggregated/cached, or any side effects or access requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the READ tag and a clear summary, then immediately documents the only parameter. There is no filler or redundant restatement of the tool's name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, the description is adequate for invocation. However, with no output schema and no sibling comparisons, it leaves the exact return shape and when-to-choose-this-tool details to inference. Adding a sentence about the return value or intended use case would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: 'target: PRTG target name from config; omit for the default' clearly explains the parameter's source, optionality, and default behavior. It could name possible targets, but for a single optional parameter this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a system-wide PRTG sensor counter summary with specific categories (up/down/warning/paused/alarms). The [READ] tag and 'system-wide' scope help distinguish it from per-sensor or per-device siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to use this tool versus alternatives like prtg_sensors, active_alerts, or prtg_alarms. The only usage guidance is the target parameter note, which is parameter-level rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remanage_nodeA
[WRITE][risk=medium] Return a node to managed state (lift unmanage).
Args: node_id: Numeric Orion NodeID. target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| node_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and opens with '[WRITE][risk=medium]', disclosing that this is a mutating operation with medium risk. It covers the core behavioral trait but does not detail side effects, permission requirements, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a risk marker, a one-sentence purpose, and a short Args list. There is no filler or repetition of schema fields, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-argument operation with no output schema, the description provides purpose, parameter semantics, and risk level. It omits output or error details, but given the tool's simplicity this is not a serious gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fully compensates by explaining both parameters: node_id is a 'Numeric Orion NodeID' and target is a 'SolarWinds target name from config; omit for the default.' This is sufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Return a node to managed state (lift unmanage).' This clearly identifies the operation and distinguishes it from the sibling unmanage_node, making the tool's intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'lift unmanage' provides clear context for when to use this tool: after a node has been placed in an unmanaged state. It does not explicitly name unmanage_node as the opposite operation or state when not to use it, so it misses the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_nodeA
[WRITE][risk=high] Permanently delete a node from Orion. IRREVERSIBLE — no undo.
Pass dry_run=True to preview (reports the node's caption).
Args: node_id: Numeric Orion NodeID to delete. dry_run: If True, preview without deleting. target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| dry_run | No | ||
| node_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It explicitly marks the operation as [WRITE][risk=high], states IRREVERSIBLE — no undo, and explains that dry_run preview reports the node's caption. It does not mention cascading effects on child objects or the post-delete response, but the essential safety-relevant behavior is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the destructive warning, then gives the preview instruction, then lists all arguments. Every line earns its place, and the structure makes the high-risk nature immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive 3-parameter tool with no annotations and no output schema, the description covers the necessary invocation details, including the safety preview mechanism. It could add more about post-delete behavior or effects on dependent objects, but the preview feature mitigates the main operational uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must supply all parameter meaning. It does: node_id is numeric and the target of deletion, dry_run toggles preview mode, and target selects the SolarWinds config target with a default behavior. This fully compensates for the empty schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Permanently delete a node from Orion.' It is unambiguous and clearly distinguishes this tool from sibling management tools like unmanage_node/remanage_node, which imply temporary or reversible changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly instructs to pass dry_run=True to preview, which is a strong usage guideline for a destructive operation. It also explains that target can be omitted for the default. However, it does not explicitly contrast with alternatives such as unmanage_node, so it stops just short of full when-to-use/when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_sensorA
[WRITE][risk=medium] Resume a paused PRTG object (inverse of pause_sensor).
Args: object_id: PRTG object id to resume. target: Monitoring target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| object_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds useful behavioral context via '[WRITE][risk=medium]' and states the state-changing action. It does not disclose what happens if the object is already running, whether permission is required, or what side effects resuming may have on monitoring.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entry is compact and front-loaded with action and risk markers. The Args section maps cleanly to the input schema with no redundant prose or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter action with no output schema, the description covers the operation, the inverse sibling relationship, and parameter meaning. Minor gaps include success/error return behavior and what the default target is, but these are not essential for the agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully documents both parameters: object_id is the PRTG object to resume, and target is the monitoring target name with omit-for-default semantics. This adds real meaning beyond the schema's bare type and title fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Resume a paused PRTG object', and immediately identifies this as the inverse of pause_sensor. This makes the tool's purpose and its distinction from the most relevant sibling explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names pause_sensor as the counterpart operation, implying when this tool should be used. It also gives usage direction for target with 'omit for the default'. However, it does not explicitly enumerate when not to use this tool beyond the inverse relationship.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_maintenanceA
[WRITE][risk=medium] Schedule a bounded maintenance window for a node.
An end time is REQUIRED — no open-ended maintenance.
Args: node_id: Numeric Orion NodeID. start_iso: Window start (ISO-8601 UTC timestamp). end_iso: Window end (ISO-8601 UTC timestamp) — required. target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| end_iso | Yes | ||
| node_id | Yes | ||
| start_iso | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. The '[WRITE][risk=medium]' tag and 'no open-ended maintenance' warning disclose that this is a state-changing, bounded operation. However, it does not explain what the maintenance window actually does (e.g., suppresses alerts) or mention side effects, permissions, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: the write/risk tag, a one-sentence purpose, the mandatory end-time warning, and a compact Args list. The most important constraint is front-loaded before parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with no annotations and no output schema, the description covers parameter semantics and the crucial bounded-window constraint. It falls short only in not describing the operational effect of the maintenance window or what the tool returns on success, but these are not essential for invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the Args block fully compensates by specifying node_id as a numeric Orion NodeID, start/end as ISO-8601 UTC timestamps, end_iso as required, and target as optional with default behavior. This adds exactly the meaning the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: 'Schedule a bounded maintenance window for a node.' The SolarWinds target parameter makes the domain clear, and the tool is obviously distinct from schedule_maintenance_prtg, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus schedule_maintenance_prtg or zabbix_create_maintenance. The only usage note is the mandatory end-time rule, which is a parameter constraint rather than a tool-selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_maintenance_prtgA
[WRITE][risk=medium] Time-boxed maintenance window (a pause of minutes).
Requires minutes > 0 — maintenance windows are never open-ended.
Args: object_id: PRTG object id to place in maintenance. minutes: Maintenance duration in minutes (must be > 0). target: Monitoring target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| minutes | Yes | ||
| object_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does disclose that this is a WRITE with medium risk, that it creates a finite pause, and that maintenance windows are never indefinite. It does not explain side effects on alerts/monitoring, how to cancel early, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the key information: the operation, the finite-duration constraint, and parameter meanings. The only minor redundancy is that minutes > 0 appears both in the prose and in the parameter description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition adequately identifies required inputs and the time-boxed behavior, but for a mutating tool with no annotations and no output schema, it leaves gaps. It does not say what happens to existing maintenance windows, what the operational effect on monitoring is beyond 'pause', or what the agent should do if maintenance is already active.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does. The Args section gives meaningful semantics for all three parameters: object_id is the PRTG object, minutes is the positive duration, and target is an optional config-based name with a default. This adds beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: schedule a time-boxed maintenance window that pauses a PRTG object for a specified number of minutes. It identifies the resource (PRTG object) and the action, though it does not explicitly differentiate from sibling tools like schedule_maintenance or pause_sensor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful invocation context: minutes must be > 0, maintenance windows are never open-ended, and target may be omitted for the config default. However, it does not explicitly say when to use this tool instead of alternatives such as pause_sensor, unmanage_node, or the generic schedule_maintenance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swql_cannedA
[READ] Run a named canned SWQL query (e.g. nodes_down, flapping_interfaces).
Returns the same envelope as swql_query: {"rows": [...], "returned": N, "limit": L, "truncated": bool}. truncated is measured against the full
result set — do not treat a capped result as the complete answer.
Args: name: Canned query name (from swql_library). params: Optional query params (e.g. {"min": 90} for a threshold). target: SolarWinds target name from config; omit for the default. limit: Maximum rows to return. Default 1000.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| limit | No | ||
| params | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the full burden. It clearly marks the operation as [READ], specifies the exact return envelope, and warns that 'truncated' is measured against the full result set so a capped result should not be treated as complete. This is valuable behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every line earns its place. The return envelope and truncation warning are important caveats, and the Args block is clearly structured. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately explains the return envelope and truncation semantics. It also covers all parameters, including the source of valid names. It is complete enough for an agent to invoke correctly, though it does not discuss error behavior or enumerate available canned queries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all four parameters. It does so: name is tied to swql_library, params is illustrated with an example, target is explained as config-based with a default, and limit is given with its default. This adds real meaning beyond the schema's bare titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Run a named canned SWQL query,' with concrete examples like 'nodes_down, flapping_interfaces.' It distinguishes this tool from siblings by emphasizing 'canned' and deriving names from swql_library, separating it from ad-hoc swql_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through 'canned SWQL query' and 'name from swql_library,' but there is no explicit statement about when to prefer this over swql_query or other alternatives. It does not provide exclusions or direct routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swql_libraryA
[READ] List the canned-SWQL library (name + description).
These answer the most-repeated SolarWinds SWQL questions directly — run one with swql_canned instead of hand-writing the query.
Args: target: Monitoring target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It clearly marks the operation as '[READ]' and states the output shape ('name + description'), making the read-only nature and return content explicit. It also implies that this tool does not execute queries by directing execution to swql_canned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the action, output, and read-only marker appear first, followed by the sibling routing note and the parameter explanation. Every sentence earns its place, and the Args block is minimal and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter read-only list tool, the description is complete: it states what is listed, what the output contains, how it relates to swql_canned, and what the target argument means. The absence of an output schema is adequately covered by the explicit 'name + description' return description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for the single 'target' parameter. It does so by explaining that target is a 'Monitoring target name from config' and that omitting it uses the default. This adds useful meaning beyond the bare schema property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-plus-resource: 'List the canned-SWQL library (name + description).' It also differentiates itself from swql_canned by explaining that library entries are meant to be run with swql_canned, so an agent can tell this tool apart from its siblings without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: these canned queries answer common SWQL questions, and the user should 'run one with swql_canned instead of hand-writing the query.' It names the relevant alternative and the workflow, though it does not explicitly enumerate when-not-to-use cases or other exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swql_queryA
[READ] Run a validated read-only SWQL SELECT (row-capped).
Only SELECT is permitted — state changes go through the governed write tools.
Returns {"rows": [...], "returned": N, "limit": L, "truncated": bool};
when truncated is true the query matched more rows than were returned —
narrow the query or raise the limit rather than treating it as the full set.
Args: query: A SWQL SELECT statement. params: Optional named parameters referenced as @name in the query. target: SolarWinds target name from config; omit for the default. limit: Maximum rows to return. Default 1000.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| params | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the tool is read-only, SELECT-only, row-capped, validated, and returns a structured JSON object with a truncation flag. It also explains the meaning of truncated results and what to do about them, though it does not cover error behavior or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a brief summary line, a critical constraint, an exact return format, and a compact Arg list. Each sentence contributes necessary information and there is no filler. The read-only nature is front-loaded, which is important for safe tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a flexible query tool with no output schema, the description covers the essential context: return shape, truncation semantics, parameter usage, and the row limit. It is missing examples and explicit error handling details, but the core information an agent needs to invoke the tool correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate, and it does. Every parameter is explained: query is the SWQL SELECT statement, params are optional named parameters referenced as @name, target selects a SolarWinds target, and limit controls row count with a default. This goes well beyond the bare schema and gives an agent enough to construct valid calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Run a validated read-only SWQL SELECT." It clearly marks the tool as read-only and SELECT-only, distinguishing it from the write-oriented sibling tools. The row-capped behavior is also stated up front, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use the tool (read-only SWQL SELECT queries) and when not to: "state changes go through the governed write tools." It also advises narrowing the query or raising the limit when truncated. It does not explicitly contrast with swql_library or swql_canned, but the core usage guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topnA
[READ] Top-N SolarWinds nodes by a health metric.
Returns {"nodes": [...], "returned": N, "metric": str, "error": str | None}. A non-null "error" means the SWQL query failed — the opposite finding from "no nodes are under load", so never report one as the other.
Args: metric: One of cpu, memory, latency, packetloss. n: How many nodes to return (default 10). target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | ||
| metric | No | cpu | |
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden well: it labels the operation as read-only, documents the exact return shape, and explicitly warns that a non-null error means the SWQL query failed, not that no nodes are under load. Minor gaps such as sort order or invalid-metric behavior remain, but the disclosure is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded, and every sentence earns its place: read intent, core purpose, return shape, a critical error-semantics warning, and a terse parameter list. There is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with no output schema, the description covers the return structure, parameters, read-only behavior, and error interpretation. It could be more explicit about how 'top' is determined or whether nodes are sorted high-to-low, but it is sufficiently complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only types and defaults, but the description meaningfully documents all three parameters: metric's allowed values, n's meaning and default, and target's config-source semantics. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: return a Top-N list of SolarWinds nodes ranked by a health metric, and explicitly marks the operation as read-only. It is specific enough to distinguish from most siblings, though it does not name an alternative tool or state what it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives such as nodes_list, node_status, or swql_query. The only usage hint is the parameter-level note about omitting target for the default, which does not help with tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undo_applyA
[WRITE][risk=medium] Apply a recorded undo by dispatching its inverse tool.
The inverse runs through its own governed tool, so it is audited and its risk_level recorded there. Pass dry_run=True to preview the inverse call without executing it. A token can only be applied once.
Args:
undo_id: The undoId from undo_list (or an _undo_id in a write result).
dry_run: If True, preview the inverse tool + params without running it.
target: Passed through to the inverse tool when it accepts a target.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| dry_run | No | ||
| undo_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so thoroughly. It discloses that this is a write operation with medium risk, that the inverse call is routed through a governed tool and audited, that dry_run avoids execution, and that a token is single-use. This is rich behavioral disclosure beyond a simple 'undo' label.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the build marker and one-sentence purpose. The Args block is concise and directly useful, with no filler. Every sentence contributes to understanding the tool's behavior or parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema, the description provides all essential information needed to call it correctly: source of undo_id, dry_run behavior, target passthrough, and the one-time-use caveat. It omits what the return value looks like, but that is a minor gap given the tool's simplicity and the lack of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (coverage 0%), but the description's Args section fully documents each parameter: undo_id's source, dry_run's preview behavior, and target's passthrough semantics. This completely compensates for the schema gap and adds meaning beyond the raw types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Apply' with a clear resource ('a recorded undo') and mechanism ('by dispatching its inverse tool'). It distinguishes itself from undo_list by referencing undo_id as the source of the undo to apply, making the tool's role unambiguous even without explicitly naming siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear operational context: it applies a recorded undo, supports dry_run=True for preview, and notes that a token can only be applied once. It does not explicitly enumerate when-not-to-use or alternatives, but the reference to undo_list as the source of undo_id implies the list-vs-apply split well enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undo_listA
[READ] List recorded, not-yet-applied undo tokens (most recent first).
Each entry names the original tool, the inverse tool that undo_apply
would run, and a human note. Use the undoId with undo_apply.
Returns {"undos": [...], "returned": N, "limit": L, "truncated": bool}.
truncated is measured (one extra row is fetched), not guessed from a
length coincidence: when it is true there are MORE tokens than shown, so
re-run with a higher limit rather than reporting the list as complete.
Each entry carries effectVerified. False means the original write lost
its response, so the change it reverses is PROBABLE, not confirmed — check
the live state before applying, and do not report the result as a restore
of a state that may never have been reached.
Args: limit: Max rows to return (default 50, capped at 500). target: Unused (undo state is host-local); accepted for CLI uniformity.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so excellently. It discloses the return shape, the measured rather than guessed truncation behavior, the meaning of effectVerified, and the fact that target is unused, plus the limit cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then structured into return semantics, caveats, and parameter documentation. Each sentence adds unique value; no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description supplies a complete picture: return format, parameter behavior, truncation semantics, verification caveats, and how to proceed with undo_apply. An agent has everything needed to call and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must document parameters itself. It fully explains limit's default and cap and explicitly states that target is accepted but unused for CLI uniformity. This goes well beyond what the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List recorded, not-yet-applied undo tokens (most recent first).' It clearly differentiates from the sibling undo_apply by describing the inspection role rather than the application role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use the tool: when you need to see pending undo tokens before applying one. It also tells the agent to use the returned undoId with undo_apply and to re-run with a higher limit when truncated is true. It does not explicitly name alternatives or exclusions, but the guidance is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unmanage_nodeA
[WRITE][risk=high] Unmanage a node — masks its monitoring. Inverse: remanage_node.
Pass dry_run=True to preview. Reversible → remanage. An end time is required (no open-ended unmanage).
Args: node_id: Numeric Orion NodeID. start_iso: Unmanage window start (ISO-8601 UTC timestamp). end_iso: Unmanage window end (ISO-8601 UTC timestamp) — required. dry_run: If True, preview without unmanaging. target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| dry_run | No | ||
| end_iso | Yes | ||
| node_id | Yes | ||
| start_iso | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure and meets it thoroughly. It declares the operation is a write, flags the risk level as high, states the effect (masks monitoring), discloses reversibility via remanage, offers a dry-run preview mechanism, and enforces the no-open-ended-window constraint. This is exactly the behavioral context an agent needs for a state-changing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly 100 words organized into a tight tag prefix, a one-line definition, an inverse reference, two behavior constraints, and a clean Args list. Every sentence earns its place — no filler, no repetition of schema defaults that are already visible. The critical risk/safety information is front-loaded ahead of parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five parameters, zero annotations, zero schema description coverage, and no output schema, the description is nearly complete for correct invocation: it covers purpose, risk, reversibility, parameter semantics, and constraints. The only notable gap is the absence of any statement about what the tool returns on success or failure, which matters for a high-risk write operation but does not block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate, and it does: every parameter gets a meaningful explanation. node_id is clarified as a numeric Orion NodeID, start_iso and end_iso get ISO-8601 UTC format semantics with end_iso's required nature re-emphasized, dry_run's preview behavior is explained, and target's config-source and default behavior are documented. This goes well beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Unmanage a node') and immediately explains the effect ('masks its monitoring'). The inverse relationship to remanage_node is explicitly named, distinguishing it from the closest sibling without requiring the agent to open its schema. The [WRITE][risk=high] prefix further frames the operation's nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the key alternative ('Inverse: remanage_node') and gives concrete invocation guidance: pass dry_run=True to preview, and an end time is mandatory since open-ended unmanages are not allowed. It does not explicitly contrast against other overlapping write siblings like mute_alerts or schedule_maintenance, leaving some selection judgment to the agent, but the core routing information is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unmute_alertsA
[WRITE][risk=medium] Resume alerts for an entity (lift suppression).
Args: entity_uri: SWIS entity URI to resume (from list_muted). target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| entity_uri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it handles this well by leading with '[WRITE][risk=medium]', explicitly framing the operation as a write with medium risk. It also explains the behavioral effect, 'lift suppression', which tells the agent the operation changes entity alert state rather than just reading it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it opens with the critical write/risk marker, then gives a one-line purpose, followed by a clean parameter list. There is no filler or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter action tool with no output schema, the description is complete: purpose, behavior, risk level, parameter semantics, source for the primary argument, and default behavior for the optional argument are all covered. No critical guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates by explaining both parameters: entity_uri is the SWIS entity URI to resume and should come from list_muted, while target is the SolarWinds target name from config and can be omitted for the default. This adds real meaning beyond the bare schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action, 'Resume alerts', a specific resource, 'alerts for an entity', and the semantic effect, '(lift suppression)'. This distinguishes it from the obvious sibling mute_alerts and makes its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use the tool: to resume alerts that were previously suppressed. It also provides practical guidance by specifying that entity_uri comes from list_muted and that target can be omitted for the default. It does not explicitly name alternatives, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volume_statusA
[READ] Volumes at/above a fill threshold (Orion.Volumes), worst first.
Args: min_percent: Minimum percent-used to include (default 0 = all). target: SolarWinds target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| min_percent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explicitly discloses that this is a read operation via [READ], describes filtering behavior (min_percent) and result ordering (worst first). It does not describe the return shape or authentication/config dependencies, but these are minor for a simple read-only status tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the [READ] label. The Args section is organized and every line contributes useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with two optional parameters, the description covers source data, threshold semantics, ordering, and target selection. A brief hint about the response format would make it fully complete, especially since no output schema is provided, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description fully documents both parameters: min_percent is explained with unit and meaning, including default 0 = all; target is explained as a SolarWinds target name from config, with the omission behavior stated. This adds substantial meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (Orion.Volumes), the condition ('at/above a fill threshold'), and ordering ('worst first'). The [READ] label establishes the operation type, clearly distinguishing it from other status tools targeting nodes, interfaces, or applications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this when you need volume capacity/fill status, especially worst offenders. However, it does not explicitly contrast with sibling tools like node_status, interface_status, or application_status, or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_create_maintenanceA
[WRITE][risk=medium] Create a time-boxed Zabbix maintenance window.
Requires minutes > 0 (never open-ended) and at least one host or group id. Reversible: the undo deletes exactly the maintenance id this call created.
Args: name: Maintenance window name shown in Zabbix. minutes: Window length in minutes (must be > 0). host_ids: Host ids to cover (from zabbix_hosts). group_ids: Host-group ids to cover (from zabbix_hostgroups). target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| target | No | ||
| minutes | Yes | ||
| host_ids | No | ||
| group_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so well. It explicitly marks the operation as [WRITE][risk=medium], forbids open-ended windows, and discloses reversibility: 'the undo deletes exactly the maintenance id this call created.' This gives an agent a clear safety and side-effect model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and well-structured: risk marker, one-sentence purpose, constraints/reversibility, then an Args list. Every sentence adds value, and the most important operational facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, no-annotation, no-output-schema tool, the description is unusually complete: it covers prerequisites, id sources, reversibility, and parameter constraints. The only minor gap is that it does not describe the response shape or what the caller should expect on success, which would help an agent fully close the loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the Args section documents every parameter with meaningful semantics: name is the display name, minutes must be > 0, host_ids come from zabbix_hosts, group_ids from zabbix_hostgroups, and target falls back to the default when omitted. This fully compensates for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Create a time-boxed Zabbix maintenance window.' This clearly distinguishes it from siblings like zabbix_delete_maintenance and zabbix_maintenances, and the 'time-boxed' qualifier adds important scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete preconditions: 'minutes > 0 (never open-ended)' and 'at least one host or group id.' It also points to zabbix_hosts and zabbix_hostgroups as sources for ids. It does not explicitly contrast with schedule_maintenance or the PRTG variant, but the Zabbix-specific naming makes the intended context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_delete_maintenanceA
[WRITE][risk=high] Delete a Zabbix maintenance window. IRREVERSIBLE — no undo.
Pass dry_run=True to preview (reports the window's full definition). The BEFORE definition lands in priorState.
Args: maintenance_id: Maintenance id to delete (from zabbix_maintenances). dry_run: If True, preview without deleting. target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| dry_run | No | ||
| maintenance_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavior. It explicitly states the operation is a high-risk, irreversible write; describes dry_run preview behavior; and notes that the BEFORE definition is recorded in priorState. This gives an agent a strong safety model of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured. The risk warning is front-loaded, the dry_run and priorState behavior is stated in two lines, and an Args list cleanly maps to the schema. Every sentence adds meaningful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with no annotations and no output schema, the description covers purpose, safety implications, all parameters, preview mode, and state tracking. An agent has enough information to call the tool correctly and avoid destructive mistakes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all parameters, and it does. maintenance_id is tied to zabbix_maintenances, dry_run is explained as preview-without-deleting, and target is described with a default behavior. This adds valuable semantics beyond the raw schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'Delete a Zabbix maintenance window.' It also signals destructive intent with '[WRITE][risk=high]' and 'IRREVERSIBLE — no undo,' which clearly distinguishes this from sibling tools like zabbix_create_maintenance and zabbix_maintenances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this tool deletes an existing maintenance window, and the maintenance_id should come from zabbix_maintenances. It mentions the dry_run preview option as a safe way to test. It does not explicitly name alternatives or state when not to use the tool, but the usage context is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_eventsA
[READ] Most recent Zabbix trigger events (newest first).
Sets truncated: true when more events exist than were returned; re-run
with a higher top rather than treating the result as the whole history.
Args: top: Number of events to return (newest first, capped at 500). target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does it well. It explicitly declares the tool as a read operation, states the ordering, reveals the 500-event cap, and documents the `truncated` flag and the correct follow-up action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, starting with the READ tag and the core purpose before explaining truncation behavior and parameters. Every sentence adds necessary information, and there is no repetition of schema defaults or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers everything needed to call the tool correctly: purpose, ordering, truncation semantics, cap, and both parameters. The `truncated` flag disclosure is especially important because it prevents the agent from misinterpreting partial results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only titles and defaults with 0% description coverage, so the description must document the parameters. It does so completely: `top` is explained as the number of events to return with a 500 cap, and `target` is explained as the Zabbix target name from config with a clear 'omit for default' instruction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource ('Zabbix trigger events'), the operation ([READ]), and the ordering ('newest first'). It is specific enough to separate events from triggers or hosts, but it does not explicitly contrast with sibling tools like zabbix_problems or zabbix_triggers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: retrieving recent Zabbix trigger events, newest first. It also gives actionable guidance about re-running with a higher `top` when `truncated` is true, but it never mentions alternatives or conditions for choosing a different sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_hostgroupsA
[READ] Zabbix host groups (ids + names, for inventory and maintenance).
Args: target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. '[READ]' is a clear behavioral label indicating no mutation, and 'ids + names' hints at the response content. Yet it does not disclose the response format, potential errors, or auth/permission requirements, so behavioral transparency is only partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the READ label and purpose appear first, followed by a clearly separated Args block. There is no filler; every sentence adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool, the description covers purpose, parameter, and output content at a high level. However, since there is no output schema and the description does not detail the exact return structure (e.g., array of objects) or default target behavior, it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one optional parameter 'target' with 0% description coverage, but the description's Args section explains it as 'Zabbix target name from config; omit for the default.' This meaningfully compensates for the schema by clarifying the parameter's origin and optionality, although it assumes familiarity with a config.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '[READ]', clearly signaling a read operation, and specifies the resource (Zabbix host groups) plus the content returned (ids + names). It is distinguishable from sibling tools like zabbix_hosts and zabbix_triggers by resource name. However, the verb is implied rather than stated as 'list' or 'get', so it could be slightly more explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for inventory and maintenance' gives a general context for when the tool is applicable, but it does not explicitly contrast with alternatives, nor say when not to use it (e.g., use zabbix_hosts to retrieve hosts). This leaves some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_hostsA
[READ] Zabbix hosts with interfaces + owning groups (health inventory).
Args: target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and meets it by explicitly labeling the operation '[READ]', indicating no mutating side effects. It also discloses the output scope: hosts with interfaces and owning groups. It does not discuss pagination or rate limits, but for a simple read-only inventory tool the key behavioral signal is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the action and resource appear in the first line, followed by a single necessary parameter explanation. No sentences are wasted, and the structure makes it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description provides everything needed to invoke it correctly: read-only behavior, the high-level return content (hosts, interfaces, owning groups), and the parameter's source and default behavior. Given the low complexity, nothing significant is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'target' as a nullable string with a default, but the description explains its meaning: a Zabbix target name from config, and that omitting it selects the default. Since this is the only parameter and schema coverage is 0%, the description fully compensates and leaves no ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the explicit verb '[READ]' and names the exact resource: 'Zabbix hosts', further narrowed by what is included ('interfaces + owning groups') and the intended purpose ('health inventory'). This clearly distinguishes the tool from siblings such as zabbix_problems or zabbix_hostgroups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '(health inventory)' gives clear context that this tool is for retrieving Zabbix host inventory data rather than alerts, problems, or maintenances. It does not explicitly name alternatives or exclusions, but the intended use case is clear enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_item_historyA
[READ] Bounded metric detail for one Zabbix item (meta + history points).
Sets truncated: true when the item had more points in the window than
were returned — the series you got is the most recent slice, not all of it.
Args: item_id: Zabbix item id (from the host's items). hours: Look-back window in hours (capped at 168). limit: Max history points to return (capped at 500). target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | ||
| limit | No | ||
| target | No | ||
| item_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself carries the behavioral burden and does so well: it flags truncation behavior (truncated: true, most recent slice) and states caps for hours and limit. It does not cover response errors or auth requirements, but for a read-only history fetch the disclosed behavior is the most important.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, followed by the truncation caveat and a compact parameter list. It is slightly longer than strictly necessary because the Args block restates parameter names from the schema, but each line adds operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description covers invocation ingredients well: all four parameters, caps, and the truncated flag. The return shape is only loosely described as 'meta + history points', but this is sufficient for a bounded single-item history fetch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the schema has 0% description coverage, the Args block is the sole semantic source for parameters. It adds provenance for item_id, caps (168 hours, 500 points), and how to omit target for the default, going beyond the raw schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line names a precise action and resource: bounded metric detail and history points for one Zabbix item. The Zabbix-specific scope and one-item limit clearly distinguish it from sibling tools like zabbix_hosts, zabbix_problems, and prtg_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to call it: when a single Zabbix item's bounded history is needed, with item_id sourced from the host's items. It does not list explicit alternatives or exclusions, but no misleading usage cues are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_maintenancesB
[READ] Zabbix maintenance windows with their hosts/groups and periods.
Args: target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure; the [READ] prefix signals a read-only operation and the phrase 'with their hosts/groups and periods' clarifies the returned scope. However, it does not address authentication requirements, error behavior, or explicitly confirm that no state is modified beyond the READ label. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the READ marker and return scope appear first, followed by a single structured Args entry. Every line earns its place with no redundant boilerplate or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and no output schema, and the description covers the return content and target argument. However, it omits response format, potential errors, and any situational guidance for choosing this over sibling Zabbix tools. It is sufficient for a minimal read operation but not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The Args block defines target as 'Zabbix target name from config' and instructs to omit for the default, adding meaningful context about where the value comes from and its optionality beyond the schema's bare null default. It does not enumerate possible target names, but for a config-derived value this is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a [READ] marker and the resource 'Zabbix maintenance windows with their hosts/groups and periods,' clearly indicating a retrieval tool. It is distinguishable from siblings like zabbix_create_maintenance and zabbix_delete_maintenance via the READ prefix and resource focus, though a more explicit verb such as 'list' would make it fully unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to select this tool over related Zabbix read tools such as zabbix_problems, zabbix_hosts, or zabbix_events. The only usage note is the target parameter description, which addresses parameter behavior rather than tool selection. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_problemsB
[READ] Current Zabbix problems (active alerts) with mapped severity levels.
Args: min_severity: Only problems at this Zabbix severity (0-5) or above. target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| min_severity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It does state the operation is READ and notes that severity levels are 'mapped', but it omits pagination, limits, whether acknowledged problems are included, or how the severity mapping works. The '[READ]' prefix is helpful, but the mapping behavior remains underspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the READ nature and resource are stated first, followed by a terse Args list. Every sentence carries meaning, and there is no redundant repetition of schema defaults or boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two optional parameters and no output schema, the description gives enough to invoke it but not enough to fully anticipate the response. It hints at 'active alerts' with mapped severities but doesn't specify return fields, pagination, or the exact severity mapping. This is minimally viable but leaves output-shape uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the Args section must compensate. It explains min_severity as a 0-5 Zabbix severity threshold with an 'or above' filter, and target as a config-defined name with omit-for-default behavior. This provides semantic meaning beyond the raw schema, though it could add explicit range validation or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'Current Zabbix problems (active alerts)' and flags the operation as READ. The phrase 'with mapped severity levels' adds a useful output transformation detail. The Zabbix prefix distinguishes it from generic siblings like active_alerts, though it doesn't explicitly contrast with zabbix_triggers or zabbix_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings such as zabbix_triggers, zabbix_events, or active_alerts. The only usage context is per-parameter ('Only problems at this Zabbix severity (0-5) or above', 'Zabbix target name from config'). An agent must infer the appropriate selection purely from the tool name and resource phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zabbix_triggersB
[READ] Zabbix triggers, by default only those currently firing (PROBLEM).
Args: only_problems: If True (default), only triggers in PROBLEM state. target: Zabbix target name from config; omit for the default.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| only_problems | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The [READ] tag and the default PROBLEM filter disclose important behavioral traits, and the tool has no annotations to rely on. However, it does not describe output format, pagination, or any other side effects beyond being a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the purpose, and uses a structured Args section. The only minor inefficiency is repeating the PROBLEM-state concept in both the intro and the only_problems parameter explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description leaves return values and error behavior unexplained. It covers the parameters and default behavior well, but an agent gets no information about what fields are returned or how to interpret the results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. It clearly explains only_problems as controlling whether only PROBLEM-state triggers are returned and describes target as a Zabbix target name from config. This sufficiently compensates for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as reading Zabbix triggers and specifies the default scope of 'currently firing (PROBLEM)'. It uses a specific verb and resource, but does not explicitly differentiate itself from the sibling zabbix_problems tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives parameter meaning but no guidance on when to choose this tool over alternatives such as zabbix_problems or zabbix_events. There are no explicit when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
42 tool updates
v0.9.0- First observed
active_alerts - First observed
alert_acknowledge - First observed
application_status - First observed
interface_status - First observed
list_events - First observed
list_muted - First observed
list_unmanaged - First observed
mute_alerts - First observed
noc_rollup - First observed
node_status - First observed
nodes_list - First observed
pause_sensor - First observed
prtg_alarms - First observed
prtg_devices - First observed
prtg_groups - First observed
prtg_history - First observed
prtg_sensor_details - First observed
prtg_sensors - First observed
prtg_system_status - First observed
remanage_node - First observed
remove_node - First observed
resume_sensor - First observed
schedule_maintenance - First observed
schedule_maintenance_prtg - First observed
swql_canned - First observed
swql_library - First observed
swql_query - First observed
topn - First observed
undo_apply - First observed
undo_list - First observed
unmanage_node - First observed
unmute_alerts - First observed
volume_status - First observed
zabbix_create_maintenance - First observed
zabbix_delete_maintenance - First observed
zabbix_events - First observed
zabbix_hostgroups - First observed
zabbix_hosts - First observed
zabbix_item_history - First observed
zabbix_maintenances - First observed
zabbix_problems - First observed
zabbix_triggers
TDQS
Tools are mostly distinct, with platform prefixes and separate resource names making selection clear. The main ambiguity is between pause_sensor/schedule_maintenance_prtg and mute_alerts/schedule_maintenance/unmanage_node, where similar suppression semantics overlap despite helpful descriptions.
All names are snake_case and readable, but no single convention is followed: reads mix noun-first names like nodes_list and zabbix_problems with verb-first names like list_events and list_unmanaged. Platform prefixes are also applied unevenly, such as pause_sensor being PRTG-specific while other PRTG tools use the prtg_ prefix.
At 42 tools this is well beyond the 25+ threshold and creates a heavy selection burden for agents. The three-platform scope justifies a larger surface, but it would be cleaner split into per-platform servers or consolidated further.
The set covers the core monitoring lifecycle: health reads, alerts, history, acknowledgements, pause/resume, maintenance windows, mute/unmute, unmanage/remanage, node removal, and SWQL for arbitrary SolarWinds queries. Minor gaps exist, such as no SolarWinds metric history wrapper and limited PRTG/Zabbix write operations, but these are workable via existing tools.
Maintenance
Related MCP Connectors
One MCP URL for all your connectors — scoped writes, enforced constraints, and a full audit trail.
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Monitor MCP servers, API contracts and AI outputs for schema drift. Alerts on breaking changes.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP server for the NinjaOne RMM platform, enabling tools to manage devices, organizations, alerts, jobs, and policies through NinjaOne's API.24Apache 2.0
- AlicenseAqualityAmaintenanceMCP server for Domotz network monitoring and management. Enables AI assistants to query network devices, alerts, and topology via the Domotz API.225Apache 2.0
- FlicenseBqualityDmaintenanceAsynchronous MCP server for unified multi-platform network infrastructure management, providing 97 tools across 10 connectors including SSH, MikroTik, Palo Alto, Aruba, Graylog, LibreNMS, Cisco APIC/NDFC, and Panorama.9722-
- AlicenseCqualityFmaintenanceComprehensive MCP server for integrating with Zabbix monitoring systems, providing 90+ API tools across 19 categories for monitoring, alerting, and infrastructure management.10015MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/AIops-tools/Monitoring-AIops'
If you have feedback or need assistance with the MCP directory API, please join our Discord server