mcp-nagios-crunchtools
A secure MCP server for Nagios Core that lets you query monitoring status, inspect alert history, and act on problems.
Check individual status — query a single host's or a specific service's current state.
See what's broken now — list all hosts/services in non-OK state with state duration, attempt count, acknowledgement flag and plugin output.
Verify the monitoring system itself — detect a wedged daemon, stale status data (configurable
max_staleness_seconds), or globally disabled notifications/checks; raises on connection failure so a dead Nagios can't look healthy.Acknowledge problems — on a host or service, with sticky (default) and notify (default) options plus a comment.
Add comments — persistent notes on a host or service.
Force re-checks — schedule an immediate check of a host or service.
Review notification history — past notifications over 1–744 hours, optionally filtered to one host.
Analyze alert history — per-host/service rollup of state changes, including warnings, soft states and problems that recovered without paging, which surfaces flapping.
Note: the exposed schema has 10 tools; the downtime tools described in the README (schedule, list, cancel, history) are not present in this server's tool list.
Click on "Deploy 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., "@mcp-nagios-crunchtoolsshow all current host and service problems"
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.
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-crunchtoolsRelated MCP server: thruk-mcp
Configuration
Variable | Required | Description |
| Yes | Base URL (e.g., |
| Yes | HTTP Basic Auth username |
| Yes | HTTP Basic Auth password |
| No | Author recorded on acknowledgements and comments. Defaults to |
| No | Path under |
| No | Read-only path to |
| 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 |
| Query a single host's status |
| Query a single service's status |
| All hosts/services not in OK state, with duration, attempt, acknowledgement and plugin output |
| Health check on the monitoring path itself (wedged daemon, disabled notifications, stale status) -- not the same as no current problems |
| Acknowledge a host or service problem |
| Add a comment to a host or service |
| Force an immediate re-check |
| Fixed downtime from now (5–480 min) on a host and its services, or one service, before planned work |
| Downtime in effect or pending |
| End this server's own downtime when the work is done |
| Past and current downtime windows with author and comment, from |
| Recent notifications |
| 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 toolsnagios_acknowledge_toolNagios Acknowledge ToolC
Acknowledge a host or service problem in Nagios.
| Name | Required | Description | Default |
|---|---|---|---|
| notify | No | Send notification about the acknowledgement. Default True. | |
| sticky | No | Keep acknowledged even if state changes. Default True. | |
| comment | Yes | Acknowledgement comment (e.g., 'Hermes is investigating'). | |
| host_name | Yes | The hostname with the problem. | |
| service_description | No | Service name. Omit for host acknowledgement. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | Yes | Comment text (e.g., 'Restarting service to resolve issue'). | |
| host_name | Yes | The hostname. | |
| service_description | No | Service name. Omit for host comment. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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. 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.
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.
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.
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.
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.
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 ToolARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | How many hours of history to roll up, 1 to 744. Default 168 (one week). | |
| host_name | No | Filter to a specific host. Omit for all hosts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| host_name | Yes | The host. Without service_description, its host and service downtimes are all cancelled. | |
| service_description | No | Cancel only this service's downtime. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 ToolARead-only
List all hosts and services currently in a non-OK state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 ToolBRead-only
List past and current downtime windows, read from nagios.log.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | How many hours back to look, 1 to 744. Default 168 (one week). | |
| host_name | No | Filter to a specific host. Omit for all hosts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 ToolBRead-only
Get the current status of a Nagios host.
| Name | Required | Description | Default |
|---|---|---|---|
| host_name | Yes | The Nagios hostname to query. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 ToolARead-only
List scheduled downtime that is in effect or still to come.
| Name | Required | Description | Default |
|---|---|---|---|
| host_name | No | Filter to a specific host. Omit for all hosts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 ToolBRead-only
Retrieve recent notification history from Nagios.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | How many hours of history to retrieve, 1 to 744. Default 24. | |
| host_name | No | Filter to a specific host. Omit for all hosts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 ToolARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| max_staleness_seconds | No | How old Nagios's status data may be before the daemon is considered wedged. Default 60 (it refreshes every ~10s). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| host_name | Yes | The hostname to check. | |
| service_description | No | Service name. Omit for host check. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | Yes | What the work is and why, e.g. 'Josui: deploying mcp-trove 1.0.7 (RT #1550)'. | |
| minutes | Yes | Length of the window, 5 to 480. It expires on its own. | |
| host_name | Yes | The host. Without service_description, the host and every service on it go into downtime. | |
| service_description | No | One service to put into downtime instead of the whole host. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 ToolBRead-only
Get the current status of a specific service on a host.
| Name | Required | Description | Default |
|---|---|---|---|
| host_name | Yes | The Nagios hostname. | |
| service_description | Yes | The service description (e.g., 'HTTPS crunchtools.com'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v0.8.1- Added
nagios_cancel_downtime_tool - Added
nagios_downtime_history_tool - Added
nagios_list_downtimes_tool - Added
nagios_schedule_downtime_tool
5 tool updates
v0.5.0- Added
nagios_alert_history_tool - Changed
nagios_host_status_tool2 fields changed- added
Input schema / properties / host_name / maxLengthAdded value: +255 - added
Input schema / properties / host_name / minLengthAdded value: +1
- Changed
nagios_notification_history_tool4 fields changed- changed
Input schema / properties / host_name / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / hours / descriptionPrevious value: -"How many hours of history to retrieve. Default 24."New value: +"How many hours of history to retrieve, 1 to 744. Default 24." - added
Input schema / properties / hours / maximumAdded value: +744 - added
Input schema / properties / hours / minimumAdded value: +1
- Changed
nagios_program_status_tool1 field changed- added
Input schema / properties / max_staleness_seconds / minimumAdded value: +1
- Changed
nagios_service_status_tool4 fields changed- added
Input schema / properties / host_name / maxLengthAdded value: +255 - added
Input schema / properties / host_name / minLengthAdded value: +1 - added
Input schema / properties / service_description / maxLengthAdded value: +255 - added
Input schema / properties / service_description / minLengthAdded value: +1
1 tool update
v0.2.0- Added
nagios_program_status_tool
7 tool updates
v0.1.0- First observed
nagios_acknowledge_tool - First observed
nagios_add_comment_tool - First observed
nagios_current_problems_tool - First observed
nagios_host_status_tool - First observed
nagios_notification_history_tool - First observed
nagios_schedule_check_tool - First observed
nagios_service_status_tool
TDQS
Scored across 13 tools
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.
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.
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.
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
Related MCP Connectors
Read NodePing checks, uptime, results and events; mute checks, manage maintenance and schedules.
Read Status.io components, incidents, maintenance; post incidents, schedule maintenance, set status.
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
Read status pages, incidents and monitors, and post incidents and maintenance in StatusPage.me.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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-
- AlicenseCqualityBmaintenanceEnables natural language interaction with Thruk monitoring systems, allowing users to query hosts/services, schedule downtimes, acknowledge problems, and more via MCP-compatible clients.652MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Nagios Core that enables querying host and service status, alerts, configuration, and other monitoring data through CGI binaries.5Apache 2.0
- FlicenseAqualityDmaintenanceEnables querying sensors, devices, groups, channels, historical data, and system status from a PRTG Network Monitor instance via the classic PRTG HTTP API.92-