Nightingale
OFFICIAL SERVERMCP endpoint built into the Nightingale alerting server for alerts, rules, metrics and logs
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
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs N9E_TOKEN, N9E_BASE_URL. Replace each <NAME> with your value.
claude mcp add nightingale -e N9E_TOKEN=<N9E_TOKEN> -e N9E_BASE_URL=<N9E_BASE_URL> -- npx -y @n9e/n9e-mcp-server stdio{
"mcpServers": {
"nightingale": {
"command": "npx",
"args": [
"-y",
"@n9e/n9e-mcp-server",
"stdio"
],
"env": {
"N9E_TOKEN": "<N9E_TOKEN>",
"N9E_BASE_URL": "<N9E_BASE_URL>"
}
}
}
}{
"mcpServers": {
"nightingale": {
"command": "npx",
"args": [
"-y",
"@n9e/n9e-mcp-server",
"stdio"
],
"env": {
"N9E_TOKEN": "<N9E_TOKEN>",
"N9E_BASE_URL": "<N9E_BASE_URL>"
}
}
}
}{
"servers": {
"nightingale": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@n9e/n9e-mcp-server",
"stdio"
],
"env": {
"N9E_TOKEN": "<N9E_TOKEN>",
"N9E_BASE_URL": "<N9E_BASE_URL>"
}
}
}
}[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 mcp add --scope user -e N9E_TOKEN=<N9E_TOKEN> -e N9E_BASE_URL=<N9E_BASE_URL> nightingale npx -- -y @n9e/n9e-mcp-server stdioN9E_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). |
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.
| Runtime | Node.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.
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.
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.
list_active_alertsget_active_alertlist_history_alertsget_history_alertlist_alert_rulesget_alert_rulelist_targetslist_datasourceslist_mutesget_mutecreate_muteupdate_mutelist_notify_rulesget_notify_rulelist_alert_subscribeslist_alert_subscribes_by_gidsget_alert_subscribelist_event_pipelinesget_event_pipelinelist_event_pipeline_executionslist_all_event_pipeline_executionsget_event_pipeline_executionlist_usersget_userlist_user_groupsget_user_grouplist_busi_groups