Nightingale MCP Server

Separate stdio process that queries a remote Nightingale monitoring instance through its API

Official · n9e Go Local · stdio DevOps and monitoring

39 popularity score ★ 42 ↓ 26/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs N9E_TOKEN, N9E_BASE_URL. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add nightingale -e N9E_TOKEN=<N9E_TOKEN> -e N9E_BASE_URL=<N9E_BASE_URL> -- npx -y @n9e/n9e-mcp-server stdio
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "nightingale": {
      "command": "npx",
      "args": [
        "-y",
        "@n9e/n9e-mcp-server",
        "stdio"
      ],
      "env": {
        "N9E_TOKEN": "<N9E_TOKEN>",
        "N9E_BASE_URL": "<N9E_BASE_URL>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "nightingale": {
      "command": "npx",
      "args": [
        "-y",
        "@n9e/n9e-mcp-server",
        "stdio"
      ],
      "env": {
        "N9E_TOKEN": "<N9E_TOKEN>",
        "N9E_BASE_URL": "<N9E_BASE_URL>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "nightingale": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@n9e/n9e-mcp-server",
        "stdio"
      ],
      "env": {
        "N9E_TOKEN": "<N9E_TOKEN>",
        "N9E_BASE_URL": "<N9E_BASE_URL>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.nightingale]
command = "npx"
args = ["-y", "@n9e/n9e-mcp-server", "stdio"]

[mcp_servers.nightingale.env]
N9E_TOKEN = "<N9E_TOKEN>"
N9E_BASE_URL = "<N9E_BASE_URL>"
Gemini CLITerminal
gemini mcp add --scope user -e N9E_TOKEN=<N9E_TOKEN> -e N9E_BASE_URL=<N9E_BASE_URL> nightingale npx -- -y @n9e/n9e-mcp-server stdio

Settings 5

N9E_TOKEN Required: Nightingale personal API token; the server exits at start without it.
N9E_BASE_URL Required: Address of the Nightingale API; defaults to http://localhost:17000.
N9E_READ_ONLY Optional: Set true to register only read tools (default false).
N9E_TOOLSETS Optional: Comma-separated toolsets to enable, e.g. alerts,targets (default all).
N9E_MCP_LOG_LEVEL Optional: Log level: debug, info, warn or error (default info).

What it does

Nightingale MCP Server is a standalone process from the Nightingale project that connects an MCP client to a Nightingale monitoring instance over that instance's HTTP API, using a personal API token. It is written in Go and published on npm as @n9e/n9e-mcp-server, which starts it with the stdio subcommand.

In the published version 0.1.1 it registers 27 tools across nine toolsets: active and historical alerts, alert rules, monitored targets, datasources, mutes, business groups, notification rules, alert subscriptions, event pipelines with their execution records, and users and teams. Only two tools change anything, create_mute and update_mute; the rest read. N9E_TOOLSETS narrows which toolsets are registered and N9E_READ_ONLY drops the two write tools.

The repository's main branch README describes more than 0.1.1 ships: metrics (PromQL), logs, dashboards and roles toolsets, many more write tools, and an http subcommand with shared and per-user token modes. The v0.1.1 source registers only the nine toolsets above and has only the stdio and version subcommands (pkg/api/tools.go and cmd/n9e-mcp-server/main.go at tag v0.1.1). Version 0.1.1 also accepts a --log-file flag that sends its log to a file instead of stderr, which its README does not list.

Nightingale itself also has an MCP endpoint built into the n9e process at /mcp; Nightingale's docs point to this standalone server for running MCP as a separate process against a remote instance.

What it needs

RuntimeNode.js

Node.js with npx (the npm package launches the server). A reachable Nightingale instance, v8.0.0 or later per the repository README, with [HTTP.TokenAuth] Enable = true in its config.toml, and a personal API token created under Personal Settings > Profile > Token Management. The server exits at start without N9E_TOKEN.

Limits

Version 0.1.1 runs over stdio only; the HTTP mode, Docker Compose setup and the metrics, logs, dashboards and roles toolsets described in the current README are on the main branch and not in the published 0.1.1 package. Its only write actions are creating and updating mutes; it cannot create or edit alert rules, notification rules or users in 0.1.1. N9E_BASE_URL defaults to http://localhost:17000, so a remote instance must be set explicitly. What it can see and change is bounded by the permissions of the token's Nightingale user.

Who it suits

Teams already running Nightingale v8+ who want an assistant to look up firing and past alerts, rules, targets, subscriptions and event pipeline runs, and to set maintenance mutes, from a local MCP client. If your Nightingale version has the built-in /mcp endpoint (the Nightingale entry we hold), that needs no separate process, supports OAuth as well as personal tokens, and covers metrics, logs and dashboards; pick this standalone server when you want the MCP process apart from the n9e server, for example on your own machine against a remote instance. Set N9E_READ_ONLY=true where no changes should be made.

Tools 27

list_active_alerts
Lists alerts that are firing now, with filters
get_active_alert
Fetches one firing alert by event ID
list_history_alerts
Lists past alerts, with filters
get_history_alert
Fetches one past alert
list_alert_rules
Lists the alert rules of a business group
get_alert_rule
Fetches one alert rule
list_targets
Lists monitored hosts and targets, with filters
list_datasources
Lists the configured datasources
list_mutes
Lists the mutes (silences) of a business group
get_mute
Fetches one mute
create_mute
Creates a new mute to silence matching alerts
update_mute
Changes an existing mute
list_notify_rules
Lists notification rules
get_notify_rule
Fetches one notification rule
list_alert_subscribes
Lists alert subscriptions in a business group
list_alert_subscribes_by_gids
Lists subscriptions across several business groups
get_alert_subscribe
Fetches one alert subscription
list_event_pipelines
Lists event pipelines
get_event_pipeline
Fetches one event pipeline
list_event_pipeline_executions
Lists the runs of one pipeline
list_all_event_pipeline_executions
Lists runs across all pipelines
get_event_pipeline_execution
Fetches one pipeline run
list_users
Lists users, with filters
get_user
Fetches one user
list_user_groups
Lists teams
get_user_group
Fetches a team and its members
list_busi_groups
Lists business groups the token's user can access

Similar servers