PROSPIRE-TECHNOLOGY-SERVICES/nagios-mcp
If you are the rightful owner of nagios-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Nagios MCP Server is designed to integrate with the Nagios Core web-client, providing a seamless interface for monitoring and managing network resources.
get_host_status
Retrieves status for all hosts or a specific host.
get_service_status
Retrieves status for services using statusjson.cgi.
get_alerts
Retrieves current problematic host and service states (alerts).
get_program_status
Retrieves the Nagios Core program status from statusjson.cgi.
get_hosts_in_group_status
Retrieves status for all hosts within a specific host group.
nagios-mcp
MCP Server for Nagios Core.
This server is built by us for the Nagios Core web-client.
The code for the server can be found here.
The server utilizes the CGI binaries located at the cgi-bin
or sbin
folder in your Nagios folder.
More specifically the statusjson.cgi
and objectjson.cgi
files for the purpose of the status and configuration tooling.
How to install:
Setting up
- Installing the PyPI package
# Using pip
pip install nagios-mcp # or pipx install nagios-mcp
# Using uv (Recommended)
uv tool install nagios-mcp
- Creating a config file
Create a
nagios_config.yaml
ornagios_config.json
file with the configuration parameters given below.
nagios_url: "http://localhost/nagios"
nagios_user: "your_nagios_core_username"
nagios_pass: "your_nagios_core_password"
Starting the SSE server
- The mcp server by default runs on STDIO transport. If you do not require SSE transport, you can skip this section.
- Command:
uvx nagios-mcp --config NAGIOS_CONFIG_FILE --transport sse --host localhost --port 8000
For Claude Desktop
- Official setup guide
- For setting up in Claude Desktop, go to
Settings
->Developer
->Edit Config
. Or directly modify the config file,- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- MacOS:
- Add the following block to the config file,
{
"mcpServers": {
"nagios": {
"command": "uvx",
"args": [
"nagios-mcp",
"--config",
"PATH_TO_THE_NAGIOS_CONFIG_FILE",
],
},
},
}
- For SSE transport:
{
"mcpServers": {
"nagios": {
"url": "http://localhost:8000/sse" # change this if you are using different port
}
}
}
For Cursor
- Official setup guide
- To setup the server in Cursor, go to
Setting
->MCP
->Add new global MCP server
, and add the following: For STDIO transport:
{
"mcpServers": {
"nagios": {
"command": "uvx",
"args": [
"nagios-mcp",
"--config", "PATH_TO_THE_NAGIOS_CONFIG_FILE"
],
}
}
}
- For SSE Transport:
{
"mcpServers": {
"nagios": {
"url": "http://localhost:8000/sse" # change this if you are using different port
}
}
}
For Windsurf
- Official setup guide
- For setting up the server in Windsurf, add the following lines to the
~/.codeium/windsurf/mcp_config.json
file.
{
"mcpServers": {
"nagios": {
"command": "uvx",
"args": [
"nagios-mcp",
"--config", "PATH_TO_THE_NAGIOS_CONFIG_FILE"
],
}
}
}
- For SSE Transport:
{
"mcpServers": {
"nagios": {
"serverUrl": "http://localhost:8000/sse" # change this if you are using different port
}
}
}
For Cline
- Official setup guide
- For setting up the server in Cline, go to
MCP Servers
->Installed
->Configure MCP Servers
, this will open thecline_mcp_settings.json
file. Add the following code block to the file.
{
"mcpServers": {
"nagios": {
"command": "uvx",
"args": [
"nagios-mcp",
"--config", "PATH_TO_THE_NAGIOS_CONFIG_FILE"
],
}
}
}
- For SSE Transport:
{
"mcpServers": {
"nagios": {
"url": "http://localhost:8000/sse" # change this if you are using different port
}
}
}
For 5ire
5ire is another MCP client. For setting up in 5ire, go to Tools
-> New
and add the following configuration.
- Tool Key:
Nagios
- Name:
NagiosMCP
- Command:
uvx nagios-mcp --config PATH_TO_THE_NAGIOS_CONFIG_FILE
List of Tools:
Tool Name | Tool Description |
---|---|
get_host_status | Retrieves status for all hosts or a specific host. |
get_service_status | Retrieves status for services using statusjson.cgi . |
get_alerts | Retrieves current problematic host and service states (alerts). |
get_program_status | Retrieves the Nagios Core program status from statusjson.cgi |
get_hosts_in_group_status | Retrieves status for all hosts within a specific host group. |
get_services_in_group_status | Retrieves status for all services within a specific service group. |
get_services_on_host_in_group_status | Retrieves status for all the services with a specific host group. |
get_overall_health_summary | Retrieves overall health summary for all the hosts and services. |
get_unhandled_problems | Retrieves all the unhandled problems for all the hosts and services. |
get_object_list_config | Retrieves configuration list for object types like "hosts", "services", "hostgroups", etc. |
get_single_object_config | Retrieves configuration for a single specific object. |
get_host_dependencies | Retrieves host dependencies for the given host. |
get_service_dependencies | Retrieves service dependencies for the given host. |
get_contacts_for_object | Retrieves the list of contacts to inform for an object. |
get_comments | Retrieves comments based on the host and service. |
get_comment_by_id | Retrieves comments for the given comment id. |
get_downtimes | Retrieves the information for the downtimes in the Nagios Host Process. |
get_nagios_process_info | Returns the information for the Nagios process. (Alias for get_program_status function) |
- Currently all the tools use GET requests. Other useful tools and tools requiring POST requests will be added soon.
How the MCP server works?
- Nagios Core web-client is typically hosted on
http://YOUR_HOST/nagios/
- The MCP server reads the details about the processes and services using the CGI binaries, they can be found in the
cgi-bin
orsbin
sub-directory in your Nagios main directory. - The Status Tools and Config Tools use the
cgi-bin/statusjson.cgi
andcgi-bin/objectjson.cgi
files respectively for retrieving the information.