mcp-nagios-crunchtools
A secure MCP server that lets an assistant query and act on a Nagios Core monitoring instance.
Query a single host's current status by hostname.
Query a specific service's status on a host.
List all hosts/services currently in a non-OK state, with duration in state, attempt count, acknowledgement and plugin output.
Health-check Nagios itself: detect a wedged daemon via stale status data (configurable staleness threshold), globally disabled notifications, or disabled check execution, and fail loudly if Nagios is unreachable.
Acknowledge a host or service problem, optionally sticky and with notification.
Add a persistent comment to a host or service.
Force an immediate re-check of a host or service.
Retrieve recent notification history (1–744 hours, optional host filter).
Roll up state-change/alert history per host and service (default one week), including warnings, soft states and self-recovered problems — useful for spotting flapping.
Uses HTTP Basic Auth against your Nagios URL, with the comment author configurable and the CGI path adjustable.
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 |
| 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 |
| Recent notifications |
| State changes rolled up per host/service, including warnings and problems that recovered by themselves |
License
AGPL-3.0-or-later
Available Tools
9 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_current_problems_toolNagios Current Problems ToolARead-only
List all hosts and services currently in a non-OK state.
Returns: One line per problem with its state, how long it has been in that state, attempt count, acknowledgement and plugin output, or confirmation that everything is OK.
| 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?
readOnlyHint=true already establishes the safety profile, and the description adds genuine behavioral context beyond that: the per-problem fields returned (state, duration, attempt count, acknowledgement, plugin output) and the explicit note that it may return confirmation everything is OK instead. It does not mention limits, counts, or pagination, which keeps it short of a 5.
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, no filler. The core purpose is front-loaded in sentence one and the return shape is contained in a short, clearly-labeled block.
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?
A parameterless read tool with an output schema needs only to say what it selects and roughly what comes back, and the description does both. Nothing an agent needs in order to call it 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description correctly adds no parameter discussion, which would be noise here.
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 gives a specific verb ("List") and resource ("all hosts and services currently in a non-OK state"), with a scope qualifier that separates it from the status siblings that report full state. It does not, however, name any sibling or explicitly contrast itself with nagios_host_status_tool or nagios_program_status_tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the "currently in a non-OK state" scope suggests triage/alerting use, but there is no explicit when-to-use, when-not-to-use, or pointer to an alternative tool. With nine siblings in the namespace, an agent gets no routing help.
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_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_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.
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 9 tools
Each tool targets a distinct Nagios concept or action: current problems vs. daemon health (explicitly contrasted), host status vs. service status, notification history vs. alert history (differentiated by scope). The descriptions actively call out the tricky overlaps, leaving little room for misselection.
Every tool follows the same nagios_<concept>_tool snake_case pattern with a uniform prefix and suffix. Action tools (acknowledge, add_comment, schedule_check) and query tools are all rendered in the identical convention.
Nine tools is well-scoped for a Nagios monitoring/inspection surface, with each tool earning its place covering distinct read and light-action operations. No redundancy or filler.
Core monitoring workflows are covered: problem listing, daemon health, host/service status, acknowledgement, comments, forced checks, and two history views. Minor gaps exist around scheduled downtime and enable/disable notifications, but agents can work around these.
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 monitors, incidents, heartbeats, on-call and status pages; acknowledge or resolve incidents.
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-