Nightingale MCP Server
OFFICIAL SERVERSeparate stdio process that queries a remote Nightingale monitoring instance through its API
MCP endpoint built into the Nightingale alerting server for alerts, rules, metrics and logs
Official · CCF Open Source Go Local · Streamable HTTP DevOps and monitoring
68 popularity score ★ 13k
Opens the app, which asks before it adds the server.
claude mcp add --transport http nightingale http://127.0.0.1:17000/mcp{
"mcpServers": {
"nightingale": {
"url": "http://127.0.0.1:17000/mcp"
}
}
}{
"servers": {
"nightingale": {
"type": "http",
"url": "http://127.0.0.1:17000/mcp"
}
}
}[mcp_servers.nightingale]
url = "http://127.0.0.1:17000/mcp"gemini mcp add --scope user --transport http nightingale http://127.0.0.1:17000/mcpNightingale is a self-hosted alerting system that evaluates rules against metrics, logs and SQL data sources and routes notifications to channels such as Slack, PagerDuty, email and Jira. Its main n9e process carries an MCP endpoint at /mcp over Streamable HTTP, so there is no separate MCP process to install: an MCP client connects to a running Nightingale instance with a personal token or an OAuth access token.
Through it a client can list firing and past alerts, read and edit alert rules, run PromQL instant and range queries, search Loki, Elasticsearch or OpenSearch logs, and manage dashboards, notification rules, channels and templates, data sources, mutes, users, teams and roles. Every call is passed to Nightingale's own HTTP API inside the process with the caller's credential, so that user's API permissions and business-group checks apply.
The tool code is not in the Nightingale repository itself: v9.2.0 embeds the toolsets of the separate n9e-mcp-server project (pinned commit 2992f7fecbf7), which registers 74 tools across 13 toolsets (pkg/api/*.go at that commit); the embedding code describes it as about 60. Only read tools are exposed unless MCPEnableWriteTools is set to true in the [HTTP.A2A] section, and MCPToolsets can narrow the toolsets; an unknown toolset name is dropped with a warning rather than widening access (aiagent/a2a/mcp.go).
A running Nightingale server (binaries for Linux amd64/arm64, the bundled Docker Compose stack, or the Helm chart) reachable from the client; HTTP.TokenAuth must be enabled (on in the standalone default config, off in some deployment examples such as the compose-bridge config) and HTTP.A2A.DisableMCP left false. A Nightingale user account and a personal token from Profile, Token management. OAuth instead needs the built-in authorization server or an external OIDC provider configured first.
Write tools are off by default and need MCPEnableWriteTools = true plus a restart. Once enabled there is no server-side approval step per call; any confirmation must come from the client. query_range downsamples to max_points (1000 by default) and marks results truncated; query_logs returns 200 entries by default and rejects ranges over 7 days. targets and busi_groups offer one listing tool each. The read-only switch only controls which tools are registered; data-source credentials still decide what queries can reach. The path is /mcp, not /api/n9e/mcp.
Suits teams already running Nightingale who want an assistant to triage alerts, query metrics and logs, or help maintain alert and notification rules, with access governed by existing Nightingale users and roles. Because it is part of the server, it needs no extra process, but it is only useful against a Nightingale instance. Those who want the MCP side to run as a separate local process against a remote Nightingale can use the standalone n9e-mcp-server that the docs point to, which offers the same tool table over stdio. Keep the default read-only mode unless the client should change rules, users or data sources.
list_active_alertsget_active_alertlist_history_alertsget_history_alertlist_alert_rulesget_alert_rulecreate_alert_ruleupdate_alert_ruleimport_alert_rulesimport_prom_rulesclone_alert_rules_to_bgstoggle_alert_ruleslist_dashboardsget_dashboardget_dashboard_purecreate_dashboardupdate_dashboard_metaupdate_dashboard_panelsset_dashboard_publicclone_dashboardlist_notify_rulesget_notify_rulelist_notify_channelsget_notify_channellist_notify_templatescreate_notify_rulesupdate_notify_ruletest_notify_rulecreate_notify_channelupdate_notify_channelcreate_notify_templateupdate_notify_templateupdate_notify_template_contentlist_datasourceslist_datasources_fullget_datasourcelist_datasource_pluginsupsert_datasourceset_datasource_statuslist_usersget_userlist_user_groupsget_user_groupcreate_userupdate_user_profilereset_user_passwordcreate_user_groupupdate_user_groupadd_user_group_memberslist_roleslist_operationslist_role_operationscreate_roleupdate_rolebind_role_operationsquery_instantquery_rangequery_logslist_log_indiceslist_log_fields