Skip to main content
Glama
crunchtools

mcp-nagios-crunchtools

by crunchtools

mcp-nagios-crunchtools

Secure MCP server for Nagios Core monitoring. Query host and service status, acknowledge problems, add comments, schedule forced checks, and read notification history.

Installation

uvx mcp-nagios-crunchtools

Related MCP server: thruk-mcp

Configuration

Variable

Required

Description

NAGIOS_URL

Yes

Base URL (e.g., https://nagios.example.com)

NAGIOS_USER

Yes

HTTP Basic Auth username

NAGIOS_PASS

Yes

HTTP Basic Auth password

NAGIOS_COMMENT_AUTHOR

No

Author recorded on acknowledgements and comments. Defaults to NAGIOS_USER. Not a tool parameter.

NAGIOS_CGI_PREFIX

No

Path under NAGIOS_URL where the CGI scripts are served. Defaults to /nagios/cgi-bin. Set to /cgi-bin for a Nagios served at the web root. A trailing slash is ignored.

NAGIOS_LOG_PATH

No

Read-only path to nagios.log. Enables nagios_downtime_history and the planned-work split in nagios_alert_history; archivejson.cgi never returns downtime entries.

TZ

Effectively yes

The container's local timezone. Must match the Nagios server's own timezone.

Why TZ matters

schedule_check submits a start_time to cmd.cgi, which parses it as naive wall-clock time in the Nagios server's local timezone — there is no offset field to send. The value is therefore built with time.localtime(), so this container must run in the same timezone as the Nagios server.

When it does not, forced checks are silently scheduled into the future by the offset between the two — four hours against an EDT server — and "check now" appears to do nothing at all. No error is raised. This was a real defect, fixed in 0.1.2 by switching from gmtime() to localtime(); the timezone assumption it introduced is why TZ belongs in this table rather than being left implicit.

Tools

Tool

Description

nagios_host_status

Query a single host's status

nagios_service_status

Query a single service's status

nagios_current_problems

All hosts/services not in OK state, with duration, attempt, acknowledgement and plugin output

nagios_program_status

Health check on the monitoring path itself (wedged daemon, disabled notifications, stale status) -- not the same as no current problems

nagios_acknowledge

Acknowledge a host or service problem

nagios_add_comment

Add a comment to a host or service

nagios_schedule_check

Force an immediate re-check

nagios_schedule_downtime

Fixed downtime from now (5–480 min) on a host and its services, or one service, before planned work

nagios_list_downtimes

Downtime in effect or pending

nagios_cancel_downtime

End this server's own downtime when the work is done

nagios_downtime_history

Past and current downtime windows with author and comment, from nagios.log

nagios_notification_history

Recent notifications

nagios_alert_history

State changes rolled up per host/service, including warnings and problems that recovered by themselves; problems during scheduled downtime are totalled separately

License

AGPL-3.0-or-later

Available Tools

13 tools
nagios_acknowledge_toolNagios Acknowledge ToolC

Acknowledge a host or service problem in Nagios.

NameRequiredDescriptionDefault
notifyNoSend notification about the acknowledgement. Default True.
stickyNoKeep acknowledged even if state changes. Default True.
commentYesAcknowledgement comment (e.g., 'Hermes is investigating').
host_nameYesThe hostname with the problem.
service_descriptionNoService name. Omit for host acknowledgement.

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and it does not deliver. It never states that acknowledging suppresses alerting/notifications until the problem resolves or that the sticky/notify defaults change subsequent behavior — the single most important thing an agent needs to know before calling this mutation.

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

Conciseness4/5

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

A single front-loaded sentence with no wasted words. It is efficient, though the brevity edges into under-specification rather than deliberate conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a state-changing Nagios operation with zero annotations the description omits effect, prerequisites, and alternatives. Too little context for an agent to call it confidently.

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

Parameters3/5

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

Schema description coverage is 100% with 5 documented parameters, including defaults for notify and sticky and the semantics of omitting service_description, so the baseline is 3. The description adds no parameter meaning of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (acknowledge) and resource (host or service problem) and covers both object types the tool targets. It does not distinguish itself from siblings like nagios_add_comment_tool or the status tools, so an agent must infer which one applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to acknowledge versus alternatives such as nagios_add_comment_tool, nor any note about prerequisites or state requirements. The agent is left to infer usage entirely from the name.

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

nagios_add_comment_toolNagios Add Comment ToolB

Add a persistent comment to a host or service in Nagios.

NameRequiredDescriptionDefault
commentYesComment text (e.g., 'Restarting service to resolve issue').
host_nameYesThe hostname.
service_descriptionNoService name. Omit for host comment.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It says the comment is 'persistent' but does not disclose permissions required, whether the comment is visible to users, how long it persists, or how to remove it. No output schema exists, so return behavior is also left undocumented.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It delivers the core action immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is minimal. It names the action and target but lacks essential context about permissions, persistence semantics, and return behavior that an agent needs to invoke it confidently.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters, including using service_description to target a service. The description only restates that a comment targets a host or service, adding minimal meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (add) and resource (persistent comment) and target (host or service). It is clear, but it does not explicitly differentiate from siblings like nagios_acknowledge_tool, which also creates persistent annotations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives, such as nagios_acknowledge_tool for acknowledging problems or when a comment is appropriate. The schema implies host vs. service via service_description, but the description does not expand on that.

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

nagios_alert_history_toolNagios Alert History ToolA
Read-only

Roll up Nagios state changes per host and service over a period.

Unlike notification history, this includes warnings, soft states and problems that recovered without paging anyone, so it is where flapping shows.

NameRequiredDescriptionDefault
hoursNoHow many hours of history to roll up, 1 to 744. Default 168 (one week).
host_nameNoFilter to a specific host. Omit for all hosts.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: the rollup includes warnings, soft states, and self-recovered problems, making flapping visible — information an agent cannot derive from the annotations or schema.

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

Conciseness5/5

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

Two short sentences with no filler; the scope statement is front-loaded and the differentiator follows immediately. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is fully documented, so return values need not be described. With annotations covering safety and the description covering scope and sibling differentiation, nothing an agent needs in order to invoke this correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (hours, host_name) already carry format, range, and default details in the schema. The description adds no additional meaning about parameter usage, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Roll up Nagios state changes per host and service') plus the time scope ('over a period'). It also explicitly distinguishes itself from the sibling notification-history tool, so an agent can pick between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative ('Unlike notification history') and gives the condition that selects this tool: warnings, soft states, and problems that recovered without paging. That is strong routing guidance, though it stops short of stating explicit exclusions or prerequisites for calling it.

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

nagios_cancel_downtime_toolNagios Cancel Downtime ToolA

End downtime this server scheduled, once the planned work is done.

Only downtime recorded under this server's own author is cancelled.

NameRequiredDescriptionDefault
host_nameYesThe host. Without service_description, its host and service downtimes are all cancelled.
service_descriptionNoCancel only this service's downtime.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses a key behavioral trait—that only downtime from this server's author is cancelled—but omits permissions required, idempotency behavior, and what happens if no matching downtime exists. This is useful but incomplete for a mutation tool.

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

Conciseness5/5

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

Two sentences with zero waste, front-loading the main action and then the critical scope constraint. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. The description covers when and scope, but lacks details on permissions, error behavior, and idempotency for this mutation operation. Still, it is largely complete for a simple two-parameter cancel tool.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema fully documents both parameters (host_name and service_description). The description adds no parameter-level details beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (End) and resource (downtime), and adds a scope restriction (only downtime scheduled by this server's own author). It implicitly contrasts with nagios_schedule_downtime_tool, but does not explicitly name a sibling, meeting the criteria for a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when to use it ('once the planned work is done') and clarifies the scope ('only downtime recorded under this server's own author is cancelled'). No explicit exclusions or alternative tools are mentioned, so it falls short of a 5 but provides clear context.

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

nagios_current_problems_toolNagios Current Problems ToolA
Read-only

List all hosts and services currently in a non-OK state.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

The annotation already declares readOnlyHint=true, so the safety profile is covered. The description's added value is the filter semantics (only non-OK state entries are returned), but it says nothing about result volume, limit, or whether it queries live or cached state.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the scope constraint is the first thing the reader sees.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the zero-parameter schema is trivial. What is missing is any note on scale or how non-OK states are defined (down/unreachable/warning/critical).

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource (hosts and services) plus the scope qualifier 'currently in a non-OK state', which separates it from the plain status tools. It stops short of naming siblings like nagios_host_status_tool or nagios_service_status_tool, so the agent must infer the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the tool for 'what's broken right now'. There is no explicit when-to-use or when-to-prefer-a-sibling statement despite several overlapping status tools in the sibling list.

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

nagios_downtime_history_toolNagios Downtime History ToolB
Read-only

List past and current downtime windows, read from nagios.log.

NameRequiredDescriptionDefault
hoursNoHow many hours back to look, 1 to 744. Default 168 (one week).
host_nameNoFilter to a specific host. Omit for all hosts.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

readOnlyHint=true already establishes this is a safe read; the description adds the useful detail that results come from parsing nagios.log rather than live state. It does not disclose log rotation/retention limits, whether cancelled or expired windows are included, or result ordering — all relevant for a log-scanning tool.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the scope and data source are in the first clause. It is perhaps too terse for the gaps it leaves, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and both parameters are fully documented, so the description need not cover return values or parameter formats. What remains unstated — retention window of nagios.log and how this differs from the live-downtime sibling — is a modest gap rather than a blocker to correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the hours range (1–744, default 168) and host_name filter are fully documented in the schema. The description adds no parameter meaning beyond that, which is adequate but not additive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List past and current downtime windows') and adds the data source ('read from nagios.log'), which implies a historical view rather than the live view a sibling like nagios_list_downtimes_tool likely gives. It stops short of explicitly naming that sibling, so the distinction is inferable but not stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no mention of the obvious alternative (nagios_list_downtimes_tool) or of nagios_schedule_downtime_tool/nagios_cancel_downtime_tool. An agent must infer from the phrase 'past and current' that this is the retrospective query.

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

nagios_host_status_toolNagios Host Status ToolB
Read-only

Get the current status of a Nagios host.

NameRequiredDescriptionDefault
host_nameYesThe Nagios hostname to query.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so the safe-read profile is covered. Beyond the word 'current' (implying a live, non-cached lookup), the description adds no behavioral context such as authentication requirements, rate limits, or how unreachable hosts are reported.

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

Conciseness5/5

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

One front-loaded sentence with zero filler; the verb and resource come first. Nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and the lone parameter is fully documented in the schema. What is missing is sibling differentiation and any hint of the read's behavior on unknown or unreachable hosts, which matters given eight related Nagios tools.

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

Parameters3/5

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

With a single parameter at 100% schema description coverage, the schema fully documents host_name and its length constraints. The description offers no additional semantics beyond confirming the target is a host.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (current status of a Nagios host), so the operation is unambiguous. However, it does not differentiate itself from close siblings such as nagios_service_status_tool, nagios_program_status_tool, or nagios_current_problems_tool, leaving the agent to infer scope from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the sibling status tools (host vs service vs program vs current problems), nor any prerequisites or exclusions. Usage is only weakly implied by the word 'host'.

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

nagios_list_downtimes_toolNagios List Downtimes ToolA
Read-only

List scheduled downtime that is in effect or still to come.

NameRequiredDescriptionDefault
host_nameNoFilter to a specific host. Omit for all hosts.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

readOnlyHint=true already establishes the safety profile, so the description only needs to add scope context. It does add one meaningful behavioral fact — past downtime is excluded — but says nothing about ordering, pagination, or whether cancelled downtimes appear, which matters for a list tool.

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

Conciseness5/5

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

One short sentence, front-loaded with the verb and resource, with zero filler. Nothing could be trimmed without losing the temporal scoping that distinguishes the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and the sole optional parameter is fully covered by the schema. What remains missing is minor: relationship to the schedule/cancel/history downtime siblings.

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

Parameters3/5

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

The single optional host_name parameter is fully documented in the schema ('Filter to a specific host. Omit for all hosts.'), giving 100% coverage. The description adds nothing about parameter behavior, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (scheduled downtime) with a clear qualifying scope ('in effect or still to come'). The temporal qualifier implicitly separates it from nagios_downtime_history_tool, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the temporal scope — an agent can infer this is for current/future downtime rather than history. There is no explicit 'use this instead of X when Y' guidance and no mention of prerequisites or the related schedule/cancel downtime tools.

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

nagios_notification_history_toolNagios Notification History ToolB
Read-only

Retrieve recent notification history from Nagios.

NameRequiredDescriptionDefault
hoursNoHow many hours of history to retrieve, 1 to 744. Default 24.
host_nameNoFilter to a specific host. Omit for all hosts.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

The readOnlyHint annotation already establishes this is a safe read operation, so the description's main remaining job is to add context beyond that. It adds only 'recent' and 'notification history,' with no mention of source, scope, pagination, or freshness beyond what the schema/annotations imply.

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

Conciseness5/5

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

A single front-loaded sentence with no redundant or filler content. It is appropriately sized for a simple two-parameter retrieval tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so return values and safety need not be explained. However, the description omits any routing guidance relative to the overlapping alert-history sibling, leaving an agent to infer usage.

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

Parameters3/5

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

Schema description coverage is 100%, so both the hours range/default and the host_name filter are fully documented in the schema. The description adds no parameter detail beyond that, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Retrieve recent notification history from Nagios'), so the agent knows it fetches notification events. It does not, however, distinguish this from the sibling nagios_alert_history_tool or clarify the notification-vs-alert distinction, leaving potential sibling confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus nagios_alert_history_tool or nagios_current_problems_tool, and no exclusions or prerequisites. 'Recent' is the only contextual hint, and it is already implicit in the hours parameter.

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

nagios_program_status_toolNagios Program Status ToolA
Read-only

Check whether the Nagios daemon itself is alive and actually working.

Use this to verify the monitoring system, NOT to find outages. It is the right tool for a watchdog asking "is Nagios still able to tell me about problems?" -- nagios_current_problems_tool answers a different question and returns "no problems" both when all is well and when Nagios has silently stopped working.

Detects a wedged daemon (CGI still returns 200 but status data is stale), globally disabled notifications (monitoring everything, alerting nobody), and disabled check execution. Raises on connection failure, so a dead Nagios can never be read as healthy.

NameRequiredDescriptionDefault
max_staleness_secondsNoHow old Nagios's status data may be before the daemon is considered wedged. Default 60 (it refreshes every ~10s).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true, but the description adds substantial behavior: it detects wedged daemons where the CGI returns 200 with stale data, globally disabled notifications, and disabled check execution, and it raises on connection failure so a dead Nagios cannot be read as healthy. This is exactly the operational context the annotation cannot supply.

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

Conciseness5/5

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

Front-loaded with the core purpose, then the routing distinction, then the specific failure modes it catches. Every sentence carries information; nothing is restated or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation in prose, and the description covers the remaining burden: what it detects, how failure surfaces (raises on connection failure), and how it differs from the sibling. An agent has everything needed to call and interpret it.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter (max_staleness_seconds) is fully documented in the schema, including its default and the ~10s refresh rationale. The description's mention of stale status data is thematic rather than additional parameter guidance, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (check whether the Nagios daemon is alive and working) and explicitly carves out the scope: it verifies the monitoring system, not outages. It contrasts directly with the sibling nagios_current_problems_tool, so an agent can pick between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('watchdog asking is Nagios still able to tell me about problems?') and when-not ('NOT to find outages'), and names the alternative tool plus the exact failure mode that makes the alternative misleading. Routing is fully determined.

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

nagios_schedule_check_toolNagios Schedule Check ToolC

Schedule a forced immediate re-check of a host or service.

NameRequiredDescriptionDefault
host_nameYesThe hostname to check.
service_descriptionNoService name. Omit for host check.

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. "Forced immediate" hints at overriding the normal check schedule, but it says nothing about side effects (notification generation, check-result overwrite), required permissions, or whether the action is reversible.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or redundancy. It is efficiently sized, though its brevity is also the source of the missing context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, for an action tool with zero annotations and no usage or side-effect context, the description is too thin to let an agent act confidently.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters and their semantics are already documented in the schema. The description adds only the host-or-service dichotomy, which the schema also conveys via "Omit for host check." Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and action ("schedule a forced immediate re-check") plus the resource scope (host or service). It is distinguishable from status/acknowledge/comment siblings by its action, but it never explicitly names or contrasts with any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as the status-checking siblings. The agent must infer that this is the tool for kicking off an on-demand check.

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

nagios_schedule_downtime_toolNagios Schedule Downtime ToolA

Schedule fixed downtime starting now, before planned work makes checks fail.

Notifications stop for the window, and alert history counts problems inside it as planned work rather than noise. Cancel it with nagios_cancel_downtime_tool when the work is done.

NameRequiredDescriptionDefault
commentYesWhat the work is and why, e.g. 'Josui: deploying mcp-trove 1.0.7 (RT #1550)'.
minutesYesLength of the window, 5 to 480. It expires on its own.
host_nameYesThe host. Without service_description, the host and every service on it go into downtime.
service_descriptionNoOne service to put into downtime instead of the whole host.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does real work: it discloses that notifications are suppressed for the window and that problems during it are recorded as planned work rather than noise. It omits permission/precondition requirements and what happens if the host is unknown or already in downtime, so it is strong but not complete.

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

Conciseness5/5

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

Three short sentences, each earning its place: what it does, what it changes downstream, and how to undo it. The key scoping fact (starting now) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter coverage, the description need not explain returns; it adequately covers purpose, effect, and lifecycle. The remaining gap is guidance versus the acknowledgement sibling and precondition failure behavior for a mutation with no annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains host_name, service_description, minutes, and comment thoroughly. The description adds only the implication that no start-time argument exists, which is a minor incremental gain over the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb and resource ('Schedule fixed downtime') plus the critical constraint that the window starts now, not at a caller-supplied time. It also names the counterpart tool (nagios_cancel_downtime_tool) so the agent can see it is part of a start/stop pair rather than a one-off action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear trigger ('before planned work makes checks fail') and the closing counterpart action ('Cancel it with nagios_cancel_downtime_tool when the work is done'). It stops short of telling the agent when to prefer this over nagios_acknowledge_tool for the same failing checks, which is the most likely sibling confusion.

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

nagios_service_status_toolNagios Service Status ToolB
Read-only

Get the current status of a specific service on a host.

NameRequiredDescriptionDefault
host_nameYesThe Nagios hostname.
service_descriptionYesThe service description (e.g., 'HTTPS crunchtools.com').

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes this as a safe read, so the description's burden is lighter. The word 'current' hints that the value is fetched live rather than cached, but nothing is said about latency, polling frequency, or freshness beyond that single adjective.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or redundancy, well matched to a two-parameter read tool. It is arguably under-specified rather than over-long, which is a completeness concern rather than a conciseness one.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the schema fully covers both inputs. What is missing is routing context among the many Nagios siblings, particularly the host-status tool, leaving the agent to infer the distinction.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are documented in the schema with format hints (maxLength 255, example service description). The description adds no additional parameter semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') plus a precise resource ('current status of a specific service on a host'), so an agent can tell what it returns. It does not, however, name or differentiate itself from the close sibling nagios_host_status_tool, which is the most likely confusion point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the tool's nature: call it when you need one service's status. There is no explicit when-to-use, no statement of when to prefer nagios_host_status_tool or nagios_current_problems_tool, and no prerequisites or exclusions are given.

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.

  1. 4 tool updatesv0.8.1
    • Addednagios_cancel_downtime_tool
    • Addednagios_downtime_history_tool
    • Addednagios_list_downtimes_tool
    • Addednagios_schedule_downtime_tool
  2. 5 tool updatesv0.5.0
    • Addednagios_alert_history_tool
    • Changednagios_host_status_tool2 fields changed
      • addedInput schema / properties / host_name / maxLength
        Added value: +255
      • addedInput schema / properties / host_name / minLength
        Added value: +1
    • Changednagios_notification_history_tool4 fields changed
      • changedInput schema / properties / host_name / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 255,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / hours / description
        Previous value: -"How many hours of history to retrieve. Default 24."New value: +"How many hours of history to retrieve, 1 to 744. Default 24."
      • addedInput schema / properties / hours / maximum
        Added value: +744
      • addedInput schema / properties / hours / minimum
        Added value: +1
    • Changednagios_program_status_tool1 field changed
      • addedInput schema / properties / max_staleness_seconds / minimum
        Added value: +1
    • Changednagios_service_status_tool4 fields changed
      • addedInput schema / properties / host_name / maxLength
        Added value: +255
      • addedInput schema / properties / host_name / minLength
        Added value: +1
      • addedInput schema / properties / service_description / maxLength
        Added value: +255
      • addedInput schema / properties / service_description / minLength
        Added value: +1
  3. 1 tool updatev0.2.0
    • Addednagios_program_status_tool
  4. 7 tool updatesv0.1.0
    • First observednagios_acknowledge_tool
    • First observednagios_add_comment_tool
    • First observednagios_current_problems_tool
    • First observednagios_host_status_tool
    • First observednagios_notification_history_tool
    • First observednagios_schedule_check_tool
    • First observednagios_service_status_tool

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation4/5

Each tool targets a distinct action or data view, and descriptions actively disambiguate tricky pairs (program_status vs current_problems, alert_history vs notification_history, downtime_history vs list_downtimes). The only mild overlap is between downtime_history ('past and current') and list_downtimes ('in effect or still to come'), which could still confuse an agent about which covers active windows.

Naming Consistency5/5

All 13 tools follow the same nagios_<verb/noun>_tool pattern (nagios_acknowledge_tool, nagios_schedule_downtime_tool, etc.), with no camelCase or style mixing. Predictable and easy to scan.

Tool Count5/5

13 tools is well within the ideal range and each maps to a concrete monitoring operation (status queries, acknowledgements, comments, downtime lifecycle, history, self-health). No filler or redundant tools are apparent.

Completeness4/5

Core read lifecycle (host/service status, current problems, program status) and downtime lifecycle (schedule/cancel/list/history) plus acknowledgement and comments are covered. Minor gaps exist: no unacknowledge/remove-comment, no enable/disable notifications, and no host/service inventory enumeration, but these are workaroundable.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients like Claude to triage, investigate, and operate Icinga installations through natural language, integrating with Icinga's REST APIs and providing deep awareness of monitoring plugins and historical performance data.
    5
    -
  • A
    license
    C
    quality
    B
    maintenance
    Enables natural language interaction with Thruk monitoring systems, allowing users to query hosts/services, schedule downtimes, acknowledge problems, and more via MCP-compatible clients.
    65
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Nagios Core that enables querying host and service status, alerts, configuration, and other monitoring data through CGI binaries.
    5
    Apache 2.0
  • F
    license
    A
    quality
    D
    maintenance
    Enables querying sensors, devices, groups, channels, historical data, and system status from a PRTG Network Monitor instance via the classic PRTG HTTP API.
    9
    2
    -